Sadržaj:
- Pribor
- Korak 1: Pregled dizajna
- Korak 2: Pregled koda
- Korak 3: Pričvršćivanje Nema 17 na osnovnu ploču i svrdlo
- Korak 4: Ožičenje L298N & RTC
- Korak 5: Kodiranje s komentarima
- Korak 6: Problemi i kako sam ih riješio
Video: Automatska hranilica za pse: 6 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:32
Ovo je moj projekt automatske hranilice za kućne ljubimce. Moje ime je Parker, ja sam u razredu 11 i napravio sam ovaj projekt 11. studenog 2020. kao CCA (aktivnost koja završava tečaj) u ovom projektu pokazat ću vam kako napraviti automatsku hranilicu za kućne ljubimce s Arduino UNO. Možete odabrati vrijeme koje možete promijeniti. Hrana će se točiti kroz svrdlo i hraniti vaše ljubimce!
Pribor
Elektronika:
- Arduino UNO
- L298N - 10 USD - Upravlja Nema 17
- NEMA 17 - 10 $ - Okreće puž tako da se hrana toči
- RTC (DS1307) - 10 USD - Daje vrijeme
- Napajanje od 12V - 5 USD - Omogućuje sve
- Mini Breadboard - Za dodatni prostor ožičenja
- Žice kratkospojnika - sve povezuje
- Ženski na muški kabel - sve povezuje
Hardver:
- 3D tiskana nit - za 3D pisač
- 2 vijka M4 - Držite osnovnu ploču na mjestu
- 4 vijka Nema 17 - Držite nema dolje
- PVC T 48 mm unutarnja dimenzija 66 mm vanjska dimenzija - 3 USD
Alati:
- 3D pisač
- Bušilica
- Pištolj za lemljenje
Korak 1: Pregled dizajna
Dizajn hranilice za kućne ljubimce vrlo je jednostavan. Lijevak ide na vrh PVC -a T. Zatim ide poklopac sa stražnje strane PVC -a T (kao što je prikazano na slici) s pričvršćenim Nema 17. Tada će se Nema 17 gurnuti u stražnji dio svrdla koji se vidi gore, a vijak će otići sa strane da ga drži na mjestu kako ne bi deformirao rupu koja se vidi iznad!
Tada će svrdlo jednostavno gurnuti hranu iz cijevi u zdjelu!
Korak 2: Pregled koda
RTC i Stepper imaju biblioteku pod nazivom RTClib.h i Stepper.h koja dodaje pojednostavljeni kod za RTC & Stepper. Ako su izjave vrlo jednostavne, kaže se da ako su sat i minute jednaki navedenom vremenu, rotirat će se nema koja će izdati hranu. Ostatak koda je vrlo lako razumljiv čak i za nekoga s jednodnevnim iskustvom.
Korak 3: Pričvršćivanje Nema 17 na osnovnu ploču i svrdlo
Najprije želite uzeti osnovnu ploču i pričvrstiti je na Nema 17 pomoću prethodno izrađenih rupa na osnovnoj ploči. Nakon što to učinite, puž morate pričvrstiti na Nema pomoću stražnje rupe na njemu. Zatim spojite osnovnu ploču sa svrdlom i pričvršćenim Nema, a zatim uvijte vijke M2 na svaku stranu.
Korak 4: Ožičenje L298N & RTC
Ovaj korak će vam reći kako spojiti L298N & RTC
Počet ćemo s pinovima 8, 9, 10, 11 do L298N
- Pin 8 (bijeli) na IN1
- Pin 9 (ljubičasta) na IN2
- Pin 10 (ružičasti) na IN3
- PIN 11 (žuti) do IN4
Zatim ćemo spojiti Nema 17 na L298N
- OUT1 do 1 na NEMA -i
- OUT2 do 2 na NEMA -i
- OUT3 do 3 na NEMA -i
- OUT4 do 4 na NEMA -i
Spajanje 12v i Arduina na L298N (Nisam mogao pronaći 12V pa zamislite 9V bateriju kao napajanje)
- Volti do 12V
- Uzemljenje prema GND
- 5V do 5V na Breadboard -u
Povezivanje RTC -a s Arduinom
- GND u GND
- 5V do 5V na Breadboard -u
- SDA do A5
- SCL do A4
Igle za kratkospojnike
Svi kratkospojnici moraju biti na L298N
Korak 5: Kodiranje s komentarima
Kod jasniji na gornjim slikama
// Ime: Parker Frederick
// Naziv projekta: Automatsko hranjenje kućnih ljubimaca // Datum: utorak, 10. studenog 2020. // Učitelj: M. Bonisteel // Desc: Nahranite svoje ljubimce u određeno vrijeme!
// Knjižnice za stvari koje sam koristio #include #include #include "RTClib.h"
RTC_DS1307 rtc; // Kaže što RTC koristi
// Ovdje postavljate vrijeme za jelo
// Sati int mornFeedTime = 12; int nightFeedTime = 7; // Minute int mornFeedTimeM = 29; int nightFeedTimeM = 00; // sekunde int mornFeedTimeS = 20; int nightFeedTimeS = 00;
char daysOfTheWeek [7] [12] = {"nedjelja", "ponedjeljak", "utorak", "srijeda", "četvrtak", "petak", "subota"}; // Pretvara normalne dane u dane u tjednu
const int feed = 200; // Ovo su vaši koraci pa koliko puta želite da se zavrti
Stepper myStepper (feed, 8, 9, 10, 11); // Vaše pribadače za Nema 17 i većinu drugih stepera
void setup () {Serial.begin (9600);
while (! Serijski); // Ako RTC ne radi prikazat će ga na serijskom zaslonu if (! Rtc.begin ()) {Serial.println ("Nije moguće pronaći RTC"); while (1); }
// Ovo će vam reći radi li Sat za realno vrijeme ili ne i prikazat će se na serijskom zaslonu ako (! Rtc.isrunning ()) {Serial.println ("RTC radi!");
rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_))); // Ovo će vašem računalu oduzeti vrijeme i koristiti ga na RTC -u
// Ako želite postaviti vrijeme umjesto računala, to možete učiniti ovdje //rtc.adjust(DateTime(2020, 10, 29, 8, 28, 0)); // Godina/Mjesec/Dan/Sat/Minuta/Druga} myStepper.setSpeed (200); // Brzina na kojoj želite da se okrene}
void loop () {DateTime now = rtc.now ();
// Ovo će ove varijable učiniti trenutnim trenutkom itd. Int hr = sada.hour (); int mi = now.minute (); int se = now.second ();
// Kodirajte tako da će u zadano vrijeme izdati hranu i okrenuti će se 5 puta, to je za jutarnju hranu
if (hr == mornFeedTime && mi == mornFeedTimeM && mornFeedTimeS == se) {Serial.println ("Doručak!"); myStepper.step (-feed); kašnjenje (700);
myStepper.step (-feed); kašnjenje (700);
myStepper.step (-feed); kašnjenje (700);
myStepper.step (-feed); kašnjenje (700);
myStepper.step (-feed); kašnjenje (700);
myStepper.step (-feed); kašnjenje (700);
myStepper.step (-feed); kašnjenje (700);
}
// Kodirajte tako da će u zadano vrijeme izdati hranu i okretati se 5 puta, to je za noćno hranjenje
if (hr == nightFeedTime && mi == nightFeedTimeM && nightFeedTimeS == se) {Serial.println ("Večera!"); myStepper.step (-feed); kašnjenje (700);
myStepper.step (-feed); kašnjenje (700);
myStepper.step (-feed); kašnjenje (700);
myStepper.step (-feed); kašnjenje (700);
myStepper.step (-feed); kašnjenje (700);
myStepper.step (-feed); kašnjenje (700);
myStepper.step (-feed); kašnjenje (700); }
// Ovo će prikazati GODINU, MJESEC, DAN, SAT, MINUTU, SEKUNDU u seriji
Serijski.ispis (sada.godina (), DEC); Serial.print ('/'); Serijski.ispis (sada.mjesec (), 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 (':'); Serijski.ispis (sada.sekunda (), DEC); Serial.println (); }
Web mjesto koje sam koristio za RTC Izbrisao sam većinu stvari osim if naredbi koje govore je li RTC uključen ili isključen. Uglavnom sam koristio ovu web stranicu kako bih naučio programirati RTC
Web stranica koju sam koristio za Stepper motor pomogla mi je razumjeti kako programirati stepper za rad. Nisam ništa skrivao od toga. Samo mi je pomoglo razumjeti kako ga kodirati
Korak 6: Problemi i kako sam ih riješio
Imao sam nekoliko problema
- Trebalo mi je 12v napajanje, imao sam samo 9v bateriju, našao sam jednu i brzo je riješen.
- Prilikom povezivanja L298N s NEMA 17 imao sam pogrešne žice na A i A- zbog čega je malo treperilo. Jednostavno sam to popravio promjenom žica na drugi način.
- Pokušao je pojednostaviti kod jer u if naredbi myStepper.step (-feed); uvijek iznova izgledao neuredno. Pa sam ga morao promijeniti.
- Imao sam pogrešnu osnovnu ploču kao što se vidi na slici pa sam morao 3D ispisati novu malo i savršeno mi pristaje!
- Problem koji imam je da se zaglavi jer je svrdlo premalo pa se zaglavljuje jednostavan način na koji mogu popraviti povećanje malog puža!
Preporučeni:
Automatska hranilica za pse !!: 4 koraka
Automatska hranilica za pse !!: Jednostavno, korisno i zdravo
Automatska hranilica za kućne ljubimce pomoću AtTiny85: 6 koraka
Automatsko hranjenje kućnih ljubimaca pomoću AtTiny85: O trabalho Automatsko hranjenje kućnih ljubimaca pomoću AtTiny85 de PET Engenharia de Computação está licenciado com uma Licenca Creative Commons - Atribuição 4.0 Internacional
Izuzetno elegantna automatska hranilica za mačke: 3 koraka (sa slikama)
Izuzetno elegantna automatska hranilica za mačke: Jojo je super zgodna mačka. Volim ga u svakom pogledu, osim što me stalno budi u 4 sata ujutro radi hrane, pa je vrijeme da nabavim automatsku hranilicu za mačke kako bi mi spasila san. Međutim, on je toliko zgodan da kad želim pronaći pravo
Hranilica za pse kontrolirana Alexa: 6 koraka (sa slikama)
Hranilica za pse s nadzorom Alexa: Ovo je naš pas Bailey. Dijelom je graničarski ovčar i australski govedar, pa je ponekad pametnija od svog dobra, posebno kada je u pitanju isticanje vremena i saznanje kada bi trebala večerati. Obično je pokušavamo nahraniti oko 18 sati
Automatska hranilica za pse: 5 koraka
Automatska hranilica za pse: Ovo je korak po korak vodič o tome kako napraviti automatsku hranilicu za pse pomoću Arduina. Ovo je savršeno ako ste veći dio dana izvan kuće. Umjesto da vaš pas mora cijeli dan čekati na hranu, ili ste se morali patiti kući kako biste ga nahranili, ovaj uređaj