Innholdsfortegnelse:

Automatisk hundemater: 6 trinn
Automatisk hundemater: 6 trinn

Video: Automatisk hundemater: 6 trinn

Video: Automatisk hundemater: 6 trinn
Video: Автокормушка Feed-Ex PF6 Blue/The automatic feeder Feed-Ex PF6 Blue 2024, Juli
Anonim
Auto hundefôr
Auto hundefôr

Dette er mitt prosjekt med en Auto Pet Feeder. Mitt navn er Parker, jeg går i klasse 11, og jeg laget dette prosjektet 11. november 2020 som en CCA (Course Culminating Activity) i dette prosjektet. Jeg skal vise deg hvordan du lager en automatisk kjæledyrsmater med Arduino UNO. Du kan velge et tidspunkt du kan endre. Maten kommer ut gjennom en snegl og mater kjæledyrene dine!

Rekvisita

Elektronikk:

  • Arduino UNO
  • L298N - 10 $ - Kontrollerer Nema 17
  • NEMA 17 - 10 $ - Snu skruen slik at maten går ut
  • RTC (DS1307) - 10 $ - Gir tiden
  • 12V strømforsyning - 5 $ - driver alt
  • Mini Breadboard - For ekstra ledningsplass
  • Jumper Wires - Kobler til alt
  • Kvinne til hann ledninger - Kobler alt

Maskinvare:

  • 3D -filament - for 3D -skriver
  • 2 M4 bolter - Hold bunnplaten på plass
  • 4 Nema 17 bolter - Hold nema nede
  • PVC T 48mm innvendig dimensjon 66mm utvendig dimensjon - 3 $

Verktøy:

  • 3D -skriver
  • Bore
  • Loddepistol

Trinn 1: Oversikt over design

Oversikt over design
Oversikt over design
Oversikt over design
Oversikt over design
Oversikt over design
Oversikt over design
Oversikt over design
Oversikt over design

Utformingen av kjæledyrsmateren er veldig enkel. En beholder går på toppen av PVC T. Deretter går et deksel på baksiden av PVC T (som vist på bildet) med Nema 17 festet til den. Deretter vil Nema 17 skyves inn på baksiden av sneglen som kan sees over, og en bolt vil gå inn i siden for å holde den på plass slik at den ikke deformerer hullet som kan sees ovenfor!

Da vil skruen ganske enkelt skyve maten ut av røret og inn i en bolle!

Trinn 2: Oversikt over kode

Oversikt over kode
Oversikt over kode
Oversikt over kode
Oversikt over kode
Oversikt over kode
Oversikt over kode

RTC & Stepper har en libary kalt RTClib.h og Stepper.h som legger til forenklet kode for RTC & Stepper. Hvis if -utsagnene er veldig enkle, er det sagt at hvis timen og minuttene er lik den nevnte tiden, vil den rotere nema som vil levere maten. Resten av koden er veldig lett å forstå selv for noen med en dag med erfaring.

Trinn 3: Fest Nema 17 til bunnplaten og sneglen

Fest Nema 17 til bunnplaten og sneglen
Fest Nema 17 til bunnplaten og sneglen
Fest Nema 17 til bunnplaten og sneglen
Fest Nema 17 til bunnplaten og sneglen
Fest Nema 17 til bunnplaten og sneglen
Fest Nema 17 til bunnplaten og sneglen

Først vil du ta bunnplaten og feste den til Nema 17 ved hjelp av de forhåndsdefinerte hullene på bunnplaten. Når du er ferdig med det, vil du feste skruen til Nema ved å bruke bakhullet på den. Koble deretter bunnplaten med skruen og Nema festet, og skru deretter M2 -boltene i hver side.

Trinn 4: Kabling av L298N & RTC

Kabling L298N & RTC
Kabling L298N & RTC
Kabling L298N & RTC
Kabling L298N & RTC

Dette trinnet vil fortelle deg hvordan du kobler L298N & RTC

Vi starter med pinnene 8, 9, 10, 11 til L298N

  • Pin 8 (hvit) til IN1
  • Pin 9 (lilla) til IN2
  • Pin 10 (rosa) til IN3
  • PIN 11 (gul) til IN4

Deretter kobler vi Nema 17 til L298N

  • OUT1 til 1 på NEMA
  • OUT2 til 2 på NEMA
  • OUT3 til 3 på NEMA
  • OUT4 til 4 på NEMA

Koble 12v og Arduino til L298N (fant ikke 12V, så tenk 9V batteri som strøm)

  • Volt til 12V
  • Bakken til GND
  • 5V til 5V på brødbrett

