Indholdsfortegnelse:
- Forbrugsvarer
- Trin 1: Oversigt over design
- Trin 2: Oversigt over kode
- Trin 3: Fastgørelse af Nema 17 til bundplade og snegl
- Trin 4: Ledningsføring L298N & RTC
- Trin 5: Kodning med kommentarer
- Trin 6: Problemer og hvordan jeg løste dem
Video: Auto hundeføder: 6 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:25
Dette er mit projekt med en Auto Pet Feeder. Mit navn er Parker, jeg går i klasse 11, og jeg lavede dette projekt den 11. november 2020 som en CCA (Course Culminating Activity) i dette projekt. Jeg viser dig, hvordan du laver en automatisk dyrefoder med Arduino UNO. Du kan vælge et tidspunkt, som du kan ændre. Maden kommer ud gennem en snegl og fodrer dine kæledyr!
Forbrugsvarer
Elektronik:
- Arduino UNO
- L298N - 10 $ - Styrer Nema 17
- NEMA 17 - 10 $ - Drej sneglen, så maden udleveres
- RTC (DS1307) - 10 $ - Giver tiden
- 12V strømforsyning - 5 $ - forsyner alt
- Mini Breadboard - For ekstra ledningsplads
- Jumper Wires - Forbinder alt
- Kvindelige til han -ledninger - Forbinder alt
Hardware:
- 3D print filament - til 3d printer
- 2 M4 bolte - Hold bundpladen på plads
- 4 Nema 17 bolte - Hold nema nede
- PVC T 48 mm indvendig dimension 66 mm udvendig dimension - 3 $
Værktøjer:
- 3D printer
- Bore
- Loddepistol
Trin 1: Oversigt over design
Designet af dyrefoder er meget enkelt. En beholder går på toppen af PVC T. Derefter går et dæksel på bagsiden af PVC T (som vist på billedet) med Nema 17 fastgjort til det. Derefter vil Nema 17 blive skubbet ind bag på sneglen, som kan ses ovenfor, og en bolt går ind i siden for at holde den på plads, så den ikke deformerer hullet, som kan ses ovenfor!
Så vil sneglen simpelthen skubbe maden ud af røret og ned i en skål!
Trin 2: Oversigt over kode
RTC & Stepper har en libary kaldet RTClib.h og Stepper.h, som tilføjer forenklet kode til RTC & Stepper. Hvis if -udsagnene er meget enkle, siger det sig, at hvis timen og minutter er lig med den nævnte tid, vil det dreje nema, som vil afgive maden. Resten af koden er meget let at forstå, selv for nogen med en dag med erfaring.
Trin 3: Fastgørelse af Nema 17 til bundplade og snegl
Først vil du tage din bundplade og fastgøre den til din Nema 17 ved hjælp af de færdiglavede huller på bundpladen. Når det er gjort, vil du fastgøre sneglen til Nema ved hjælp af baghullet på den. Tilslut derefter bundpladen med sneglen og Nema fastgjort, og skru derefter M2 -boltene i hver side.
Trin 4: Ledningsføring L298N & RTC
Dette trin fortæller dig, hvordan du tilslutter L298N & RTC
Vi starter med benene 8, 9, 10, 11 til L298N
- Pin 8 (hvid) til IN1
- Pin 9 (lilla) til IN2
- Pin 10 (pink) til IN3
- PIN 11 (gul) til IN4
Dernæst forbinder vi Nema 17 med L298N
- OUT1 til 1 på NEMA
- OUT2 til 2 på NEMA
- OUT3 til 3 på NEMA
- OUT4 til 4 på NEMA
Tilslutning af 12v og Arduino til L298N (kunne ikke finde 12V, så forestil dig 9V batteri som strøm)
- Volt til 12V
- Jord til GND
- 5V til 5V på Breadboard
Tilslutning af RTC til Arduino
- GND til GND
- 5V til 5V på Breadboard
- SDA til A5
- SCL til A4
Jumper pins
Alle jumper pins skal være på L298N
Trin 5: Kodning med kommentarer
Koden klarere i billederne ovenfor
// Navn: Parker Frederick
// Projektnavn: Auto Pet Feeder // Dato: Tirsdag den 10. november 2020 // Lærer: M. Bonisteel // Desc: Foder dine kæledyr på et nævnt tidspunkt!
// Libaries for de ting, jeg brugte #include #include #include "RTClib.h"
RTC_DS1307 rtc; // Siger hvad RTC jeg bruger
// Det er her, du indstiller tiden for maden
// Timer int mornFeedTime = 12; int nightFeedTime = 7; // Minutter int mornFeedTimeM = 29; int nightFeedTimeM = 00; // Sekunder int mornFeedTimeS = 20; int nightFeedTimeS = 00;
char daysOfTheWeek [7] [12] = {"søndag", "mandag", "tirsdag", "onsdag", "torsdag", "fredag", "lørdag"}; // Gør normale dage til at blive til ugedage
const int feed = 200; // Dette er dine trin, så hvor mange gange du vil have det til at dreje
Stepper myStepper (feed, 8, 9, 10, 11); // Dine ben til Nema 17 og de fleste andre steppere
ugyldig opsætning () {Serial.begin (9600);
mens (! Seriel); // Hvis RTC ikke virker, vises den på seriel skærm, hvis (! Rtc.begin ()) {Serial.println ("Kunne ikke finde RTC"); mens (1); }
// Dette viser dig, om Real Time Clock kører eller ej, og det vil vise det på den serielle skærm, hvis (! Rtc.isrunning ()) {Serial.println ("RTC kører!");
rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_))); // Dette vil tage din computer tid og bruge den på RTC
// Hvis du vil have en bestemt tid i stedet for computertiden, kan du gøre det her //rtc.adjust(DateTime(2020, 10, 29, 8, 28, 0)); // År/måned/dag/time/minut/sekund} myStepper.setSpeed (200); // Hastighed du vil have den til at dreje til}
void loop () {DateTime nu = rtc.now ();
// Dette vil gøre disse variabler til den time, den er lige nu osv. Int hr = now.hour (); int mi = nu. minut (); int se = nu.sekund ();
// Kode, så på det indstillede tidspunkt vil det afgive maden, og den vil centrifugeres 5 gange, dette hvis det er morgenfoder
if (hr == mornFeedTime && mi == mornFeedTimeM && mornFeedTimeS == se) {Serial.println ("Morgenmad!"); myStepper.step (-feed); forsinkelse (700);
myStepper.step (-feed); forsinkelse (700);
myStepper.step (-feed); forsinkelse (700);
myStepper.step (-feed); forsinkelse (700);
myStepper.step (-feed); forsinkelse (700);
myStepper.step (-feed); forsinkelse (700);
myStepper.step (-feed); forsinkelse (700);
}
// Kode, så på det indstillede tidspunkt vil det afgive maden, og den vil dreje 5 gange, dette er til natfoder
if (hr == nightFeedTime && mi == nightFeedTimeM && nightFeedTimeS == se) {Serial.println ("Middag!"); myStepper.step (-feed); forsinkelse (700);
myStepper.step (-feed); forsinkelse (700);
myStepper.step (-feed); forsinkelse (700);
myStepper.step (-feed); forsinkelse (700);
myStepper.step (-feed); forsinkelse (700);
myStepper.step (-feed); forsinkelse (700);
myStepper.step (-feed); forsinkelse (700); }
// Dette viser YEAR, MONTH, DAY, HOUR, MINUTE, SECOND i serien
Serial.print (nu.år (), DEC); Serial.print ('/'); Serial.print (nu. Måned (), DEC); Serial.print ('/'); Serial.print (nu. Dag (), DEC); Serial.print ("("); Serial.print (daysOfTheWeek [nu.dayOfTheWeek ()]); Serial.print (")"); Serial.print (nu. Time (), DEC); Serial.print (':'); Serial.print (nu. Minut (), DEC); Serial.print (':'); Serial.print (nu. Sekund (), DEC); Serial.println (); }
Hjemmeside, jeg brugte til RTC Jeg slettede de fleste andre ting end if -udsagnene, der siger, om RTC er til eller fra. Jeg brugte hovedsageligt dette websted til at lære at programmere RTC
Hjemmeside, jeg brugte til Stepper motor, dette hjalp mig med at forstå, hvordan jeg programmerede stepper til at køre. Jeg holdt ikke rigtig noget fra det. Det hjalp mig bare med at forstå, hvordan jeg skulle kode det
Trin 6: Problemer og hvordan jeg løste dem
Et par problemer jeg havde
- Jeg havde brug for 12v strømforsyning, jeg havde kun 9v batteri, jeg fandt et, og det blev løst hurtigt.
- Da jeg tilsluttede L298N med NEMA 17, havde jeg forkert ledning på A og A- hvilket gjorde det lidt rystet. Jeg rettede det simpelthen ved at skifte ledninger den anden vej.
- Prøvede at gøre koden mere enkel, fordi i if-sætningen myStepper.step (-feed); igen og igen så rodet ud. Så jeg var nødt til at ændre det tilbage.
- Jeg havde den forkerte bundplade som set på billedet, så jeg var nødt til at printe en ny lidt i 3D, og den passede perfekt!
- Problem, jeg har, er, at det er syltetøj, da sneglen er for lille, så det kan fastklemme den enkle måde, jeg kan løse det, ved at forstørre sneglen en lille mængde!
Anbefalede:
NUL DELAY USB JOYSTICK - AUTO ANALOG MODIFIKATION: 5 trin
ZERO DELAY USB JOYSTICK - AUTO ANALOG MODIFICATION: Dette er et yderligere projekt til Zero Delay USB Encoder True Analog Joystick Modification. Du skal have ændret, testet og kalibreret encoderen i det forrige projekt, før du tilføjer denne enhed. Når den er færdig og fungerer
Shop Vac Auto Switch (ingen Arduino påkrævet): 7 trin
Shop Vac Auto Switch (ingen Arduino påkrævet): Som mange hobbyfolk træværkere har jeg et butiksvakuum fastgjort til min bordsav, og hver gang jeg vil udføre et snit, skal jeg tænde det, før jeg tænder saven. Det kan se fjollet ud, men det er ondt i nakken at tænde og slukke butiksvakuummet så mange
Akustisk levitation med Arduino Uno trin for trin (8 trin): 8 trin
Akustisk levitation med Arduino Uno Step-by Step (8-trin): ultralyds lydtransducere L298N Dc kvindelig adapter strømforsyning med en han-DC-pin Arduino UNOBreadboard Sådan fungerer det: Først uploader du kode til Arduino Uno (det er en mikrokontroller udstyret med digital og analoge porte til konvertering af kode (C ++)
Auto Auto Light System: 4 trin
Car Auto Light System: hej fyre, den moderne bil leveres med automatisk billyssystem, hvilket betyder, at forlygterne tændes og slukkes automatisk, afhænger af det omgivende lys, så når det bliver mørkt, eller du kører i tanel, tændes lysene automatisk. troede endda at skifte
Alexa -kontrolleret hundeføder: 6 trin (med billeder)
Alexa kontrolleret hundeføder: Dette er vores hund Bailey. Hun er en del Border Collie og Australian Cattle Dog, så nogle gange er hun klogere end sit eget gode, især når det kommer til at fortælle tid og vide, hvornår hun skal spise aftensmad. Normalt prøver vi at fodre hende omkring kl