简介:狗零食训练师
我的项目构建了一个狗零食分配器,一次可以分发一些零食。它使用遥控器(如果你愿意,甚至可以是普通的电视遥控器!)来分发零食。它包括一个可选的 LED,用于显示款待何时到来。我之所以选择这个,是因为大多数喂狗机都是为了喂你的狗一顿饭。这个只提供零食。它可以用作训练工具,因为我敢打赌你的狗会坐在它面前等待很长时间......他/他/他们可以练习留下来!你也可以通过给予零食来让你的狗远离你。当他们听到哔哔声时,一旦它们知道这意味着款待,他们就会跑过来!
这是为高级用户准备的。
材料清单:
- arduino控制器
- 面包板
- 微型伺服马达
- 红外线接收器
- 遥控
- 有源蜂鸣器*
- LED和330电阻器(可选)
- 10-11跳线
- 狗/猫零食;各自的宠物
- 坡道组件
*被动蜂鸣器使用tone(),它与IRremote库冲突。有一个解决方法,但是更复杂!
步骤1:原理图/设置
使用330电阻将您的LED(如果需要)连接到引脚9。
将活动的蜂鸣器连接到引脚6。
将IR接收器连接到针脚10。地雷通过字母标记的针脚连接到其自身的分线板上:G =接地;R =功率;Y =信号。使用此页面可以对IR接收器连接进行故障排除。
连接伺服电机,将黑色接地匹配,将红色匹配至5V,将橙色匹配至数字引脚(我使用11)。使用此页面可对您的伺服连接进行故障排除。
步骤2:查找您的遥控器的代码
您可以使用专用于Arduino的遥控器,也可以使用常规的电视遥控器!我从遥控器上选择了一个用途不多的随机按钮之一,并使用了它(底部的蓝色按钮)。这样,我就可以在沙发上舒适的地方看电视并治疗狗了!
基本上,上传以下代码:
#include <IRremote.h> const int RECV_PIN = 7; IRrecv irrecv(RECV_PIN); encode_results result; void setup(){ Serial.begin(9600); irrecv.enableIRIn(); irrecv.blink13(true); } void loop(){ if(irrecv.decode(&results)){ Serial.println(results.value,HEX); irrecv.resume(); } }
按下一个按钮,查看串行监视器中的值。
保存此内容以放入步骤4的代码中。
步骤3:构建坡道
使用您手头上的任何东西为您的零食建立倾斜的溜槽。也许两个尺子用胶带粘在一起形成溜槽?乐高积木?顺着坡道的角度玩一下,一次加载多少个零食。
我用PVC管做滑槽,把药瓶的一端抬到空中,这样可以为以后提供更多的零食而带来额外的好处。我用胶带将所有这些胶带粘在一起,然后将伺服电机也粘在桌面边缘上。胶带可防止所有零件滑动。
步骤4:将代码/放在一起
第22行是您要放置要使用的远程按钮的代码的地方。编写“ case 0xCODE:”,然后用您的远程按钮代码替换CODE。
#include <IRremote.h> // add the library for the IR receiver #include <Servo.h> // add the library for the Servo motor const int RECV_PIN = 10; IRrecv irrecv(RECV_PIN); decode_results results; // lines 4-6 setup the IR receiver const int LED = 9; const int buzzerPin = 6; Servo myservo; // name the servo int pos = 0; // variable that stores the servo position void setup(){ irrecv.enableIRIn(); // IR receiver setup pinMode(LED, OUTPUT); pinMode(buzzerPin, OUTPUT); myservo.attach(11); // the pin where your servo is attached } void loop(){ if (irrecv.decode(&results)){ switch(results.value){ // 20-21 IR receiver setup case 0x20DF8679: // this is where you put the code for the remote button digitalWrite(LED, HIGH); digitalWrite(buzzerPin, HIGH); delay(20); digitalWrite(buzzerPin, LOW); // lines 24-26 give a short note before the servo moves for(pos = 0; pos <=180; pos +=1){ myservo.write(pos); delay(10); } for(pos = 180; pos>=0; pos-=1) { myservo.write(pos); delay(10); } // lines 27-35 control the servo movement delay(2000); digitalWrite(LED, LOW); } irrecv.resume(); } }
步骤5:总结
希望您可以按照本教程进行操作。为您的毛茸茸的朋友制作有趣的零食设备,尽情享受吧!
v=onGGy8uFYJQ
版权说明
本文遵循CC BY-SA版权协议,转载请附上原文出处链接及本声明。
链接:https://chandianzi.cn/dog-treat-trainer.html
作者:
版权协议:CC BY-NC-SA
分类名称:arduino-10
资源标识:Dog-Treat-Trainer
暂无评论