Innehållsförteckning:
- Tillbehör
- Steg 1: Översikt över design
- Steg 2: Översikt över koden
- Steg 3: Fäst Nema 17 på basplattan och skruven
- Steg 4: Anslutning L298N & RTC
- Steg 5: Kodning med kommentarer
- Steg 6: Problem och hur jag fixade dem
Video: Automatisk hundmatare: 6 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:37
Detta är mitt projekt av en Auto Pet Feeder. Jag heter Parker, jag går i årskurs 11 och jag gjorde det här projektet den 11 november 2020 som CCA (Course Culminating Activity) i det här projektet. Jag visar dig hur du gör en automatisk husdjursmatare med Arduino UNO. Du kan välja en tid som du kan ändra. Maten kommer att matas ut via en skruv och mata dina husdjur!
Tillbehör
Elektronik:
- Arduino UNO
- L298N - 10 $ - Styr Nema 17
- NEMA 17 - 10 $ - Vänder skruven så att maten matas ut
- RTC (DS1307) - 10 $ - Ger tid
- 12V nätaggregat - 5 $ - driver allt
- Mini Breadboard - För extra ledningsutrymme
- Jumper Wires - Ansluter allt
- Kvinna till hankablar - Ansluter allt
Hårdvara:
- 3D -filament - för 3D -skrivare
- 2 M4 -bultar - Håll bottenplattan på plats
- 4 Nema 17 bultar - Håll nema nere
- PVC T 48 mm innermått 66 mm yttermått - 3 $
Verktyg:
- 3d skrivare
- Borra
- Lödpistol
Steg 1: Översikt över design
Husdjursmatarens design är mycket enkel. En behållare går upp på toppen av PVC T. Sedan går ett lock på baksidan av PVC T (som visas på bilden) med Nema 17 fäst vid den. Därefter kommer Nema 17 att skjutas in på baksidan av skruven som kan ses ovan och en bult går in i sidan för att hålla den på plats så att den inte deformerar hålet som kan ses ovan!
Då trycker matarskruven helt enkelt ut maten ur röret och ner i en skål!
Steg 2: Översikt över koden
RTC & Stepper har en libary som heter RTClib.h och Stepper.h som lägger till förenklad kod för RTC & Stepper. If -uttalandena är mycket enkla, det sägs att om timmen och minuterna är lika med den nämnda tiden kommer det att rotera nema som kommer att avge maten. Resten av koden är mycket lätt att förstå även för någon med en dag med erfarenhet.
Steg 3: Fäst Nema 17 på basplattan och skruven
Först vill du ta din bottenplatta och fästa den på din Nema 17 med hjälp av de förgjorda hålen på bottenplattan. När du har gjort det vill du fästa skruven på Nema med hjälp av det bakre hålet på den. Anslut sedan bottenplattan med skruven och Nema fäst och skruva sedan fast M2 -bultarna i varje sida.
Steg 4: Anslutning L298N & RTC
Detta steg kommer att berätta hur du kopplar L298N & RTC
Vi börjar med stiften 8, 9, 10, 11 till L298N
- Stift 8 (vit) till IN1
- Stift 9 (lila) till IN2
- Stift 10 (rosa) till IN3
- PIN 11 (gul) till IN4
Därefter kommer vi att ansluta Nema 17 till L298N
- OUT1 till 1 på NEMA
- OUT2 till 2 på NEMA
- OUT3 till 3 på NEMA
- OUT4 till 4 på NEMA
Ansluter 12v och Arduino till L298N (kunde inte hitta 12V, så föreställ dig 9V batteri som ström)
- Spänning till 12V
- Mark till GND
- 5V till 5V på brödbräda
Ansluter RTC till Arduino
- GND till GND
- 5V till 5V på brödbräda
- SDA till A5
- SCL till A4
Bygelnålar
Alla bygelnålar ska vara på L298N
Steg 5: Kodning med kommentarer
Koden tydligare i bilderna ovan
// Namn: Parker Frederick
// Projektnamn: Auto Pet Feeder // Datum: Tisdagen den 10 november 2020 // Lärare: M. Bonisteel // Desc: Mata dina husdjur vid nämnda tidpunkt!
// Libaries för de saker jag använde #include #include #include "RTClib.h"
RTC_DS1307 rtc; // Säger vad RTC im använder
// Här ställer du in tiden för maten
// Timmar int mornFeedTime = 12; int nightFeedTime = 7; // Minuter int mornFeedTimeM = 29; int nightFeedTimeM = 00; // Sekunder int mornFeedTimeS = 20; int nightFeedTimeS = 00;
char daysOfTheWeek [7] [12] = {"söndag", "måndag", "tisdag", "onsdag", "torsdag", "fredag", "lördag"}; // Gör att normala dagar blir till veckodagar
const int feed = 200; // Detta är dina steg så hur många gånger du vill att det ska snurra
Stepper myStepper (feed, 8, 9, 10, 11); // Dina stift för Nema 17 och de flesta andra stepparna
void setup () {Serial.begin (9600);
medan (! Seriell); // Om RTC inte fungerar kommer den att visa den på seriebilden om (! Rtc.begin ()) {Serial.println ("Det gick inte att hitta RTC"); medan (1); }
// Detta kommer att berätta om Real Time Clock körs eller inte och den kommer att visa den på seriebilden om (! Rtc.isrunning ()) {Serial.println ("RTC körs!");
rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_))); // Detta kommer att ta din dator tid och använda den på RTC
// Om du vill ha en viss tid istället för datortiden kan du göra det här //rtc.adjust(DateTime(2020, 10, 29, 8, 28, 0)); // År/månad/dag/timme/minut/sekund} myStepper.setSpeed (200); // Hastighet du vill att den ska slå på}
void loop () {DateTime nu = rtc.now ();
// Detta kommer att göra dessa variabler till den timme det är just nu etc int hr = now.hour (); int mi = nu.minut (); int se = nu.sekund ();
// Kod så att vid den inställda tiden kommer maten att delas ut och den snurrar 5 gånger, detta om det gäller morgonmatningen
if (hr == mornFeedTime && mi == mornFeedTimeM && mornFeedTimeS == se) {Serial.println ("Frukost!"); myStepper.step (-feed); fördröjning (700);
myStepper.step (-feed); fördröjning (700);
myStepper.step (-feed); fördröjning (700);
myStepper.step (-feed); fördröjning (700);
myStepper.step (-feed); fördröjning (700);
myStepper.step (-feed); fördröjning (700);
myStepper.step (-feed); fördröjning (700);
}
// Kod så vid den inställda tiden kommer det att mata ut maten och den snurrar 5 gånger, detta är för nattmat
if (hr == nightFeedTime && mi == nightFeedTimeM && nightFeedTimeS == se) {Serial.println ("Middag!"); myStepper.step (-feed); fördröjning (700);
myStepper.step (-feed); fördröjning (700);
myStepper.step (-feed); fördröjning (700);
myStepper.step (-feed); fördröjning (700);
myStepper.step (-feed); fördröjning (700);
myStepper.step (-feed); fördröjning (700);
myStepper.step (-feed); fördröjning (700); }
// Detta visar YEAR, MONTH, DAY, HOUR, MINUTE, SECOND i serien
Serial.print (nu.år (), DEC); Serial.print ('/'); Serial.print (nu. Månad (), DEC); Serial.print ('/'); Serial.print (nu. Dag (), DEC); Serial.print ("("); Serial.print (daysOfTheWeek [nu.dayOfTheWeek ()]); Serial.print (")"); Serial.print (nu. Timme (), DEC); Serial.print (':'); Serial.print (nu. Minut (), DEC); Serial.print (':'); Serial.print (nu. Sekund (), DEC); Serial.println (); }
Webbplats jag använde för RTC Jag raderade det mesta annat än if -uttalanden som säger om RTC är på eller av. Jag använde främst denna webbplats för att lära mig hur man programmerar RTC
Webbplats som jag använde för Stepper motor detta hjälpte mig att förstå hur man programmerar steget för att köra. Jag höll egentligen inget från det. Det hjälpte mig bara att förstå hur man kodar det
Steg 6: Problem och hur jag fixade dem
Några problem jag hade
- Jag behövde 12v strömförsörjning, jag hade bara 9v batteri jag hittade ett och det löste sig snabbt.
- När jag anslöt L298N till NEMA 17 hade jag fel ledningar på A och A- vilket gjorde att det skakade lite. Jag fixade det helt enkelt genom att byta trådarna åt andra hållet.
- Försökte göra koden enklare eftersom i if-satsen myStepper.step (-feed); om och om igen såg rörigt ut. Så jag var tvungen att byta tillbaka den.
- Jag hade fel storlek basplatta som ses på bilden så jag var tvungen att 3D -skriva ut en ny lite och det passade perfekt!
- Problemet jag har är att det fastnar eftersom skruven är för liten så att det fastnar på ett enkelt sätt jag kan åtgärda genom att förstora skruven en liten mängd!
Rekommenderad:
Automatisk handdesinfektion: 8 steg
Automatisk handdesinfektion: COVID-19-pandemin har blivit något som allmänheten har hört mycket ofta under 2020. Varje medborgare som hör ordet "COVID-19" kommer omedelbart att tänka på ordet "Farligt", "Dödligt", "Håll rent”Och andra ord. Denna COVID-19 har också
DIY automatisk handdesinfektionsdispenser: 6 steg
DIY automatisk handdesinfektionsdispenser: I detta projekt kommer vi att bygga en automatisk handdesinfektionsdispenser. Detta projekt kommer att använda Arduino, ultraljudssensor, vattenpump och handsprit. En ultraljudssensor används för att kontrollera närvaron av händer under utloppet på desinfektionsmaskinen.
Automatisk hundmatare !!: 4 steg
Automatisk hundmatare !!: Lätt, hjälpsam och hälsosam
Alexa kontrollerad hundmatare: 6 steg (med bilder)
Alexa Controlled Dog Feeder: Detta är vår hund Bailey. Hon är en del av Border Collie och Australian Cattle Dog så ibland är hon smartare än sitt eget bästa, särskilt när det gäller att berätta tid och veta när hon ska äta middag. Vanligtvis försöker vi mata henne vid 18 -tiden
Automatisk hundmatare: 5 steg
Automatisk hundmatare: Detta är en steg -för -steg -handledning om hur du gör en automatisk hundmatare med Arduino.Detta är perfekt om du är hemma under större delen av dagen. Istället för att din hund måste vänta hela dagen på mat, eller att du ska komma hem för att mata den, den här enheten