今天我们来学一下如何用电位器来控制舵机。电位器和舵机都是极为常用的传感器和执行器。
电位器
电位器(英文:Potentiometer,通俗上也简称 Pot,少数直译成电位计),中文通常又称为可变电阻器(VR,Variable Resistor)或简称可变电阻,是一种具有三个端子,其中有两个固定接点与一个滑动接点,可经由滑动而改变滑动端与两个固定端间电阻值的电子零件,使用时可形成不同的分压比率,改变滑动点的电位,因而得名。 至于只有两个端子的可变电阻器(或已将滑动端与其中一个固定端保持连接,对外实际只有两个有效端子的)并不称为电位器,只能称为可变电阻。(两个端子的可变电阻英文称 rheostat 或 variable resistor) 电位器最常见的用途是各式音响声源设备里的音量控制或电子设备里的各式准位与功率等的控制,也可以做为位置或角度的传感器,或者是作为钨丝灯泡调光器或电热丝功率调节器的控制元件等。 但某些用途,如前述例子中的后者,通常将电位器接成两端子可变电阻(rheostat)形式来使用。 常见的碳膜或陶瓷膜电位器可以透过铜箔或铜片与印刷膜接触旋转或滑动产生于输出、输入端的不同电阻。较大功率的电位器则是使用线绕式。 电位器有时会合并附带其他功能,例如某些音量控制用的电位器附开关,可兼作音量与电源开关的功能,此时通常是在音量最小的一端附带关闭电源。
舵机
舵机(Servo)作为基本的输出执行构件,在微机电系统和航模被广泛应用。 舵机是一种位置(角度)伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。最常见的舵机也称为伺服电机。拆开舵机,我们可以看到舵机基本是由齿轮组,直流电机,电位器和控制电路组成的。
舵机的位置改变是靠控制PWM(脉冲宽度调制,在《Arduino入门9: PWM和如何控制LED的亮度》中我们介绍过)的占空比来实现的。一般使用的PWM周期是20ms,占空比0.5~2.5ms 的正脉冲宽度和舵机的转角相对应(不同牌子的舵机对应的标准有差异)。
舵机有三根接线: 黑色/棕色:GND 红色:正极 (~4.8-6V). 黄色/橙色/白色:信号线 (3-5V)
下面就开始来动手。
准备材料
Arduino UNO 1块
当然你也可以使用Arduino其它版本,比如Arduino Leonardo, Arduino Duemilanove。
Arduino USB线 1根
一端是A型,一端是B型的USB连接线,用来连接Arduino和电脑
迷你面包板 1块(可选)
面包线/跳线 若干根
两头都是针头的公对公面包线若干
电位器 1个
9g舵机 1个
装有Arduino IDE的Mac/PC/Linux 1台
若没有安装,请参考《Arduino入门3: 安装和熟悉Arduino IDE》安装。
连接电路
按照图示连接好电路:
代码
可以直接在File> Examples> Servo> Knob里直接导入示例代码。
这里的代码应该都很好理解,主要map()函数我们之前没有遇到过,map()是提供的是一种范围重新映射的功能。
map(value, fromLow, fromHigh, toLow, toHigh)需要给出5个值,然后它会返回一个值:
上传运行就可以了,舵机会随着电位器的转动而转动。网上找到类似效果:
Arduino电子书和视频教程获取方式
也想要一份我们套件附送的Arduino电子书和各种视频教程么?
扫描下方二维码加关注后,回复“福利”
戳阅读原文,购买Arduino入门学习套件