一个舵机的自我修养
如何把一个舵机改装成 360° 连转舵机,以及用代码解决杂音?
背景
一般来说,舵机只能转 180°(网上也有卖也有连转舵机,只是价格贵了一截)。如果想用舵机来作为小车的驱动,可以把它改为连转舵机。
改装 360° 舵机
1. 准备工作
工具:
- 螺丝刀
- 热熔胶枪
- 斜口钳
2. 拆开舵机
注意记住每个齿轮的位置。
3. 修改齿轮
把最大的齿轮拣出来,用斜口钳把后面凸起的地方剪掉。
找一只比轴的直径大一点的螺丝刀,给这个齿轮扩大一下内径,使它能在轴上自由转动。
4. 封电位器
在做这一步之前,我们必须先把舵机回到中位。
找一块 Arduino 板子,给它烧进一段让舵机回到中位的程序:
//by Lin
#include <Servo.h>
Servo myservo;
void setup() {
myservo.attach(9);//舵机连接 Arduino 的 D9
}
void loop() {
myservo.write(90); //让舵机回到中位
}
如图,接上舵机,你会发现它一直在转。
把右边的轴来回转几圈,找到一个让电机停下来的位置(把这里的电位器调到中间的值。
给电位器上胶,封死它。注意,这时候不要不小心把轴给转动了,如果这样,就得重新返回第三步了。
5. 组装
把齿轮组装回去,注意不要弄错齿轮位置。 把螺丝锁上,你就得到了一个 360° 连转舵机。
6. 调试
烧入以下代码:
#include <Servo.h>
Servo myservo;
int pos = 0;
void setup() {
myservo.attach(9);
}
void loop() {
for (pos = 0; pos <= 180; pos += 1) {
// in steps of 1 degree
myservo.write(pos);
delay(15);
}
for (pos = 180; pos >= 0; pos -= 1) {
myservo.write(pos);
delay(15);
}
}
舵机状态:舵机加速—减速—反方向加速—减速。.....
消除杂音
背景
在使用舵机完成相关物联设备制作的时候,经常会遇到,舵机已经到达指定位置,但是仍然会有响声。不胜其烦,@张世博想出了一个方法,就是在舵机供电线路上串一个继电器,在不需要转动的情况下, Arduino 控制继电器断电。但是这个方法会增加硬件成本,而且增加代码复杂度。
解决方案
在需要舵机工作时,使用 attach()
函数,在舵机工作完毕后,使用 detach()
函数。
FAQ
Q:这只是一种类型的舵机,对结构不太相同的金属舵机,该如何改装?
A:可以参考一下 改装成连续旋转的伺服舵机 这篇文章。
参考与致谢
原文地址:https://wiki-power.com/
本篇文章受 CC BY-NC-SA 4.0 协议保护,转载请注明出处。