Cuprins:
- Provizii
- Pasul 1: Prezentare generală a designului
- Pasul 2: Prezentare generală a codului
- Pasul 3: Atașarea Nema 17 la placa de bază și melcul
- Pasul 4: Cablarea L298N și RTC
- Pasul 5: Codificare cu comentarii
- Pasul 6: Probleme și cum le-am remediat
Video: Alimentator automat pentru câini: 6 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:41
Acesta este proiectul meu de alimentator auto pentru animale de companie. Numele meu este Parker, sunt în clasa a 11-a și am realizat acest proiect pe 11 noiembrie 2020 ca CCA (Curs Culminating Activity) în acest proiect. Vă voi arăta cum să creați un alimentator automat pentru animale de companie cu Arduino UNO. Puteți alege o oră pe care o puteți schimba. Mâncarea se va distribui printr-un melc și vă va hrăni animalele de companie!
Provizii
Electronică:
- Arduino UNO
- L298N - 10 $ - Controlează Nema 17
- NEMA 17 - 10 $ - Întoarce melcul astfel încât alimentele să fie distribuite
- RTC (DS1307) - 10 $ - Oferă timp
- Alimentare 12V - 5 $ - Alimentează totul
- Mini Breadboard - Pentru spațiu suplimentar de cablare
- Jumper Wires - Conectează totul
- Sârme între femei și bărbați - Conectează totul
Hardware:
- Filament de imprimare 3D - pentru imprimantă 3D
- 2 șuruburi M4 - Țineți placa de bază în poziție
- 4 șuruburi Nema 17 - Țineți nema apăsat
- PVC T 48mm dimensiune interioară 66mm dimensiune exterioară - 3 $
Instrumente:
- imprimantă 3d
- Burghiu
- Pistol de lipit
Pasul 1: Prezentare generală a designului
Designul alimentatorului pentru animale de companie este foarte simplu. O buncăr se duce pe partea superioară a PVC-ului T. Apoi, un capac se duce pe partea din spate a PVC-ului T (așa cum se arată în imagine) cu Nema 17 atașat la acesta. Apoi Nema 17 va fi împins în partea din spate a melcului care poate fi văzut deasupra și un șurub va intra în lateral pentru a-l ține în poziție, astfel încât să nu deformeze gaura care poate fi văzută deasupra!
Atunci melcul va împinge pur și simplu mâncarea din țeavă și într-un bol!
Pasul 2: Prezentare generală a codului
RTC și Stepper au o bibliotecă numită RTClib.h și Stepper.h care adaugă cod simplificat pentru RTC și Stepper. Afirmațiile if sunt foarte simple spunând dacă ora și minutele sunt egale cu timpul menționat, va roti nema care va distribui mâncarea. Restul codului este foarte ușor de înțeles chiar și pentru cineva cu o zi de experiență.
Pasul 3: Atașarea Nema 17 la placa de bază și melcul
Mai întâi doriți să vă luați placa de bază și să o atașați la Nema 17 folosind găurile premade de pe placa de bază. După ce ați terminat, doriți să atașați melcul la Nema folosind gaura din spate de pe acesta. Apoi conectați placa de bază cu melcul și Nema atașate, apoi înșurubați șuruburile M2 în fiecare parte.
Pasul 4: Cablarea L298N și RTC
Acest pas vă va spune cum să conectați L298N și RTC
Vom începe cu pinii 8, 9, 10, 11 la L298N
- Pinul 8 (alb) la IN1
- Pinul 9 (Violet) la IN2
- Pinul 10 (roz) la IN3
- PIN 11 (Galben) la IN4
În continuare vom conecta Nema 17 la L298N
- OUT1 la 1 pe NEMA
- OUT2 la 2 pe NEMA
- OUT3 la 3 pe NEMA
- OUT4 la 4 pe NEMA
Conectarea 12v și Arduino la L298N (nu am putut găsi 12V, deci imaginați-vă bateria de 9V ca putere)
- Volți la 12V
- Pământ la GND
- 5V la 5V pe Breadboard
Conectarea RTC la Arduino
- GND la GND
- 5V la 5V pe Breadboard
- SDA la A5
- SCL la A4
Jumper Pins
Toți știfturile jumperului ar trebui să fie pe L298N
Pasul 5: Codificare cu comentarii
Codul este mai clar în imaginile de mai sus
// Nume: Parker Frederick
// Numele proiectului: Alimentator auto pentru animale // Data: marți, 10 noiembrie 2020 // Profesor: M. Bonisteel // Desc: Hrăniți-vă animalele de companie la acel moment!
// Librarii pentru lucrurile pe care le-am folosit #include #include #include "RTClib.h"
RTC_DS1307 rtc; // Spune ce folosesc RTC
// Aici stabiliți ora pentru mâncare
// Ore în mornFeedTime = 12; int nightFeedTime = 7; // Minute int mornFeedTimeM = 29; int nightFeedTimeM = 00; // Secunde în mornFeedTimeS = 20; int nightFeedTimeS = 00;
char daysOfTheWeek [7] [12] = {"Sunday", "Monday", "Tuesday", "Wedsneday", "Thursday", "Friday", "Saturday"}; // Face ca zilele normale să se transforme în zilele săptămânii
const int feed = 200; // Acesta este pașii tăi, deci de câte ori vrei să se învârtă
Stepper myStepper (feed, 8, 9, 10, 11); // Știfturile dvs. pentru Nema 17 și majoritatea celorlalți steppers
void setup () {Serial.begin (9600);
while (! Serial); // Dacă RTC nu funcționează, îl va afișa în ecranul serial dacă (! Rtc.begin ()) {Serial.println („Nu s-a putut găsi RTC”); în timp ce (1); }
// Acest lucru vă va spune dacă ceasul în timp real rulează sau nu și îl va afișa pe ecranul serial dacă (! Rtc.isrunning ()) {Serial.println ("RTC rulează!");
rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_)))); // Acest lucru va dura timp computerului și îl va folosi pe RTC
// Dacă doriți să aveți o oră setată în loc de ora computerului, o puteți face aici //rtc.adjust(DateTime(2020, 10, 29, 8, 28, 0)); // An / lună / zi / oră / minut / secundă} myStepper.setSpeed (200); // Viteza la care vrei să se întoarcă}
bucla void () {DateTime now = rtc.now ();
// Aceasta va face ca aceste variabile să fie ora în care se află acum etc int hr = now.hour (); int mi = now.minute (); int se = now.second ();
// Codificați astfel încât la ora stabilită va distribui mâncarea și se va roti de 5 ori, asta dacă este pentru hrana de dimineață
if (hr == mornFeedTime && mi == mornFeedTimeM && mornFeedTimeS == se) {Serial.println ("Mic dejun!"); myStepper.step (-feed); întârziere (700);
myStepper.step (-feed); întârziere (700);
myStepper.step (-feed); întârziere (700);
myStepper.step (-feed); întârziere (700);
myStepper.step (-feed); întârziere (700);
myStepper.step (-feed); întârziere (700);
myStepper.step (-feed); întârziere (700);
}
// Codificați astfel încât la ora stabilită va distribui mâncarea și se va roti de 5 ori, aceasta este pentru hrana pe timp de noapte
if (hr == nightFeedTime && mi == nightFeedTimeM && nightFeedTimeS == se) {Serial.println ("Cina!"); myStepper.step (-feed); întârziere (700);
myStepper.step (-feed); întârziere (700);
myStepper.step (-feed); întârziere (700);
myStepper.step (-feed); întârziere (700);
myStepper.step (-feed); întârziere (700);
myStepper.step (-feed); întârziere (700);
myStepper.step (-feed); întârziere (700); }
// Aceasta va afișa ANUL, LUNA, ZIUA, ORA, MINUTUL, AL DOILEA în serial
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 (); }
Site-ul web pe care l-am folosit pentru RTC Am șters cele mai multe lucruri, în afară de declarațiile if care spun dacă RTC este activat sau nu. Am folosit în principal acest site web pentru a afla cum să programez RTC
Site-ul pe care l-am folosit pentru motorul Stepper, acest lucru m-a ajutat să înțeleg cum să programez stepperul pentru a rula. M-a ajutat doar să înțeleg cum să-l codez
Pasul 6: Probleme și cum le-am remediat
Câteva probleme am avut
- Aveam nevoie de alimentare de 12v, aveam doar baterie de 9v am găsit una și s-a rezolvat rapid.
- Când am conectat L298N la NEMA 17, am greșit firele pe A și A-, ceea ce a făcut-o să tremure puțin. Pur și simplu l-am reparat schimbând firele în sens invers.
- Am încercat să fac codul mai simplu, deoarece în declarația if myStepper.step (-feed); iar și iar părea dezordonat. Așa că a trebuit să o schimb înapoi.
- Am avut dimensiunea greșită a plăcii de bază, așa cum se vede în imagine, așa că a trebuit să printez 3D una nouă și să se potrivească perfect!
- Problema pe care o am este că se blochează, deoarece melcul este prea mic, așa că se blochează într-un mod simplu în care pot rezolva, este prin mărirea melcului o cantitate mică!
Recomandat:
Alimentator automat de plante WiFi cu rezervor - Configurare cultură interioară / exterioară - Plantele de apă automat cu monitorizare de la distanță: 21 de pași
Alimentator automat de plante WiFi cu rezervor - Configurare cultură interioară / exterioară - Plantele de apă automat cu monitorizare de la distanță: În acest tutorial vom arăta cum să configurați un sistem personalizat de alimentare cu plante interior / exterior care udă automat plantele și poate fi monitorizat de la distanță folosind platforma Adosia
Alimentator automat automat pentru pisici: 4 pași
Alimentator automat automat pentru pisici: Bună tuturor, Când plec de acasă câteva zile, hrănirea pisicii mele este întotdeauna o provocare uriașă. Trebuie să cer prietenilor sau rudelor să aibă grijă de pisica mea. Am căutat o soluție pe internet și am găsit o mulțime de produse pentru distribuirea alimentelor pentru animale de companie, dar eu
Alimentator pentru câini controlat Alexa: 6 pași (cu imagini)
Hrănitor controlat de câini Alexa: Acesta este câinele nostru Bailey. Face parte din Border Collie și Australian Cattle Dog, deci uneori este mai inteligentă decât binele ei, mai ales când vine vorba de a spune timpul și de a ști când ar trebui să ia masa. De obicei, încercăm să o hrănim în jurul orei 18:00
Alimentator automat pentru câini: 5 pași
Alimentator automat pentru câini: Acesta este un tutorial pas cu pas despre cum să creați un alimentator automat pentru câini folosind Arduino. Acest lucru este perfect dacă sunteți în afara casei pentru o mare parte a zilei. Mai degrabă decât câinele tău să aștepte toată ziua după mâncare sau să te ducă acasă să o hrănești, acest dispozitiv
Alimentator automat pentru câini Raspberry Pi și Streamer video live: 3 pași
Raspberry Pi Automatic Dog Feeder & Live Video Streamer: Acesta este alimentatorul meu automat pentru câini Raspberry PI. Obișnuiam să lucrez de dimineața 11:00 până la 21:00. Câinele meu o ia razna dacă nu-l hrănesc la timp. Am navigat pe google pentru a cumpăra hrănitoare automate pentru alimente, nu sunt disponibile în India și sunt importate cost