上回我们用 pwm 控制了一盏 led 灯的亮度,实现了渐明渐暗的效果。今天就来用 pwm 控制一个直流电机的转速,实现逐渐加速,减速的效果。为了能清除看到效果,笔者还专门用拙劣的手工做了一个纸风车,粘到电机转轴上。下面就来动手做实验。
实验器材:
arduino uno r3 芯片 x1adafruit 电机驱动板(motor shield)v1 型 x1直流电机 x1电线 x2usb 数据线 x1pc x1实验器材一览如下:
注意事项:
adafruit 电机驱动板是设计成兼容 arduino uno r3 芯片的,可以直接堆叠在 arduino 上连接。
驱动板上的 jumper(在标注 pwrjmp,意为 power jumper 的位置)是用来决定 arduino 和驱动板是否独立供电的。如果盖上 jumper,则驱动板由 arduino供电;如果拔掉jumper,则驱动板独立供电。
驱动板若要独立供电,电源接标注 ext_pwr(意为 external power)的 2 个接口。注意不要接反正负极,否则会烧坏驱动板甚至 arduino!驱动板上led 灯亮,表示驱动板供电正常。
实验原理:
pwm 全称 pulse width modulation,它的原理,简而言之,是通过产生持续时间长短不一的数字脉冲,来模拟连续变化的电平(“捏造”模拟信号)。注意芯片上的标识, pin 号旁边有 ~ 符号的表示该 pin 支持 pwm。(更详尽的原理以后再做整理)
实验步骤:
1.连接硬件:
首先将 adafruit 电机驱动板直接堆叠插在 arduino 板上,注意数字引脚对数字引脚,模拟引脚对模拟引脚,就可以很容易安装好。效果如图:
b. arduino 板用 usb 数据线接 pc。这时候 arduino 和驱动板都有供电,2 个板子上的 led 灯常亮;
c. 2 条电线穿进电机的 2 个脚,打个小结固定一下,连接顺序现在来说随意。这里提一下电线的准备,用剪刀剪出合适大小的电线后,用剪刀在电线的 2 端各去掉半个手指头长度的包皮,让导线头裸露;
d. 2 条电线另外一端接驱动板上标注 m3(意为 motor 3)的 2 个脚。用 3 mm 十字螺丝刀拧松 2 个脚的螺丝,把电线放进去 2 只脚的压片下,然后拧紧螺丝,效果如图:
2.下载安装电机驱动库
要用代码控制 adafruit 电机驱动板,可以使用 adafruit 提供的库函数,轻松上手。
然后打开 arduino ide,在菜单里,点击“项目”->“加载库”->“添加一个新 zip 库”,然后选择刚刚下载的 zip 压缩包就可以了。
3.编写程序
#include // 因为电机装在驱动板的 m3 位置,所以第一个参数是 3// 第 2 个参数是 pwm 频率,如果电机接在 m1-m2 位上,则参数可选// motor12_64khz// motor12_8khz// motor12_2khz // motor12_1khz// 如果电机接在 m3-m4 位上,则参数可选// motor34_64khz// motor34_8khz// motor34_1khzaf_dcmotor motor(3, motor34_64khz);void setup() { // 选择串口 baud 率 serial.begin(9600); serial.println(motor test!);}void loop() { serial.println(tick); // 设置电机向前运转 motor.run(forward); // 不断加速 for (int i = 0; i 0; i--) { motor.setspeed(i); // 等待 0.1 s 让电机充分减速 delay(100); } serial.println(tock); // 释放电机,不运转 motor.run(release); // 停转 1 s delay(1000); serial.println(tack); // 设置电机向后运转 motor.run(backward); // 不断加速 for (int i = 0; i 0; i--) { motor.setspeed(i); // 等待 0.1 s 让电机充分减速 delay(100); } serial.println(tock); // 释放电机,不运转 motor.run(release); // 停转 1 s delay(1000);}烧录到 arduino 芯片上,可以看到电机按照我们设计的一样,先正向加速运转,然后恒速转动 10 秒,然后减速运转,停顿 1 秒,然后反向加速运转,恒速转动 10 秒,然后减速运转,停顿 1 秒,周而复始。
最后,为了更加明显的看到电机的转动,笔者给小电机安上了一个粗糙的纸风车,效果如下:
同轴喇叭是什么意思_同轴喇叭的优缺点
怎样用AT89S52单片机设计及制作智能遥控开锁装置
Marvell即将以100亿美元的价格收购Inphi
申盛科技:打造高品质产品,质量可靠用户青睐
测肥料浓度仪器设备的特点介绍
Arduino提供的PWM控制功能入门(2)
中国政府支持开展车联网和自动驾驶地图应用
什么是运维标准化和流程化呢?运维工作梳理
无人机设计中STM32库实现的模拟i2c代码
旧手机扔了很可惜吧,教你家中那些闲置的旧手机还有这些利用的方法
韩国政府最终批准了进入下一代QD(量子点)显示行业公司的业务重组
Fidelity为什么会成为首选的大涡模拟(LES)求解器呢?
人脸识别智能锁语音播放芯片——NV340D
消费电子eptfe膜是不是透气不透水材料?
2019年VR行业将迎来关键性发展节点
使用 OpenVINO™ 工具套件进行物体尺寸检测
无线蓝牙模块CC2540使用心得
触摸屏的性能测试可选择大电流弹片微针模组
专业扩声的声场环境要求及调试方法的详细介绍
魅蓝E3怎么样 到底值不值得买