打开APP
未登录
开通VIP,畅享免费电子书等14项超值服
开通VIP
首页
好书
留言交流
下载APP
联系客服
Arduino教程 Lesson 12:可控舵机
渔人
>《Arduino》
2018.10.04
关注
在前面一个项目中,我们知道了如何让舵机动起来,这里将进一步的通过外部信号来让舵机随着输入的改变来相应改变角度,方便做一些可控的转动装置。我们这里通过一个可变电阻——电位器,来控制舵机。当然你也可以通过其他的模拟量或者数字量来控制舵机。模拟量的话,比如改造一下前面的感光灯,变成一个会动的感光灯。数字量的话,比如通过一个按钮,倾斜开关等等,一旦触发开关,就让舵机转动,可以有很多玩儿法。再给舵机加个外壳,让它更具生命力。
所需材料
1× Micro Servo 9g
1× 10K 电位器
STEP 1: 硬件连接
与前面一节不同处在于多了一个电位器,电位器相当于一个可变阻值的电阻,两个引脚的一边分别接5V与GND,而另一边只有单独一个引脚的接模拟口0,用于做输入信号。
STEP 2:输入代码
#include <Servo.h> // 声明调用Servo.h库
Servo myservo; // 创建一个舵机对象
int potpin = 0; // 连接到模拟口0
int val; //变量val用来存储从模拟口0读到的值
void setup() {
myservo.attach(9); // 将引脚9上的舵机与声明的舵机对象连接起来
}
void loop() {
val = analogRead(potpin); //从模拟口0读值,并通过val记录
val = map(val, 0, 1023, 0, 179); //通过map函数进行数值转换
myservo.write(val); // 给舵机写入角度
delay(15); // 延时15ms让舵机转到指定位置
}
复制代码
下载代码,成功后,旋转电位器,看看舵机是不是随着电位器转动。
STEP 3:代码回顾
代码的开始部分还是需要调用<Servo.h>库,并创建相应的对象。同时,需要一个模拟口用来读取电位器的值,我们这里用变量potPin代表模拟口0。
这里主要讲下map函数。
函数格式如下:
map(value, fromLow, fromHigh, toLow, toHigh)
map函数的作用是将一个数从一个范围映射到另外一个范围。
也就是说,会将 fromLow 到 fromHigh 之间的值映射到 toLow 在 toHigh 之间的值。
map函数参数含义:
value:需要映射的值
fromLow:当前范围值的下限
fromHigh:当前范围值的上限
toLow:目标范围值的下限
toHigh:目标范围值的上限
map的神奇之处还在于,两个范围中的“下限”可以比“上限”更大或者更小,因此map()函数可以用来翻转数值的范围,可以这么写:
y = map(x, 1, 50, 50, 1);
复制代码
这个函数同样可以处理负数,请看下面这个例子:
y = map(x, 1, 50, 50, -100);
复制代码
val = map(val, 0, 1023, 0, 179);
复制代码
所以,回到代码中,我们是想将模拟口读到的0~1023的值,转换为舵机的0~180°。
STEP 4:
硬件回顾
电位器
电位器可以理解为个电阻,只是这个电阻阻值可变。我们这里可调节的范围是0~10KΩ。电阻两端接电源,通过中间引脚调节阻值,随着电阻值的改变而带动电压变化。我们用模拟口0读取到这个变化中的电压值,并转换为对应的舵机的角度值。这就是整个的控制过程。
电位器在电路上的表示的图标为下图,分别对应器件上的3个引脚。
简单的看下原理,不知道还记不记得在
Arduino教程 Lesson 10 -- 感光灯
中讲到的分压原理。电位器用的同样是分压原理。我们可以理解为,电位器被拆分为上下两个电阻R1和R2,随着转动电位器,上下阻值发生变化,从而对应的输出电压就不同。我们可以想象成切蛋糕,分到的蛋糕越多(电阻),吃下去的能量(电压Vout)也就越大。电压值大小的变化可以直接通过模拟口读到的值(0~1023)反应出来。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报
。
打开APP,阅读全文并永久保存
查看更多类似文章
猜你喜欢
类似文章
电子电路基础知识-
电子元器件技术培训
【玩转开源】基于Arduino的同步机械臂
看图识元件 做元件高手-头条网
RC正弦波振荡器的实用制作方法
数控直流稳压电源
更多类似文章 >>
生活服务
热点新闻
留言交流
回顶部
联系我们
分享
收藏
点击这里,查看已保存的文章
导长图
关注
一键复制
下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!
联系客服
微信登录中...
请勿关闭此页面
先别划走!
送你5元优惠券,购买VIP限时立减!
5
元
优惠券
优惠券还有
10:00
过期
马上使用
×