发布时间: 2026-04-07
您是不是正在着手制作一个具备自动开盖功能的垃圾桶、智能储物盒或者舱盖?运用舵机去控制盖子进行开合,从本质上来说,就是借助PWM信号使得舵机转动到特定的角度,进而带动盖子达成打开或者关闭的动作。本文直接给出从硬件连接一直到代码实现的完整方案,保证您依照步骤去操作就能够成功。
舵机接受PWM也就是脉冲宽度调制信号,把该信号转化成精准的角度予以输出,对于标准舵机而言,其控制周期是20ms也即50Hz,脉冲宽度跟角度的对应关系如下:
> 数据来源:标准遥控舵机控制协议(通用工业标准)
实际进行操作之时,您并不需要去记忆那毫秒数,仅仅只需在代码之中使用诸如0°、90°、180°这般的角度值,舵机库便会自动进行换算。
以最常见的3线舵机为例(线色可能略有差异,请以实际为准):
范例情形:当着手打造一个具备感应而开启盖子功能的垃圾桶之际,把舵机安置于桶身之上,摇臂同桶盖相连接着。在完成接线操作之后,最初先不进行机械结构的固定,而是单独去对舵机的转动情况予以测试。
![]()
往下给出两种运用得最为频繁的控制方案,都达成了“开启→延迟然后→关闭”了这种完完全全的动作。
#
Servo ;
int = 9; // 信号线接数字引脚9
int = 0; // 关闭角度(实测调整)
int = 90; // 打开角度(实测调整)
void setup() {
.();
}
void loop() {
.write(); // 打开盖子
delay(3000); // 保持打开3秒
.write(); // 关闭盖子
delay(3000); // 保持关闭3秒
}
from Pin, PWM
time
servo = PWM(Pin(5), freq=50) # 50Hz频率
def (angle):
duty = int(1632 + (angle/180)*3276) # 0°→1632, 180°→4908
servo.(duty)
while True:
(90) # 打开
time.sleep(3)
(0) # 关闭
time.sleep(3)
通过实际测量得出提示,不同品牌的舵机,其实际角度范围,有可能存在正负5度的偏差,需要先运行代码伟创动力舵机,使得舵机转动到0度和180度,标记出实际位置之后,再去调整以及的数值。
舵机自身仅能够转动一定的角度,常为180°,若要使盖子达成完整的开合,必然得设计适配的力臂。
1. 舵机摇臂借助连杆或者拉杆与盖子边缘相连,这属于直接驱动方式,它适用于轻质的小盖子伟创动力,像是舱盖这种。
2. 大齿轮带动小齿轮,或者大齿轮带动扇形齿轮,在满足盖子需要转动超过一百八十度的时候,用于齿轮或皮带增距。
![]()
3. 扭矩进行核对时,常见的9g舵机,其扭矩大概是1.5kg·cm ,这种情况下它仅仅能够带动塑料小盖。那种大盖子,比如说木质鞋盒盖,就需要选用15kg·cm以上的金属舵机。
频繁出现的失败情形实例:运用9g舵机径直去驱动质地坚硬的塑料垃圾桶盖子,这样子的后果是舵机内部的齿轮出现扫齿状况。针对该情况的办法应对:使用手部去测试盖子开启以及合上所需要的力量数值,而后挑选一款扭矩最少是该数值两倍大小的舵机。
1. 一开始进行空载测试,此时不连接盖子,接着运行上述代码,以此来确认舵机能从0°转到90°,或者是能从0°转到180°,是要达成这样的情况。
2. 实施标记实测角度:借助笔于舵机外壳以及摇臂之上加以记号,切实测量开启与关闭之际各自所对应的角度数值。
3. 将舵机通过热熔胶或者螺丝来进行安装固定,要保证摇臂与盖子连接好了之后转动起来不存在相互干扰停顿。
4. 添加限位保护措施,于盖子完全开启的极限位置布置物理挡块,在盖子完全闭合的极限位置设置物理挡块,以此防止舵机因堵转而被烧毁,从而避免出现相关损坏情况。
这里说的舵机控制开关盖子,其本质在于,是运用PWM信号去确立两个清晰的角度值,这两个角度值,分别对应着盖子处于“开”以及“关”的状态。只要做到接线是正确的,扭矩是足够的,角度是校准的,便能够稳定地达成自动开合。
跟着上述步骤来做,您能够于30分钟之内制作成一个可靠的舵机开关盖子系统。要是碰到特殊机械结构,像滑动盖、上翻盖这种,仅需把舵机的旋转运动借助曲柄滑块或者四连杆机构予以转换就行,控制原理完全没有改变。