0125_12
收到东芝
现在,把驱动板用到了我的项目智能小车的步进电机的驱动上。使用arduino的引脚5,6给TB67H451驱动
开发板的in1 和in2进行信号传送,试用代码用之前驱动风扇的先进行测试,小车电机驱动履带正转,停,然后反转。
TB67H451驱动板的OUT1,OUT2分别接电机的两极。然后,12V电源给TB67H451驱动板正负极供电。
代码如下:
2.
4.
6.
8.
10.
12.
14.
16.
18.
20.
22.
24.
26.
28.
30.
32.
34.
36.
38.
40.
42.
44.
46.
48.
50.
52.
54.
56.
验证烧录后,小车电机和履带运行正常,前传,停然后反转。
但是,实际在小车的运行过程中,为了控制小车,需要使得东芝TB67H451驱动板和12v电机构成一个步进电机,就要精确的控制电机的运行时间和运行步数,来达到步进精确的目的。由于东芝TB67H451开发板并不是步进驱动板,所以需要结合开发的通讯接口进行运行和停止的反馈信息,达到步进效果。
一般情况下单极电机驱动板是控制两个电机,并且电机是有运行步数和时间的步进电机。
以下代码是对输出和传感器回馈的基本设置,该代码试用于单极四相电机,所以需要做一些修改:
接下来使用arduino的tone()函数产生脉冲信号,引脚引用要避开arduino的pwm引脚3,11
找到了一个简单代码用
#define vcc 2
#define dir 4
void setup() {
pinMode(vcc,OUTPUT);
pinMode(dir,OUTPUT);
}
digitalWrite(vcc,HIGH);
digitalWrite(dir,HIGH);
tone(pls,200);
用于东芝驱动板上有PWM引脚,可以通过这个引脚接收arduino 传出的pwm脉冲信号从而达到对双向电机进行步进控制。以下代码是pwm对直流电机的整体控制,包括前进后退,转向和调速控制,这个框架下根据需求进行进一步调整。
int]voidForward();
voidBack();
voidTurn_left();
voidTurn_right();
voidSpeed_up();
voidSlow_down();
voidsetup() {
]pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
}
voidloop()]//put your main code here, to run repeatedly:
]Back();
]Turn_right();
]Slow_down();
}
voidForward(){
//youguys]digitalWrite(9,HIGH);
digitalWrite(10,LOW);
digitalWrite(5,HIGH);
digitalWrite(6,LOW);
delay(4000);
}
voidBack(){
digitalWrite(9,LOW);
digitalWrite(10,HIGH);
digitalWrite(5,LOW);
digitalWrite(6,HIGH);
delay(4000);
}
voidTurn_left(){
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(5,HIGH);
digitalWrite(6,LOW);
delay(4000);
}
voidTurn_right(){
digitalWrite(9,HIGH);
digitalWrite(10,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
delay(4000);
}
voidSpeed_up(){
for(i=0;i<=255;i+=5){
]analogWrite(10,0);
]analogWrite(6,0);
]}//speed up
]}
voidSlow_down(){
for(i=255;i>=0;i-=5){
]analogWrite(10,0);
]analogWrite(6,0);
]}
}
项目下车的最基本的控制代码需要不断的调整和测试,但是要达到精确的步进电机实际效果还是需要进一步的开发,以借助arduino和东芝电机驱动对直流电机进行步进控制。
至此,
附件为单边电机的驱动效果和测试效果视频,无须必要下载。
0125_11
|