Taula de continguts:
- Subministraments
- Pas 1: Visió general del disseny
- Pas 2: Visió general del codi
- Pas 3: fixació de Nema 17 a la placa base i al barret
- Pas 4: Cablatge L298N i RTC
- Pas 5: Codificació amb comentaris
- Pas 6: problemes i com els vaig solucionar
Vídeo: Alimentador automàtic de gossos: 6 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:10
Aquest és el meu projecte d’un alimentador automàtic d’animals per a mascotes. El meu nom és Parker, sóc de grau 11 i vaig fer aquest projecte l’11 de novembre de 2020 com a CCA (Activity Culminating Course) en aquest projecte. Us mostraré com fer un alimentador automàtic d’animals de companyia amb Arduino UNO. Podeu triar una hora que podeu canviar. El menjar es distribuirà mitjançant una barrina i alimentarà les vostres mascotes.
Subministraments
Electrònica:
- Arduino UNO
- L298N - 10 $ - Controla el Nema 17
- NEMA 17 - 10 $ - Gira la barrina perquè el menjar es distribueixi
- RTC (DS1307) - 10 $: dóna temps
- Font d'alimentació de 12V - 5 $ - Potencia tot
- Mini tauler de pa: per obtenir més espai de cablejat
- Jumper Wires: ho connecta tot
- Cable de femella a masculina: ho connecta tot
Maquinari:
- Filament d’impressió 3D: per a impressores 3D
- 2 cargols M4: manteniu la placa base al seu lloc
- 4 parabolts Nema 17: manteniu premut el nema
- PVC T 48mm dimensió interior 66mm dimensió exterior - 3 $
Eines:
- Impressora 3D
- Trepant
- Pistola de soldar
Pas 1: Visió general del disseny
El disseny de l’alimentador per a mascotes és molt senzill. Una tremuja arriba a la part superior del PVC T. A continuació, hi ha una coberta a la part posterior del PVC T (com es mostra a la imatge) amb el Nema 17 adherit. Aleshores, el Nema 17 s'enfonsarà a la part posterior de la barrena que es pot veure a sobre i un parabolt anirà al lateral per mantenir-lo al seu lloc de manera que no deformi el forat que es pot veure a sobre.
Aleshores, la barrina simplement empeny el menjar fora de la canonada i cap a un bol.
Pas 2: Visió general del codi
El RTC & The stepper tenen un llibre anomenat RTClib.h i Stepper.h que afegeix codi simplificat per al RTC & Stepper. Les afirmacions if són molt senzilles, es diu que si l'hora i els minuts equivalen al temps esmentat, girarà el nema que distribuirà el menjar. La resta del codi és molt fàcil d’entendre fins i tot per a algú amb un dia d’experiència.
Pas 3: fixació de Nema 17 a la placa base i al barret
Primer voleu agafar la placa base i connectar-la al Nema 17 mitjançant els forats prefabricats de la placa base. Un cop fet això, voleu fixar la barrina al Nema mitjançant el forat posterior. A continuació, connecteu la placa base amb el cargol i Nema connectats i cargoleu els cargols M2 a cada costat.
Pas 4: Cablatge L298N i RTC
Aquest pas us indicarà com connectar el L298N i el RTC
Començarem pels passadors 8, 9, 10, 11 fins a la L298N
- Pin 8 (blanc) a IN1
- Pin 9 (morat) a IN2
- Pin 10 (rosa) a IN3
- PIN 11 (groc) a IN4
A continuació, connectarem el Nema 17 al L298N
- OUT1 a 1 a NEMA
- OUT2 a 2 a NEMA
- OUT3 a 3 a NEMA
- OUT4 a 4 a NEMA
Connexió de 12v i Arduino a L298N (no he pogut trobar 12V, així que imagineu la bateria de 9V com a alimentació)
- Volts a 12V
- De terra a GND
- De 5V a 5V a la taula de pa
Connexió de RTC a Arduino
- GND a GND
- De 5V a 5V a la taula de pa
- SDA a A5
- SCL a A4
Passadors de pont
Se suposa que tots els passadors del pont estan al L298N
Pas 5: Codificació amb comentaris
El codi és més clar a les imatges anteriors
// Nom: Parker Frederick
// Nom del projecte: Auto Pet Feeder // Data: dimarts, 10 de novembre de 2020 // Professor: M. Bonisteel // Desc: Alimenta les teves mascotes a la data indicada.
// Llibres per a les coses que he fet servir #include #include #include "RTClib.h"
RTC_DS1307 rtc; // Diu el que estic fent servir RTC
// Aquí és on estableix l'hora del menjar
// Hores int mornFeedTime = 12; int nightFeedTime = 7; // Minuts int mornFeedTimeM = 29; int nightFeedTimeM = 00; // Seconds int mornFeedTimeS = 20; int nightFeedTimeS = 00;
char daysOfTheWeek [7] [12] = {"Diumenge", "Dilluns", "Dimarts", "Wedsneday", "Dijous", "Divendres", "Dissabte"}; // Fa que els dies normals es converteixin en dies de la setmana
alimentació int int = 200; // Aquests són els vostres passos, així que quantes vegades voleu que giri
Stepper myStepper (feed, 8, 9, 10, 11); // Els vostres pins per al Nema 17 i la majoria dels altres steppers
configuració nul·la () {Serial.begin (9600);
mentre que (! sèrie); // Si l'RTC no funciona, el mostrarà a la pantalla de sèrie si (! Rtc.begin ()) {Serial.println ("No s'ha pogut trobar l'RTC"); mentre que (1); }
// Això us indicarà si el rellotge en temps real s'està executant o no i el mostrarà a la pantalla de sèrie si (! Rtc.isrunning ()) {Serial.println ("RTC s'està executant!");
rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_)))); // Això trigarà el temps a l'ordinador i s'utilitzarà a l'RTC
// Si voleu tenir una hora definida en lloc de l’hora de l’ordinador, podeu fer-la aquí //rtc.adjust(DateTime(2020, 10, 29, 8, 28, 0)); // Any / Mes / Dia / Hora / Minut / Segon} myStepper.setSpeed (200); // Velocitat a la qual voleu que giri}
bucle buit () {Data i hora ara = rtc.now ();
// Això farà que aquestes variables siguin l'hora actual, etc. int hr = now.hour (); int mi = now.minute (); int se = now.second ();
// Codi de manera que a l'hora establerta distribuirà el menjar i girarà 5 vegades, això si és per a l'alimentació del matí
if (hr == mornFeedTime && mi == mornFeedTimeM && mornFeedTimeS == se) {Serial.println ("Esmorzar!"); myStepper.step (-feed); retard (700);
myStepper.step (-feed); retard (700);
myStepper.step (-feed); retard (700);
myStepper.step (-feed); retard (700);
myStepper.step (-feed); retard (700);
myStepper.step (-feed); retard (700);
myStepper.step (-feed); retard (700);
}
// Codi, de manera que a l'hora establerta distribuirà el menjar i girarà 5 vegades, això és per a l'alimentació nocturna
if (hr == nightFeedTime && mi == nightFeedTimeM && nightFeedTimeS == se) {Serial.println ("Sopar!"); myStepper.step (-feed); retard (700);
myStepper.step (-feed); retard (700);
myStepper.step (-feed); retard (700);
myStepper.step (-feed); retard (700);
myStepper.step (-feed); retard (700);
myStepper.step (-feed); retard (700);
myStepper.step (-feed); retard (700); }
// Es mostrarà l'any, mes, dia, hora, minut, segon a la sèrie
Serial.print (now.year (), DEC); Serial.print ('/'); Serial.print (now.month (), DEC); Serial.print ('/'); Serial.print (now.day (), DEC); Serial.print ("("); Serial.print (daysOfTheWeek [now.dayOfTheWeek ()]); Serial.print (")"); Serial.print (now.hour (), DEC); Serial.print (':'); Serial.print (now.minute (), DEC); Serial.print (':'); Serial.print (now.second (), DEC); Serial.println (); }
Lloc web que he utilitzat per a RTC He suprimit la majoria de coses que no fossin les declaracions if que diuen si el RTC està activat o no. He utilitzat principalment aquest lloc web per aprendre a programar el RTC
Lloc web que vaig utilitzar per al motor pas a pas, això em va ajudar a entendre com programar el pas a pas perquè no en fes res. Simplement em va ajudar a entendre com codificar-lo
Pas 6: problemes i com els vaig solucionar
Alguns problemes que vaig tenir
- Necessitava una font d'alimentació de 12v, només tenia bateria de 9v, en vaig trobar una i es va solucionar ràpidament.
- En connectar L298N amb NEMA 17, tenia els cables equivocats a A i A-, cosa que feia que tremolés una mica. Simplement ho vaig arreglar canviant els cables cap a una altra banda.
- S'ha intentat fer el codi més senzill perquè a la sentència if myStepper.step (-feed); una vegada i una altra semblava desordenat. Vaig haver de canviar-ho.
- Tenia la placa base de mida incorrecta, tal com es veu a la imatge, així que vaig haver d’imprimir-ne una de nova i encaixava perfectament.
- El problema que tinc és que s'embussa, ja que la barrina és petita, de manera que es pot encallar de manera senzilla, ja que amplieu la barreta una petita quantitat.
Recomanat:
Feederrr automàtic per a gossos !!: 4 passos
Feederrr automàtic per a gossos !!: Fàcil, útil i saludable
Dispensador automàtic de gossos: 10 passos
Dispensador automàtic de gossos: amb el meu projecte m'asseguro que quan deixeu el gos sol a casa, mai no estigui sense menjar. L'alimentador automàtic serà " piratat " d’un dispensador de flocs de blat de moro. El dispensador és el dipòsit per a menjar per a gossos, la roda a la part inferior
Alimentador automàtic de gossos: 5 passos
Alimentador automàtic de gossos: es tracta d’un tutorial pas a pas sobre com fer un alimentador automàtic de gossos mitjançant Arduino. Això és perfecte si esteu fora de casa durant gran part del dia. En lloc de que el vostre gos hagi d’esperar tot el dia per menjar, o que tingueu una ànima a casa per alimentar-lo, aquest dispositiu
Alimentador automàtic de gossos Raspberry Pi i reproductor de vídeo en viu: 3 passos
Alimentador automàtic de gossos Raspberry Pi i Streaming de vídeo en directe: aquest és el meu alimentador automàtic de gossos Raspberry PI. Solia treballar des del matí d’11 a 21 hores. El meu gos es torna boig si no l’alimento a temps. Vaig navegar per Google per comprar menjadors automàtics, no estan disponibles a l'Índia i tenen importacions cares
L’alimentador automàtic automàtic de peixos de bricolatge: nivells 1: 6 passos
L’alimentador automàtic de peixos de bricolatge definitiu: nivell 1: el nivell 1 és l’alimentador més bàsic. Utilitzeu aquesta opció si teniu un pressupost reduït o, com jo, no podeu fer funcionar el nivell 2 abans de marxar una setmana i mitja per vacances. No hi ha control d’il·luminació. Quantitat i tipus de menjar: tinc una betta i 5 de neó