项目四 舵机控制

项目四 舵机控制#

image92

项目介绍:

舵机是一种位置伺服的驱动器,主要是由外壳、电路板、无核心马达、齿轮与位置检测器所构成。其工作原理是由接收机或者单片机发出信号给舵机,其内部有一个基准电路,产生周期为20ms,宽度为1.5ms 的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。

image93

舵机有很多规格,但所有的舵机都有外接三根线,分别用棕、红、橙三种颜色进行区分,由于舵机品牌不同,颜色也会有所差异,棕色为接地线,红色为电源正极线,橙色为信号线。

舵机的转动的角度是通过调节PWM(脉冲宽度调制)信号的占空比来实现的,标准PWM(脉冲宽度调制)信号的周期固定为20ms(50Hz),理论上脉宽分布应在1ms到2ms之间,但是,事实上脉宽可由0.5ms 到2.5ms之间,脉宽和舵机的转角0°~180°相对应。

image94

对应的舵机角度值如下:

image95

舵机参数:

工作电压:DC 4.8V〜6V

可操作角度范围:大约 About 180°(在 500→2500 μsec)

脉波宽度范围:500→2500 μsec

空载转速:0.12±0.01 sec/60(DC 4.8V) 0.1±0.01 sec/60(DC 6V)

空载电流:200±20mA(DC 4.8V) 220±20mA(DC 6V)

停止扭力:1.3±0.01kg·cm(DC 4.8V) 1.5±0.1kg·cm(DC 6V)

停止电流:≦850mA(DC 4.8V) ≦1000mA(DC 6V)

待机电流:3±1mA(DC 4.8V) 4±1mA(DC 6V)

项目组件:

UNO R3 开发板*1

L298P 电机驱动扩展板 V1*1

SG90 9G舵机*1

image96

image97

image98

USB线*1

18650双节电池盒 (18650电池*2(电池自配))*1

image99

image100

接线图

⚠️特别注意:坦克智能车已经组装好了,这里不需要把传感器模块和其他的都拆下来又重新组装和接线,这里再次提供接线图,是为了方便您编写代码!

image101

接线注意:舵机连接到G(GND)、V(VCC)、D10,舵机的棕色线是与Gnd(G)相连,红色线与5v(V)相连,橙色线是与数字10相连的。接舵机的时候必须要外接供电,因为驱动舵机的电流要求比较大,一般峰值的情况下接近1A,开发板的电流远远不够。如果不接外接电源,很有可能烧坏开发板。

项目代码:

认识代码块

① 这个代码块,表示当启动ESP32这块开发板时,将运行代码。

image102

② 创建变量。

image103

这是创建“变量”的指令方块,可以声明“全局”或“局部”,还可以设置变量的类型、名称和赋值,item是变量名称。

image104

获取变量item。

image105

设置变量的值

image106

设置变量item模式为每执行一次循环让item加1或每执行一次循环让item减1。

image107

③ 循环语句,顾名思义就是重复做一件事。

image108

④ 有条件的循环控制语句,当满足循环次数时就退出循环,比如:10表示循环执行10次,数字10是可以改成其他数字的。

image109

⑤ 向舵机指定引脚设置输出角度代码块,需要设置对应的引脚、角度和延时,就可以输出对应的角度。

image110

⑥ 将程序的执行暂停一段时间,也就是延时。单位是秒。

image111

组合代码块

特别提醒:在上传程序代码前,需要把蓝牙模块取下,否则代码会上传失败。需要上传代码成功后,再连接蓝牙模块。

image112

项目结果:

上传代码成功,上电后,舵机也是在0°到180°角度范围来回摆动。