|
1 为什么用TB6612FNG?
一张图很能说明问题,L298N电机驱动模块体积太大了,TB6612FNG模块体积小,可以实现同样的功能
2 TB6612FNG引脚连接
Arduino uno
| TB6612FNG
| 电机
| 电源
| PIN3
| PWMA
|
|
| 8
| AN1
|
|
| 9
| AN2
|
|
| 10
| STBY
|
|
|
| A01
| 正极
|
|
| A02
| 负极
|
| 5V
| VCC
|
|
| GND
| GND
|
| GND
|
| VM
|
| 6V输入
|
3 接线示意图
4 实物接线图
5 程序
//motor A connected between A01 and A02//motor B connected between B01 and B02 int STBY = 10; //standby //Motor Aint PWMA = 3; //Speed control int AIN1 = 9; //Directionint AIN2 = 8; //Direction //Motor Bint PWMB = 5; //Speed controlint BIN1 = 11; //Directionint BIN2 = 12; //Direction void setup(){ pinMode(STBY, OUTPUT); pinMode(PWMA, OUTPUT); pinMode(AIN1, OUTPUT); pinMode(AIN2, OUTPUT); pinMode(PWMB, OUTPUT); pinMode(BIN1, OUTPUT); pinMode(BIN2, OUTPUT);} void loop(){ move(1, 255, 1); //motor 1, full speed, left move(2, 255, 1); //motor 2, full speed, left delay(1000); //go for 1 second stop(); //stop delay(250); //hold for 250ms until move again move(1, 128, 0); //motor 1, half speed, right move(2, 128, 0); //motor 2, half speed, right delay(1000); stop(); delay(250);} void move(int motor, int speed, int direction){//Move specific motor at speed and direction//motor: 0 for B 1 for A//speed: 0 is off, and 255 is full speed//direction: 0 clockwise, 1 counter-clockwise digitalWrite(STBY, HIGH); //disable standby boolean inPin1 = LOW; boolean inPin2 = HIGH; if(direction == 1){ inPin1 = HIGH; inPin2 = LOW; } if(motor == 1){ digitalWrite(AIN1, inPin1); digitalWrite(AIN2, inPin2); analogWrite(PWMA, speed); }else{ digitalWrite(BIN1, inPin1); digitalWrite(BIN2, inPin2); analogWrite(PWMB, speed); }} void stop(){//enable standby digitalWrite(STBY, LOW); }6 视频效果
TB6612驱动直流电机 - 西瓜视频 (ixigua.com)
声明:以上内容来源于网络,如有侵权请联系我们(123@shiyan.com)删除! |
|