前言
今天我们来学习用BPI-BIT驱动直流电机。
软硬件
测试使用的开发板: BPI-BIT
测试使用的硬件: 电源(DC6800)、直流电机、BPI坦克
实验原理
直流电机: 直流电动机是将直流电能转换为机械能的电动机。因其良好的调速性能而在电力拖动中得到广泛应用。当直流电源通过电刷向电枢绕组供电时,电枢表面的N极下导体可以流过相同方向的电流,根据左手定则导体将受到逆时针方向的力矩作用;电枢表面S极下部分导体也流过相同方向的电流,同样根据左手定则导体也将受到逆时针方向的力矩作用。这样,整个电枢绕组即转子将按逆时针旋转,输入的直流电能就转换成转子轴上输出的机械能。由定子和转子组成,定子:基座,主磁极,换向极,电刷装置等;转子(电枢):电枢铁心,电枢绕组,换向器,转轴和风扇等。
示例代码及解析
#include <Wire.h>
#include <Adafruit_PWMServoDriver.h>
Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver();//这样调用,使用默认地址0x40,并且创建实例。
void setup() {
Serial.begin(9600);
pwm.begin();
pwm.setPWMFreq(1000);//用来调节PWM频率,范围 freq:40-1000Hz
}
//setPWM(num,on,off)设置其中一个PCA9685引脚的脉宽调制输出
//1.参数num代表一个脉宽调制输出引脚,从0到15(需看原理图来确定输出引脚)
//2.参数on代表在4096部分周期的哪个点打开,以打开脉宽调制输出
//3.参数off代表在4096部分周期的哪个点关闭参数以关闭脉冲宽度调制输出
//一个PWM周期分成4096份,由0开始+1计数,计到on时跳变为高电平,继续计数到off时跳变为低电平,直到计满4096重新开始。
void loop() {
//前进
//左电机
pwm.setPWM(1, 4096, 0);//给低电平
pwm.setPWM(2, 0, 4096);//给高电平
pwm.setPWM(0, 0, 3580);//输出PWM控制速度
//右电机
pwm.setPWM(11, 4096, 0);
pwm.setPWM(12, 0, 4096);
pwm.setPWM(13, 0, 3680);
delay(1000);
//后退
//左电机
pwm.setPWM(2, 4096, 0);
pwm.setPWM(1, 0, 4096);
pwm.setPWM(0, 0, 3580);
//右电机
pwm.setPWM(12, 4096, 0);
pwm.setPWM(11, 0, 4096);
pwm.setPWM(13, 0, 3680);
delay(1000);
}
实物图
将BPI-BIT开发板插入BPI坦克的扩展板上。