Tartalomjegyzék:

Automatikus kutyaadagoló: 6 lépés
Automatikus kutyaadagoló: 6 lépés

Videó: Automatikus kutyaadagoló: 6 lépés

Videó: Automatikus kutyaadagoló: 6 lépés
Videó: 10 LENYŰGÖZŐ DOLOG ✔ Amit NEM TUDTÁL a Saját Testedről! [LEGJOBB] 2024, November
Anonim
Auto kutya etető
Auto kutya etető

Ez a projektem egy Auto Pet Feederről. A nevem Parker, a 11. osztályban vagyok, és ezt a projektet 2020. november 11 -én készítettem CCA (tanfolyam -csúcstevékenység) formájában ebben a projektben, megmutatom, hogyan készítsünk automatikus házi etetőt Arduino UNO -val. Kiválaszthat egy időpontot, amelyen változtathat. Az étel egy csiga segítségével adagolódik, és megeteti kedvenceit!

Kellékek

Elektronika:

  • Arduino UNO
  • L298N - 10 $ - A Nema 17 vezérlése
  • NEMA 17 - 10 $ - Elforgatja a csigat, hogy az étel kifolyjon
  • RTC (DS1307) - 10 $ - Megadja az időt
  • 12 V -os tápegység - 5 dollár - mindenre képes
  • Mini kenyértábla - extra huzalozási helyhez
  • Jumper vezetékek - mindent összeköt
  • Nő -férfi vezetékek - mindent összeköt

Hardver:

  • 3D nyomtatási szál - 3D nyomtatóhoz
  • 2 M4 csavar - Tartsa a helyén az alaplemezt
  • 4 Nema 17 csavar - Tartsa lenyomva a nemát
  • PVC T 48 mm belső méret 66 mm külső méret - 3 $

Eszközök:

  • 3d nyomtató
  • Fúró
  • Forrasztópisztoly

1. lépés: A tervezés áttekintése

A tervezés áttekintése
A tervezés áttekintése
A tervezés áttekintése
A tervezés áttekintése
A Design áttekintése
A Design áttekintése
A Design áttekintése
A Design áttekintése

Az állateledel kialakítása nagyon egyszerű. Egy garat felmegy a PVC T tetejére. Ezután fedél kerül a PVC T hátoldalára (amint az a képen is látható), és a Nema 17 van hozzáerősítve. Ezután a Nema 17 -et a csiga hátuljába tolják, ami fent látható, és egy csavar kerül az oldalába, hogy a helyén tartsa, hogy ne deformálja a fent látható lyukat!

Ezután a csiga egyszerűen kinyomja az ételt a csőből és egy tálba!

2. lépés: A kód áttekintése

A kód áttekintése
A kód áttekintése
A kód áttekintése
A kód áttekintése
A kód áttekintése
A kód áttekintése

Az RTC & The stepper rendelkezik egy RTClib.h és Stepper.h nevű könyvtárral, amely egyszerűsített kódot ad hozzá az RTC & Stepperhez. Ha az állítások nagyon egyszerűek, akkor azt mondja, hogy ha az óra és a perc megegyezik az említett idővel, akkor elforgatja a nemát, amely kiadja az ételt. A kód többi része nagyon könnyen érthető még azok számára is, akik egynapos tapasztalattal rendelkeznek.

3. lépés: A Nema 17 csatlakoztatása az alaplemezhez és a csigacsigához

A Nema 17 rögzítése az alaplemezhez és a csigához
A Nema 17 rögzítése az alaplemezhez és a csigához
A Nema 17 rögzítése az alaplemezhez és a csigához
A Nema 17 rögzítése az alaplemezhez és a csigához
A Nema 17 rögzítése az alaplemezhez és a csigához
A Nema 17 rögzítése az alaplemezhez és a csigához

Először el kell vennie az alaplemezt, és rögzítenie kell a Nema 17 készülékhez az alaplapon lévő előre elkészített lyukak segítségével. Ha elkészült, a hátsó lyuk segítségével a csigat a Nema -hoz kívánja rögzíteni. Ezután csatlakoztassa az alaplemezt a csigával és a rögzített Nema -val, majd csavarja be mindkét oldalra az M2 csavarokat.

4. lépés: Az L298N és RTC bekötése

L298N és RTC kábelezés
L298N és RTC kábelezés
L298N és RTC kábelezés
L298N és RTC kábelezés

Ez a lépés megmutatja, hogyan kell bekötni az L298N & RTC -t

Kezdjük az L298N 8, 9, 10, 11 csapjaival

  • 8. tű (fehér) - IN1
  • 9. tű (lila) - IN2
  • 10. tű (rózsaszín) - IN3
  • PIN 11 (sárga) - IN4

Ezután a Nema 17 -et csatlakoztatjuk az L298N -hez

  • OUT1 - 1 a NEMA -n
  • OUT2 - 2 a NEMA -n
  • OUT3 - 3 a NEMA -n
  • OUT4 - 4 a NEMA -n

12V és Arduino csatlakoztatása az L298N -hez (12V -ot nem sikerült találni, ezért képzelje el a 9V -os akkumulátort tápellátásként)

  • Volt 12V -ig
  • Földelés a GND -hez
  • 5–5 V a kenyértáblán

RTC csatlakoztatása Arduino -hoz

  • GND - GND
  • 5V -5V a kenyértáblán
  • SDA - A5
  • SCL - A4

Jumper Pins

Az összes jumper csapnak állítólag az L298N -en kell lennie

5. lépés: Kódolás megjegyzésekkel

