
简介:狗零食训练师
我的项目构建了一个狗零食分配器,一次可以分发一些零食。它使用遥控器(如果你愿意,甚至可以是普通的电视遥控器!)来分发零食。它包括一个可选的 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


暂无评论