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模型飛行機のバッテリーを使用します