INHOUDSOPGAWE:
- Voorrade
- Stap 1: Oorsig van ontwerp
- Stap 2: Oorsig van die kode
- Stap 3: Bevestig Nema 17 aan die basisplaat en boor
- Stap 4: Bedrading L298N & RTC
- Stap 5: Kodering met kommentaar
- Stap 6: Probleme en hoe ek dit reggemaak het
Video: Auto Hondevoerder: 6 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:23
Dit is my projek van 'n Auto Pet Feeder. My naam is Parker, ek is in graad 11 en ek het hierdie projek op 11 November 2020 gemaak as 'n CCA (Course Culminating Activity) in hierdie projek, en ek sal jou wys hoe om 'n outomatiese troeteldiervoerder met Arduino UNO te maak. U kan 'n tyd kies wat u kan verander. Die kos sal deur 'n skroef uitgegee word en jou troeteldiere voed!
Voorrade
Elektronika:
- Arduino UNO
- L298N - 10 $ - Beheer die Nema 17
- NEMA 17 - 10 $ - Draai die awegaar sodat die kos uitkom
- RTC (DS1307) - 10 $ - Gee die tyd
- 12V -kragtoevoer - 5 $ - werk alles
- Mini Breadboard - Vir ekstra bedrading ruimte
- Jumper Wires - Verbind alles
- Wyfie tot manlike drade - Verbind alles
Hardeware:
- 3D -filament - vir 3D -drukker
- 2 M4 boute - Hou die basisplaat op sy plek
- 4 Nema 17 boute - hou nema vas
- PVC T 48mm binnemaat 66mm buitemaat - 3 $
Gereedskap:
- 3D -drukker
- Boor
- Soldeergeweer
Stap 1: Oorsig van ontwerp
Die ontwerp van die troeteldiervoerder is baie eenvoudig. 'N Vulbak kom bo -op die PVC T. Dan kom 'n deksel agter op die PVC T (soos op die foto getoon) met die Nema 17 daaraan geheg. Dan word die Nema 17 in die agterkant van die snyer gedruk wat hierbo gesien kan word, en 'n bout gaan in die sy om dit vas te hou sodat dit nie die gat wat hierbo gesien kan word, vervorm nie!
Dan sal die snyer eenvoudig die kos uit die pyp druk en in 'n bak kom!
Stap 2: Oorsig van die kode
Die RTC & The stepper het 'n biblioteek genaamd RTClib.h en Stepper.h wat 'n vereenvoudigde kode vir die RTC & Stepper byvoeg. As die uitsprake baie eenvoudig is, is die uitdrukking daarvan: as die uur en minute gelyk is aan die genoemde tyd, draai dit die nema wat die kos sal aflei. Die res van die kode is baie maklik om te verstaan, selfs vir iemand met 'n dag se ervaring.
Stap 3: Bevestig Nema 17 aan die basisplaat en boor
Eerstens wil u u basisplaat neem en dit met u voorafgemaakte gate op die basisplaat aan u Nema 17 heg. Sodra u klaar is, wil u die snyer met die agterste gat aan die Nema koppel. Koppel dan die basisplaat met die skroef en die Nema vas, en skroef die M2 -boute aan elke kant vas.
Stap 4: Bedrading L298N & RTC
Hierdie stap sal u vertel hoe u die L298N & RTC moet aansluit
Ons begin met die penne 8, 9, 10, 11 na die L298N
- Speld 8 (wit) aan IN1
- Speld 9 (pers) aan IN2
- Speld 10 (pienk) aan IN3
- PIN 11 (geel) tot IN4
Vervolgens verbind ons die Nema 17 met die L298N
- OUT1 tot 1 op NEMA
- OUT2 tot 2 op NEMA
- OUT3 tot 3 op NEMA
- OUT4 tot 4 op NEMA
Koppel 12v en Arduino aan L298N (kon nie 12V kry nie, stel u 9V -battery as krag voor)
- Volt tot 12V
- Grond tot GND
- 5V tot 5V op Breadboard
Koppel RTC aan Arduino
- GND tot GND
- 5V tot 5V op Breadboard
- SDA tot A5
- SCL tot A4
Trui -penne
Alle springpenne is veronderstel om op die L298N te wees
Stap 5: Kodering met kommentaar
Die kode duideliker in die prente hierbo
// Naam: Parker Frederick
// Projeknaam: Auto Pet Feeder // Datum: Dinsdag 10 November 2020 // Onderwyser: M. Bonisteel // Desc: Voer u troeteldiere op 'n gegewe tydstip!
// Libaries vir die dinge wat ek gebruik het #include #include #include "RTClib.h"
RTC_DS1307 rtc; // Sê wat RTC gebruik
// Dit is waar u die tyd vir die kos bepaal
// Ure int mornFeedTime = 12; int nightFeedTime = 7; // Minute int mornFeedTimeM = 29; int nightFeedTimeM = 00; // Sekondes int mornFeedTimeS = 20; int nightFeedTimeS = 00;
char daysOfTheWeek [7] [12] = {"Sondag", "Maandag", "Dinsdag", "Woensdag", "Donderdag", "Vrydag", "Saterdag"}; // Laat normale dae verander in die dae van die week
const int voer = 200; // Dit is u stappe, so hoeveel keer wil u hê dat dit moet draai
Stepper myStepper (voer, 8, 9, 10, 11); // Jou penne vir die Nema 17 en die meeste ander steppers
ongeldige opstelling () {Serial.begin (9600);
terwyl (! Serial); // As die RTC nie werk nie, sal dit dit in die seriële skerm vertoon as (! Rtc.begin ()) {Serial.println ("RTC kon nie gevind word nie"); terwyl (1); }
// Dit sal jou vertel of die Real Time Clock al dan nie loop en dit sal dit op die seriële skerm vertoon as (! Rtc.isrunning ()) {Serial.println ("RTC loop!");
rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_))); // Dit sal u rekenaar tyd neem en dit op die RTC gebruik
// As u 'n vasgestelde tyd in plaas van die rekenaar tyd wil hê, kan u dit hier //rtc.adjust(DateTime(2020, 10, 29, 8, 28, 0)); // Jaar/Maand/Dag/Uur/Minuut/Tweede} myStepper.setSpeed (200); // Spoed wat jy wil hê dit moet draai om}
leemte -lus () {DateTime nou = rtc.now ();
// Dit maak hierdie veranderlike die uur wat dit nou is, ens int hr = now.hour (); int mi = nou.minute (); int se = nou.sekonde ();
// Kodeer, sodat dit op die vasgestelde tyd die kos uitgee en 5 keer draai, dit is vir die oggendvoer
if (hr == mornFeedTime && mi == mornFeedTimeM && mornFeedTimeS == se) {Serial.println ("Ontbyt!"); myStepper.step (-feed); vertraging (700);
myStepper.step (-feed); vertraging (700);
myStepper.step (-feed); vertraging (700);
myStepper.step (-feed); vertraging (700);
myStepper.step (-feed); vertraging (700);
myStepper.step (-feed); vertraging (700);
myStepper.step (-feed); vertraging (700);
}
// Kodeer, so op die vasgestelde tyd sal die kos uitgegee word, en dit sal 5 keer draai, dit is vir nagvoeding
if (hr == nightFeedTime && mi == nightFeedTimeM && nightFeedTimeS == se) {Serial.println ("Aandete!"); myStepper.step (-feed); vertraging (700);
myStepper.step (-feed); vertraging (700);
myStepper.step (-feed); vertraging (700);
myStepper.step (-feed); vertraging (700);
myStepper.step (-feed); vertraging (700);
myStepper.step (-feed); vertraging (700);
myStepper.step (-feed); vertraging (700); }
// Dit sal die JAAR, MAAND, DAG, UUR, MINUUT, TWEEDE in die reeks vertoon
Serial.print (nou.jaar (), DEC); Serial.print ('/'); Serial.print (nou.maand (), DEC); Serial.print ('/'); Serial.print (now.day (), DEC); Serial.print ("("); Serial.print (daysOfTheWeek [now.dayOfTheWeek ()]); Serial.print (")"); Serial.print (nou.uur (), DEC); Serial.print (':'); Serial.print (nou.minute (), DEC); Serial.print (':'); Serial.print (nou.sekonde (), DEC); Serial.println (); }
Webwerf wat ek vir RTC gebruik het, het ek die meeste ander dinge verwyder as die if -stellings wat sê of die RTC aan of af is. Ek het hoofsaaklik hierdie webwerf gebruik om te leer hoe om die RTC te programmeer
Webwerf wat ek vir Stepper motor gebruik het, dit het my gehelp om te verstaan hoe om die stepper te programmeer om te hardloop; ek het eintlik niks daarvan weerhou nie. Dit het my net gehelp om te verstaan hoe ek dit moet kodeer
Stap 6: Probleme en hoe ek dit reggemaak het
'N Paar probleme wat ek gehad het
- Ek het 'n 12V -kragtoevoer nodig, ek het net 'n 9V -battery, ek het een gekry en dit is vinnig opgelos.
- Toe ek L298N met NEMA 17 aansluit, het ek die drade verkeerd op A en A- wat dit 'n bietjie laat ruk het. Ek het dit eenvoudig reggemaak deur die drade andersom te verander.
- Het probeer om kode eenvoudiger te maak, want in die if-verklaring myStepper.step (-feed); telkens deurmekaar gelyk. So ek moes dit terug verander.
- Ek het 'n verkeerde onderplaat gehad, soos op die foto, so ek moes 'n nuwe een 'n bietjie druk en dit pas perfek!
- Die probleem is dat dit vas is, aangesien die vysel te klein is, sodat dit eenvoudig kan oplos, deur die vurk 'n klein bietjie te vergroot!
Aanbeveel:
ZERO DELAY USB JOYSTICK - AUTO ANALOGE MODIFICATION: 5 stappe
ZERO DELAY USB JOYSTICK - AUTO ANALOGUE MODIFICATION: Dit is 'n addisionele projek vir die Zero Delay USB Encoder True Analog Joystick Modification. U moet die Encoder in die vorige projek suksesvol aangepas, getoets en gekalibreer het voordat u hierdie toestel byvoeg. As dit klaar is en dit werk
Auto -waaier met servo- en DHT11 -temperatuur- en humiditeitsensor met Arduino: 8 stappe
Ventilator vir outomatiese verkoeling deur servo- en DHT11 -temperatuur- en humiditeitsensor met Arduino: in hierdie tutoriaal leer ons hoe om te begin & draai 'n waaier wanneer die temperatuur bo 'n sekere vlak styg
Shop Vac Auto Switch (geen Arduino nodig nie): 7 stappe
Shop Vac Auto Switch (geen Arduino nodig nie): Soos baie stokperdjie -houtwerkers, het ek 'n winkelvakuum aan my tafelsaag geheg, en elke keer as ek 'n snit wil uitvoer, moet ek dit aanskakel voordat ek die saag aanskakel. Dit lyk dalk dom, maar dit is 'n pyn in die nek om soveel as moontlik die vakuum aan en af te skakel
Ikea ENEBY 20 Power Mod (No More Auto Sleep): 4 stappe
Ikea ENEBY 20 Power Mod (No More Auto Sleep): Ikea se ENEBY -luidsprekers het uitstekende klank vir die prys. Die grootste nadeel is dat hulle hulself afskakel na ongeveer 15-20 minute se musiek wat nie gespeel is nie, selfs al is die gekoppelde toestel steeds verbind. As u dit weer aanskakel, is die volume weer terug
Framboos Pi Outomatiese Hondevoerder en Live Video Streamer: 3 stappe
Raspberry Pi Outomatiese Hondevoerder en Live Video Streamer: Dit is my Raspberry PI -outomatiese hondevoeder. Ek het van die oggend 11uur tot 21:00 gewerk. My hond word mal as ek hom nie betyds voed nie. Google het gesoek om outomatiese voeders te koop, hulle is nie in Indië beskikbaar nie en duur invoer