发布时间: 2026-04-07
不少人于养鱼、养宠物或者要有定时投放颗粒物料之际,会萌生出制作一个自动投喂器的想法。然而在面对舵机控制、程序编写以及机械结构设计之时,常常不知从何处着手。本教案的关键目标仅有一个:教导你运用最为常见的舵机,在两小时以内达成一个能够实际运行的自动投喂器原型。
你将会学到:
舵机如何转动到指定角度来释放食物
如何用简单代码控制投喂时间和次数
如何避免食物卡死、投喂量不准等常见问题
可在电子市场或者在线平台把以下材料购买到,本教案不推举任何品牌,仅仅给出技术规格要求。
关键提示是,舵机的供电电流得足够,常见小型舵机空载电流大概在100至200mA,堵转的时候能达到500至800mA,建议采用5V/1A以上的电源,别从控制板的5V引脚取电去驱动舵机,不然会致使控制板重启。
舵机依据接收PWM信号的高电平持续时长来判定转动角度,这属于标准规范,它适用于市面上高达99%的180°舵机。
此数据的源头是,舵机控制信号的标准来源于遥控行业的通用规范,其中PWM信号周期为20ms,脉宽在0.5ms至2.5ms之间对应着0至180°,并且该标准被、树莓派等主流开发平台直接采用。
一次完整的投喂动作分为三步:
1. 待机位置:舵机保持在0°(拨片不接触饲料)
2. 投喂动作:舵机从0°转到90°(拨片推动饲料从出口落下)
3. 复位动作:舵机从90°转回0°(等待下一次投喂)
关键要点在于,舵机转动速度是固定不变的,一般情况下,在0.1 0.2秒的时间内能够转动60°,所以转动90°大概是需要0.15 0.3秒的时间。在代码里面,你要给舵机充足的时间去完成转动,之后再去执行下一个指令。
关键要点是,舵机的GND,一定要跟控制板的GND连接为一体,也就是处于共同接地状态,不然的话,信号就没办法正常进行传输了。
#
Servo ;
int = 9; // 信号线接引脚9
int = 90; // 投喂角度(根据实际结构可调60120°)
int = 0; // 待机角度
long = 0;
long = ; // 24小时 = 毫秒
// 测试时建议改为60000(1分钟)或30000(30秒)
void setup() {
.();
.write(); // 初始位置
delay(500);
}
void loop() {
long = ();
// 到达投喂时间
if ( >= ) {
// 执行投喂
.write();
delay(500); // 保持投喂位置0.5秒,确保饲料完全掉落
.write();
delay(500);
= ;
}
// 其他代码可放在这里(如按键手动投喂、LED指示等)
delay(100);
}
结构方面的原理是,舵机会带动一个带有缺口的圆盘进行转动,在这个过程当中,当缺口正好对准储料桶底部的出口时,饲料就会出现掉落的情况。
制作步骤:
1. 用塑料瓶盖或亚克力板制作直径58cm的圆盘
2. 在圆盘上开一个扇形缺口(角度约60°)
3. 将圆盘固定在舵机臂上
4. 储料桶底部开一个与缺口大小匹配的圆孔
5. 舵机每转一次,缺口经过出口一次,饲料掉落
这一情况存在着这样的优点,那就是饲料并非以直接受压的方式呈现,所以不会出现卡死的状况,并且投喂量是凭借缺口大小来进行决定的,其呈现出的状态是非常稳定的。
结构原理是,在舵机臂之上固定着一个拨片,当进行转动的时候,会把饲料从储料桶底部的缺口那儿推出。
制作步骤:
1. 在储料桶底部侧面开一个孔(孔径略大于饲料颗粒直径)
2. 舵机安装在桶壁外侧,拨片伸入孔内
3. 舵机转动时拨片将饲料拨出
缺点:饲料可能卡在拨片和桶壁之间,需要定期清理。
结构原理:舵机带动一个小翻斗,翻斗接住饲料后翻转倾倒。
适用场景:南方潮湿地区,避免饲料在容器内受潮结块。
原因:舵机启动瞬间电流过大伟创动力,从控制板取电导致电压跌落。
:
舵机电源从外部电源取电,不能从控制板的5V引脚取
外部电源电流能力至少1A
控制板GND与外部电源GND连接
先是存在这样一种状况,舵机转动的速度,跟代码延时之间,并未达成匹配,且每一次转动到达指定位置时,所需要耗费的时间,也并非相同。
:
增加delay时间到500ms以上
使用.write()后,不要马上就进行写回操作,要给予足够的转动时间。
检查舵机供电是否稳定(电压不足时转动变慢)
起因:舵机的类型契合不了代码,并不相符,普通的那种可以达到一百八十度的舵机,是不具备支持持续不断进行旋转的可行条件的,要不然就是舵机已然出现了损坏的状况。
:
确认舵机是180°标准舵机伟创动力舵机,不是360°连续旋转舵机
对.write(0)加以运用,并且运用.write(180)来测试最大行程范围。
![]()
如果实际行程小于180°,在代码中将最大角度限制为实测值
原因:颗粒饲料直径大于出口孔径,或饲料受潮结块。
:
出口孔径至少为饲料最大直径的1.5倍
在储料桶内加入一个搅拌棒(固定在舵机臂上,随转动搅动)
饲料应保持干燥,梅雨季节减少单次加料量
因素在于,控制板内部的晶振存在着微小的误差,这种误差累计起来,在历经24小时的时长后,兴许会出现偏差数分钟的情况。
:
使用带RTC时钟模块(如)的精确计时
要么采用通过网络进行即时对时的方式,这种方式是借助或者ESP32连接WiFi从而获取NTP时间。
如果允许±10分钟误差,直接用()函数即可
缘由是,舵机长时间维持在受力的状况下,这种状况是在其未回到待机位置的时候,拨片被饲料给顶住了。
:
确保待机角度下舵机完全不接触饲料
在代码中投喂完毕后立即回到待机角度
检查机械结构是否顺畅,舵机转动时有无卡滞
按第四章接线图连接舵机和
进行测试代码的上传操作,通过手动方式将修改成5000(也就是5秒)。
观察舵机是否每5秒转动一次
选择第五章中的方案A(转盘式),用硬纸板快速制作原型
用剪刀在塑料瓶底部开孔,将舵机固定在木板或塑料盒上
装入少量饲料(约20粒),测试10次投喂
根据实际投喂量调整和delay时间
将改为24小时()
连续运行3天,每天检查一次投喂量和设备状态
关键结论是:自动投喂器的重点所在是于三点——舵机角度跟时间的适配,供电共地,还有防止饲料出现卡死现象。掌握了这三点,你能够借助不超过50元的材料去做出一个实现稳定运行的自动投喂器。要是在制作进程里碰到上述没有罗列出来的问题,那就得去检查舵机规格书中的工作电压以及扭矩参数是不是符合你的投喂所需。