当前位置: 首页 > news >正文

半夜两点被猫主子踩醒的铲屎官们,应该都幻想过有个自动投喂机吧?今天咱们用51单片机做个丐版自动喂食器,别看电路简单,该有的功能一样不少

51单片机开发的宠物自动喂食项目, 主要功能: 按键给定,实现自动/手动模式切换。 自动模式下可以设置喂食时间,仿真时电机正转表示喂食,喂食结束电机停止。 手动模式:手动喂食开,手动喂食关,液晶屏显示喂食时间和当前时间。 包括程序源码和protues仿真

先看核心控制逻辑:模式切换就像给机器装了个开关。按键扫描程序里藏着个小技巧:

if(P3_2 == 0){ delay_ms(10); if(P3_2 == 0){ mode = !mode; // 模式标志位翻转 while(!P3_2); // 等按键松开 } }

这个防抖处理特别关键,之前没加延时的时候,主子一爪子拍上去能触发十几次模式切换,液晶屏直接变雪花点。

自动模式下的定时器才是重头戏。定时器0配置成1ms中断一次,累计到设定时间就让电机转起来:

void Timer0() interrupt 1 { static unsigned int count = 0; TH0 = 0xFC; // 1ms定时 TL0 = 0x66; if(++count >= 1000){ // 1秒计数 count = 0; feed_seconds--; // 倒计时 } }

这里有个坑——51的定时器自动重载值要算准,之前把TH0设成0xEE导致每天误差半小时,猫粮盆差点被主子掀了。

手动模式下的喂食控制更像个即时开关:

if(mode == MANUAL){ if(feed_button){ // 手动喂食启动 MOTOR = 1; // 电机正转 lcd_show("MANUAL FEEDING"); } else{ MOTOR = 0; // 急停按钮 } }

调试时发现电机启停太生硬,后来在电机控制线加了个100uF电容,硬是做出了软启动效果。

51单片机开发的宠物自动喂食项目, 主要功能: 按键给定,实现自动/手动模式切换。 自动模式下可以设置喂食时间,仿真时电机正转表示喂食,喂食结束电机停止。 手动模式:手动喂食开,手动喂食关,液晶屏显示喂食时间和当前时间。 包括程序源码和protues仿真

液晶显示部分用了经典的1602屏,时间显示用了取模技巧:

void display_time(){ unsigned char str[16]; sprintf(str, "TIME:%02d:%02d", hour, minute); lcd_write_string(0, 0, str); }

这个sprintf函数简直救命,比手动拼字符串省事多了。不过要注意51的内存有限,字符串长度不能乱来。

Proteus仿真里最魔性的部分是电机模型——就是个带箭头的方框,但配合LED闪烁居然真有投食的仪式感。仿真截图里能看到,设定15秒后电机准时启动,液晶同时显示"FEEDING!"的字样。

源码里有个隐藏彩蛋:长按设置键5秒会进入debug模式,这时LED快闪表示进入时间校准状态。这个功能全靠定时器累加实现,算是给下个版本预留的扩展接口。

最后上电测试时,家里主子蹲在旁边监工的样子,让人不禁想起那些年被支配的恐惧。好在现在有了这玩意儿,至少周末能睡个安稳觉了——只要它别学会按手动喂食键。(项目源码及仿真文件:github.com/xxx/autofeeder)

http://www.jsqmd.com/news/470539/

相关文章:

  • 想在温州学美发?2026可靠培训机构排行来了,市场美发培训蒂梵化妆培训学校满足多元需求 - 品牌推荐师
  • 国产根系分析仪品牌盘点:2026年实力厂家与产品布局 - 品牌推荐大师
  • EKF+在线辨识dq轴电感+SIMULINK+SVPWM+PMSM 适用于spmsm和ipmsm
  • 2026婴儿床行业报告:品牌质量排行榜单,从甲醛含量到护脊硬度,五大国产品质之选
  • dify中导入excel进知识库应该怎么选
  • 质粒转染实验流程 中科世康生物
  • FreeRtos——20、任务栈大小确认以及栈溢出与检测
  • COMSOL压电横波检测裂纹:楔块为亚克力塑料,PZT-5H压电片自发自收检测模型
  • ai驱动的黑盒web扫描器欢迎补充
  • ERP上线前一晚,项目组必做的最后检查清单
  • 黄金短期上涨势头不佳受什么因素影响?
  • 2026年口碑好的网版工厂推荐:丝印网版/印刷网版/钢丝网网版源头工厂推荐 - 行业平台推荐
  • Flume01:大数据日志收集与传输利器
  • 初学算法打卡第一天:入门 DP问题
  • vue表格数据分组后如何同时实现筛选功能
  • 仿muduo库实现高并发服务器---线程池模块Eventloop的实现
  • CCP基本命令—选择标定数据页、获取DAQ列表大小
  • 导入Rsoft接口库
  • 网络通信与 TCP/IP 五层协议模型详解
  • 2026年质量好的异性拉伸件公司推荐:五金拉伸件生产厂家推荐几家 - 行业平台推荐
  • No.103.基于博途的PLC三种模式通行时间可调的复杂路口交通灯程序设计与仿真,带登录系统登...
  • 2026年比较好的食品生产线公司推荐:麦片生产线/糖果生产线/复合薯片生产线值得信赖的生产厂家 - 行业平台推荐
  • java基于springboot的毕业生招聘职位推荐系统设计
  • java关键字之final学习
  • 基于Vue.js的电商前端模板:Vue-Dashboard-Template的设计与实现
  • 2026年比较好的包装机公司推荐:给袋包装机/巧克力包装机/糖果枕式包装机工厂直供哪家专业 - 行业平台推荐
  • Windows应用程序漏洞及防御
  • 2025 1-12
  • 线缆中的正向、反向、同向、异向的具体意思是什么?
  • 低温传感器质量检测的具体步骤