步进电机
1.8度步进原理
先看看里面是什么样子!
注意齿轮的对齐情况!
天才的设计,没走一步刚好是半个齿轮。
总共有50个齿轮,50个凹槽,一个齿轮=360度 / (50+50) = 3.6度
半个齿轮 = 3.6度/2 = 1.8 度
57BYG250B步进电机和驱动器
电机接线
电机转动实验
正反转
const int dirpin = 5;
const int pulse = 6;
void setup() {
Serial.begin(9600);
pinMode(dirpin,OUTPUT);
pinMode(pulse, OUTPUT);
}
void loop() {
digitalWrite(dirpin, LOW);
for(int i=0;i < 800;i ++){
digitalWrite(pulse, HIGH);
delayMicroseconds(2000);
digitalWrite(pulse, LOW);
delayMicroseconds(2000);
}
delay(1000);
digitalWrite(dirpin, HIGH);
for(int i=0;i < 800;i ++){
digitalWrite(pulse, HIGH);
delayMicroseconds(2000);
digitalWrite(pulse, LOW);
delayMicroseconds(2000);
}
delay(1000);
}
1/4细分,一圈800步,一个脉冲走一步
脉冲引脚高低
步进电机速度不能从代码推出来,速度可以通过改变delayMicroseconds()里面的数来改变。
速度控制最好是用PID+编码器
细分原理
全步进
半步进
细分
细分的目的是减缓步进电机运转过程的震动和噪声,使电机的力矩输出更加平稳。
舵机
180度和360度舵机
先看果壳上的一篇文章 舵机
我们业余爱好者常用的舵机一般是用电位计来检测驱动轴转动到的角度,而用在工业机器人、电脑数控机床等大型系统中的舵机一般则要用旋转编码器来确定位置。光学旋转编码器的原理是这样的,把一个带有窄缝的圆盘固定在转轴上,然后用一个LED灯和一个光敏元件来记录光通过窄缝照到光敏器件上的次数来计算当前旋转到的位置。其实生活中这种技术也很常见,我们每天都要用的光电鼠标就是用的这个原理制作成的。
注意点:
所有的舵机(特殊定制舵机除外)都是由PWM控制的。
舵机控制板输出的是PWM信号,所以舵机控制板都可以控制180度和360度舵机。
360度舵机是PWM控制它的旋转速度和旋转方向,500-1500us的PWM是控制它正转,值越小,旋转速度越大;1500-2500us的PWM是它反转,值越大,旋转速度越大。1500us的PWM是控制它停止。(由于每一个舵机的中位可能会不一样,所以有些舵机可能是1520us的PWM,舵机才会停下来。所以需要自己实际测试出舵机的中位。)
360度舵机就是一个普通的直流电机+一个电机驱动板的组合,所以它只能连续旋转,不能定位,也没法知道它的角度和圈数(除非自己在舵机外面加装其它传感器)。
180度舵机是PWM控制它的旋转角度,500-2500us的PWM对应控制180度舵机的0-180度,是一一对应的,一个PWM值对应舵机的一个角度。