完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
该教程实验平台:Arduino入门套件
上一篇教程:Arduino教程 Lesson 11 -- 舵机初动 在前面一个项目中,我们知道了如何让舵机动起来,这里将进一步的通过外部信号来让舵机随着输入的改变来相应改变角度,方便做一些可控的转动装置。我们这里通过一个可变电阻——电位器,来控制舵机。当然你也可以通过其他的模拟量或者数字量来控制舵机。模拟量的话,比如改造一下前面的感光灯,变成一个会动的感光灯。数字量的话,比如通过一个按钮,倾斜开关等等,一旦触发开关,就让舵机转动,可以有很多玩儿法。再给舵机加个外壳,让它更具生命力。 所需材料 1× Micro Servo 9g 1× 10K 电位器 STEP 1: 硬件连接 与前面一节不同处在于多了一个电位器,电位器相当于一个可变阻值的电阻,两个引脚的一边分别接5V与GND,而另一边只有单独一个引脚的接模拟口0,用于做输入信号。 STEP 2:输入代码
下载代码,成功后,旋转电位器,看看舵机是不是随着电位器转动。 STEP 3:代码回顾 代码的开始部分还是需要调用 这里主要讲下map函数。 函数格式如下: map(value, fromLow, fromHigh, toLow, toHigh) map函数的作用是将一个数从一个范围映射到另外一个范围。也就是说,会将 fromLow 到 fromHigh 之间的值映射到 toLow 在 toHigh 之间的值。 map函数参数含义: value:需要映射的值 fromLow:当前范围值的下限 fromHigh:当前范围值的上限 toLow:目标范围值的下限 toHigh:目标范围值的上限 map的神奇之处还在于,两个范围中的“下限”可以比“上限”更大或者更小,因此map()函数可以用来翻转数值的范围,可以这么写:
这个函数同样可以处理负数,请看下面这个例子:
所以,回到代码中,我们是想将模拟口读到的0~1023的值,转换为舵机的0~180°。 STEP 4:硬件回顾 电位器 电位器可以理解为个电阻,只是这个电阻阻值可变。我们这里可调节的范围是0~10KΩ。电阻两端接电源,通过中间引脚调节阻值,随着电阻值的改变而带动电压变化。我们用模拟口0读取到这个变化中的电压值,并转换为对应的舵机的角度值。这就是整个的控制过程。 电位器在电路上的表示的图标为下图,分别对应器件上的3个引脚。 简单的看下原理,不知道还记不记得在Arduino教程 Lesson 10 -- 感光灯中讲到的分压原理。电位器用的同样是分压原理。我们可以理解为,电位器被拆分为上下两个电阻R1和R2,随着转动电位器,上下阻值发生变化,从而对应的输出电压就不同。我们可以想象成切蛋糕,分到的蛋糕越多(电阻),吃下去的能量(电压Vout)也就越大。电压值大小的变化可以直接通过模拟口读到的值(0~1023)反应出来。 下一篇教程:Arduino教程 Lesson 13-- 彩灯调光台 |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
【FireBeetle Board ESP32-E IoT 开发板试用体验】彩色灯显示效果
3499 浏览 0 评论
【FireBeetle Board ESP32-E IoT 开发板试用体验】之开箱+环境搭建
2058 浏览 1 评论
【FireBeetle Board ESP32-E IoT 开发板试用体验】使用ESP-IDF进行开发入门(MacOS)
2774 浏览 0 评论
2405 浏览 0 评论
【DFR0100 Arduino入门套件】 Lesson 7 -- 报警器
3647 浏览 2 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-27 05:33 , Processed in 0.698678 second(s), Total 64, Slave 49 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号