Kódolás megjegyzésekkel
Kódolás megjegyzésekkel
Kódolás megjegyzésekkel
Kódolás megjegyzésekkel
Kódolás megjegyzésekkel
Kódolás megjegyzésekkel

A fenti képeken világosabb a kód

// Név: Parker Frederick

// A projekt neve: Auto Pet Feeder // Dátum: 2020. november 10., kedd // Tanár: M. Bonisteel // Leírás: Etesd kedvenceidet egy megadott időpontban!

// Libáriusok az általam használt dolgokhoz #include #include #include "RTClib.h"

RTC_DS1307 rtc; // Azt mondja, hogy mit használ az RTC

// Itt állíthatja be az étel idejét

// Óra int mornFeedTime = 12; int nightFeedTime = 7; // Percek int mornFeedTimeM = 29; int nightFeedTimeM = 00; // Másodpercek int mornFeedTimeS = 20; int nightFeedTimeS = 00;

char daysOfTheWeek [7] [12] = {"vasárnap", "hétfő", "kedd", "szerda", "csütörtök", "péntek", "szombat"}; // A hétköznapokká változtatja a normál napokat

const int feed = 200; // Ez az Ön lépése, tehát hányszor szeretné megpörgetni

Stepper myStepper (feed, 8, 9, 10, 11); // A csapok a Nema 17 -hez és a legtöbb más léptetőhöz

void setup () {Serial.begin (9600);

while (! Sorozat); // Ha az RTC nem működik, akkor megjeleníti a soros képernyőn, ha (! Rtc.begin ()) {Serial.println ("Nem sikerült megtalálni az RTC -t"); míg (1); }

// Ez megmondja, hogy a Valós idejű óra fut -e vagy sem, és megjeleníti a soros képernyőn, ha (! Rtc.isrunning ()) {Serial.println ("RTC fut!");

rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_))); // Ez időt vesz igénybe a számítógépen, és használja az RTC -n

// Ha egy meghatározott időt szeretne beállítani a számítógép ideje helyett, akkor itt megteheti //rtc.adjust(DateTime(2020, 10, 29, 8, 28, 0)); // Év/Hónap/Nap/Óra/perc/másodperc} myStepper.setSpeed (200); // A kívánt sebesség

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

// Ettől a változótól az aktuális órát választjuk stb int hr = now.hour (); int mi = most.perc (); int se = most.second ();

// Kódolja, így a beállított időpontban kiadja az ételt, és ötször forog, ezt a reggeli etetéshez

if (hr == mornFeedTime && mi == mornFeedTimeM && mornFeedTimeS == se) {Serial.println ("Reggeli!"); myStepper.step (-feed); késleltetés (700);

myStepper.step (-feed); késleltetés (700);

myStepper.step (-feed); késleltetés (700);

myStepper.step (-feed); késleltetés (700);

myStepper.step (-feed); késleltetés (700);

myStepper.step (-feed); késleltetés (700);

myStepper.step (-feed); késleltetés (700);

}

// Kódolja, így a beállított időben kiadja az ételt, és ötször forog, ez az éjszakai takarmány

if (hr == nightFeedTime && mi == nightFeedTimeM && nightFeedTimeS == se) {Serial.println ("Vacsora!"); myStepper.step (-feed); késleltetés (700);

myStepper.step (-feed); késleltetés (700);

myStepper.step (-feed); késleltetés (700);

myStepper.step (-feed); késleltetés (700);

myStepper.step (-feed); késleltetés (700);

myStepper.step (-feed); késleltetés (700);

myStepper.step (-feed); késleltetés (700); }

// Ez megjeleníti az YEAR, MONTH, DAY, HOUR, MINUTE, SECOND sorozatokat

Sorozatnyomat (most.év (), DEC); Serial.print ('/'); Serial.print (most.hónap (), DEC); Serial.print ('/'); Sorozatnyomat (most.nap (), DEC); Serial.print ("("); Serial.print (daysOfTheWeek [now.dayOfTheWeek ()]); Serial.print (")"); Soros.nyomtatás (now.hour (), DEC); Serial.print (':'); Soros.nyomtatás (most.perc (), DEC); Serial.print (':'); Serial.print (most.second (), DEC); Sorozat.println (); }

Az RTC -hez használt webhely A legtöbb dolgot töröltem, kivéve az if utasításokat, amelyek azt mondják, hogy az RTC be vagy ki van -e kapcsolva. Főleg ezt a weboldalt használtam az RTC programozásának megtanulására

A Stepper motorhoz használt webhely ez segített megérteni, hogyan kell programozni a léptetőt futásra, igazából semmit sem tartottam tőle. Csak segített megérteni, hogyan kell kódolni

6. lépés: Problémák és hogyan javítottam ki őket

Problémák és hogyan javítottam ki őket!
Problémák és hogyan javítottam ki őket!

Néhány problémám volt

  • Szükségem volt 12V -os tápegységre, csak 9V -os elem volt, egyet találtam, és gyorsan megoldódott.
  • Amikor csatlakoztatom az L298N-t a NEMA 17-hez, rosszul voltak a vezetékek az A-n és az A-n, ami kissé remegni kezdett. Egyszerűen kijavítottam a vezetékek másik irányú cseréjével.
  • Megpróbálta egyszerűbbé tenni a kódot, mert az if utasításban a myStepper.step (-feed); újra és újra rendetlennek tűnt. Tehát vissza kellett cserélnem.
  • A képen látható rossz méretű alaplemezem volt, így egy kicsit 3D -t kellett nyomtatnom, és tökéletesen illeszkedik!
  • A problémám az, hogy elakad, mivel a csiga túl kicsi, így elakad. A javítás egyszerű módja a csigának egy kis megnövelése!

Ajánlott: