INHOUDSOPGAWE:

Auto Hondevoerder: 6 stappe
Auto Hondevoerder: 6 stappe

Video: Auto Hondevoerder: 6 stappe

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

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

Oorsig van ontwerp
Oorsig van ontwerp
Oorsig van ontwerp
Oorsig van ontwerp
Oorsig van ontwerp
Oorsig van ontwerp
Oorsig van ontwerp
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

Oorsig van die kode
Oorsig van die kode
Oorsig van die kode
Oorsig van die kode
Oorsig van die kode
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

Bevestig Nema 17 aan basisplaat en skroef
Bevestig Nema 17 aan basisplaat en skroef
Bevestig Nema 17 aan basisplaat en skroef
Bevestig Nema 17 aan basisplaat en skroef
Bevestig Nema 17 aan die basisplaat en vijzel
Bevestig Nema 17 aan die basisplaat en vijzel

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

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

Kodering met kommentaar
Kodering met kommentaar
Kodering met kommentaar
Kodering met kommentaar
Kodering met kommentaar
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

Probleme en hoe ek dit reggemaak het!
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: