ArduinoA4950はDCモーターを駆動します

ArduinoA4950はDCモーターを駆動します

自分で車を作る学生の多くは、みんなと同じようにL298Nドライバーを一番よく使っていますが、今回はより良い運転能力とより便利なモータードライブを研究し、ArduinoL298Nをオンラインで使ってみたいと思います。車を運転する例はたくさんありますが、A4950には誰もいません。さて、この記事がL298Nにうんざりしている学生のためのより良い更新されたオプションを提供することを願っています。

1.実験の準備

1.ArduinoシリーズMCU2.DC
モーター
3.A4950ドライバー

2.A4950チップの紹介

ここに画像の説明を挿入
1台のA4950ドライバーで2台のDCモーターを駆動できます。
ドライブボード動作電圧範囲:7.6V〜30V

A4950ピン 対応するピン
VCC MCU 5V
GND MCU GND
VM 駆動力7.6〜30V
AIN1 Aモーターの1番目のPWMピンを制御します
AIN2 Aモーターの2番PWMピンを制御する
AOUT1 モーターAポジティブ
ATOU2 モーターAネガティブ
BN1 Bモーターの1番PWMピンを制御する
BIN2 Bモーターの2番PWMピンを制御します
BOUT1 モーターBポジティブ
BTOU2 モーターBネガティブ

1つのモジュールに2セットのVCCGND VMがあり、少なくとも1セットを接続します

シングルチップA4950ドライブパワーは地面を共有することを忘れないでください

A4950ドライバーは、2つの制御ピンの出力PWM間の関係を比較することにより、モーターの方向を決定します。
2つの制御ピンの出力PWMの差が、モーターの速度を決定します

3.プログラミング

次のコードは例としてすでにモーターを駆動しており、残りのコードも同じ方法で実行できます。

3.1シンプルなドライバーボード

unsigned int Motor_AIN1=2;       //控制A电机的PWM引脚  一定改成自己用的
unsigned int Motor_AIN2=3;       
char Motor_Order;                //定义一个字符型变量存储串口输入命令
void setup() 
{
    
    
  Serial.begin(9600);            //打开串口
  Serial.println("/*****开始驱动*****/");
  pinMode(Motor_AIN1,OUTPUT);   //设置两个驱动引脚为输出模式
  pinMode(Motor_AIN2,OUTPUT); 
}

void loop() 
{
    
    
 while(Serial.available()>0)    //检测串口是否有命令
  {
    
    
    Motor_Order=Serial.read();  //将命令存储在变量中
    switch(Motor_Order)
    {
    
    
      //发送字符1电机正转
      case '1' : analogWrite(Motor_AIN1,250); analogWrite(Motor_AIN2,0);Serial.println("/*****电机正传*****/");break;
      //发送字符2电机反转
      case '2' : analogWrite(Motor_AIN1,0); analogWrite(Motor_AIN2,250);Serial.println("/*****电机反转*****/");break;
      //发送其他字符电机停转
      default  : analogWrite(Motor_AIN1,0); analogWrite(Motor_AIN2,0);Serial.println("/*****停转****/");break;
    }
  }
}

書き込み後、シリアルポートを開き、指示を別途入力してください。
ここに画像の説明を挿入

総括する

駆動電圧が足りないためにモーターが回転しない場合は、12V模型飛行機のバッテリーを使用します

おすすめ

転載: blog.csdn.net/chrnhao/article/details/112129949