Koble RTC til Arduino

  • GND til GND
  • 5V til 5V på brødbrett
  • SDA til A5
  • SCL til A4

Jumper Pins

Alle jumperpinner skal være på L298N

Trinn 5: Koding med kommentarer

Koding med kommentarer
Koding med kommentarer
Koding med kommentarer
Koding med kommentarer
Koding med kommentarer
Koding med kommentarer

Koden klarere i bildene ovenfor

// Navn: Parker Frederick

// Prosjektnavn: Auto Pet Feeder // Dato: Tirsdag 10. november 2020 // Lærer: M. Bonisteel // Desc: Gi kjæledyrene dine et bestemt tidspunkt!

// Libaries for tingene jeg brukte #include #include #include "RTClib.h"

RTC_DS1307 rtc; // Sier hva RTC bruker

// Det er her du angir tiden for maten

// 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"}; // Gjør normale dager til å bli til ukedager

const int feed = 200; // Dette er trinnene dine, så hvor mange ganger du vil at den skal snurre

Stepper myStepper (feed, 8, 9, 10, 11); // Pinene dine for Nema 17 og de fleste andre stepper

ugyldig oppsett () {Serial.begin (9600);

mens (! Seriell); // Hvis RTC ikke fungerer, vil den vise den i serieskjermen hvis (! Rtc.begin ()) {Serial.println ("Kunne ikke finne RTC"); mens (1); }

// Dette vil fortelle deg om sanntidsklokken kjører eller ikke, og den vil vise den på serieskjermen hvis (! Rtc.isrunning ()) {Serial.println ("RTC kjører!");

rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_))); // Dette vil ta datamaskinen din tid og bruke den på RTC

// Hvis du vil ha en angitt tid i stedet for datatiden, kan du gjøre det her //rtc.adjust(DateTime(2020, 10, 29, 8, 28, 0)); // År/måned/dag/time/minutt/sekund} myStepper.setSpeed (200); // Hastigheten du vil at den skal slå på}

void loop () {DateTime now = rtc.now ();

// Dette vil gjøre disse variablene til timen det er akkurat nå etc int hr = now.hour (); int mi = nå. minutt (); int se = now.second ();

// Kode slik at det på det angitte tidspunktet vil levere maten og den vil snurre 5 ganger, dette hvis det er for morgenmat

if (hr == mornFeedTime && mi == mornFeedTimeM && mornFeedTimeS == se) {Serial.println ("Frokost!"); 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 angitte tidspunktet vil det gi maten og den vil snurre 5 ganger, dette er for nattmat

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 vil vise YEAR, MONTH, DAY, HOUR, MINUTE, SECOND i serien

Serial.print (nå.år (), DEC); Serial.print ('/'); Serial.print (nå. Måned (), DEC); Serial.print ('/'); Serial.print (nå. Dag (), DEC); Serial.print ("("); Serial.print (daysOfTheWeek [now.dayOfTheWeek ()]); Serial.print (")"); Serial.print (nå. Time (), DEC); Serial.print (':'); Serial.print (nå. Minutt (), DEC); Serial.print (':'); Serial.print (nå. Sekund (), DEC); Serial.println (); }

Nettsted jeg brukte for RTC Jeg slettet det meste annet enn if -setningene som sier om RTC er på eller av. Jeg brukte hovedsakelig dette nettstedet for å lære å programmere RTC

Nettstedet jeg brukte for Stepper motor, dette hjalp meg med å forstå hvordan jeg programmerte stepper til å kjøre. Jeg holdt egentlig ingenting fra det. Det hjalp meg bare å forstå hvordan jeg skulle kode det

Trinn 6: Problemer og hvordan jeg løste dem

Problemer og hvordan jeg løste dem!
Problemer og hvordan jeg løste dem!

Noen få problemer jeg hadde

  • Jeg trengte 12v strømforsyning, jeg hadde bare 9v batteri jeg fant et og det ble løst raskt.
  • Da jeg koblet til L298N med NEMA 17, hadde jeg feil ledninger på A og A, noe som gjorde at det ble litt rystet. Jeg fikset det rett og slett ved å bytte ledninger den andre veien.
  • Prøvde å gjøre koden mer enkel fordi i if-setningen myStepper.step (-feed); gang på gang så rotete ut. Så jeg måtte bytte den tilbake.
  • Jeg hadde feil størrelse bunnplate som sett på bildet, så jeg måtte 3D -skrive ut en ny litt, og den passet perfekt!
  • Problemet jeg har er at det er fastkjørt siden skruen er for liten, så den kan fastklemme på en enkel måte jeg kan fikse ved å forstørre sneglen en liten mengde!

Anbefalt: