Innehållsförteckning:

Automatisk hundmatare: 6 steg
Automatisk hundmatare: 6 steg

Video: Automatisk hundmatare: 6 steg

Video: Automatisk hundmatare: 6 steg
Video: Автоматическая кормушка для кошек и собак. Автокормушка Automatic Pet Feeder 4PLDH5001 с таймером. 2024, Juli
Anonim
Auto hundmatare
Auto hundmatare

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

Översikt över design
Översikt över design
Översikt över design
Översikt över design
Översikt över design
Översikt över design
Översikt över design
Ö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

Översikt över koden
Översikt över koden
Översikt över koden
Översikt över koden
Översikt över koden
Ö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äst Nema 17 på bottenplatta och skruv
Fäst Nema 17 på bottenplatta och skruv
Fäst Nema 17 på bottenplatta och skruv
Fäst Nema 17 på bottenplatta och skruv
Fäst Nema 17 på bottenplatta och skruv
Fäst Nema 17 på bottenplatta och skruv

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

Kabeldragning L298N & RTC
Kabeldragning L298N & RTC
Kabeldragning L298N & RTC
Kabeldragning 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

Kodning med kommentarer
Kodning med kommentarer
Kodning med kommentarer
Kodning med kommentarer
Kodning med kommentarer
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

Problem och hur jag fixade dem!
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: