[toc]

Arduino:1-电机

直流电机

直流电机根据有无电刷可分为有刷直流电机(BDC)无刷直流电机(BLDC)

有刷直流电机

即有电刷的直流电机:

CleanShot 2023-10-05 at 16.52.56@2x
  • 与电刷接触的圆环是换向器
  • 与换向器相连接的是线圈
  • 线圈换向器共同组成电机的转子
  • 两边的磁铁组成电机的定子

无刷直流电机

CleanShot 2023-10-05 at 16.56.44@2x

无刷电机有刷电机相反,永磁场作为定子,线圈作为转子,通过给不同线圈通电,实现转子旋转。

CleanShot 2023-10-05 at 17.00.02@2x

三组线圈通电情况如上图,先依次给正向电流,再依次给反向电流

通过Arduino控制直流电机

直流电机参数:

  • 空载转速:电机不带任何负载的转速
  • 额定电压:电机正常工作的电压
  • 额定电流:电机正常工作的电流

拿到电机的第一步,应该先明确电机的额定电压额定电流,防止烧坏电机。

控制旋转方向:H桥电路

​ 直流电机,想要控制其转动方向,可以使用H桥电路,通过四个开关的开闭控制电流流向。

CleanShot 2023-10-05 at 17.11.44@2x

控制旋转速度:PWM

​ 可以通过PWM引脚来控制电机的旋转速度。

伺服电机

CleanShot 2023-10-03 at 19.10.33@2x
  • 棕色线接地
  • 红色线接5v电源
  • 黄色线接PWM控制

Servo

Arduino提供了Servo库用于控制伺服电机,Servo库允许大多数Arduino开发板(如Arduino Uno)同时控制12个舵机

1
2
3
4
5
6
7
8
9
10
11
12
Servo servo;

void setup() {
// write your initialization code here
servo.attach(9);
}


void loop() {
// write your code here
servo.write(180);
}
  • Servo::attach(int pin):指定伺服电机连接的PWM控制引脚。
  • Servo::write(int value):向伺服电机传输PWM指令
    • 控制舵机旋转。对于标准舵机,write()函数会将舵机轴旋转到相应的角度位置。对于连续旋转类型的舵机,write()函数可以设置舵机的旋转速度(0指示舵机向着一个方向全速旋转,180指示舵机向着另一个方向全速旋转,90指示舵机静止不动。)