Obsah:

Auto Dog Feeder: 6 kroků
Auto Dog Feeder: 6 kroků

Video: Auto Dog Feeder: 6 kroků

Video: Auto Dog Feeder: 6 kroků
Video: Trying this trend at 37 weeks pregnant #shorts 2024, Červenec
Anonim
Auto krmítko pro psy
Auto krmítko pro psy

Toto je můj projekt automatického krmítka pro domácí zvířata. Jmenuji se Parker, jsem ve třídě 11 a tento projekt jsem vytvořil 11. listopadu 2020 jako CCA (Course Culminating Activity). V tomto projektu vám ukážu, jak vytvořit automatický podavač zvířat s Arduino UNO. Můžete si vybrat čas, který můžete změnit. Jídlo se bude dávkovat pomocí šneku a bude krmit vaše domácí mazlíčky!

Zásoby

Elektronika:

  • Arduino UNO
  • L298N - 10 $ - Ovládá Nema 17
  • NEMA 17 - 10 $ - Otočí šnek tak, aby jídlo vydávalo
  • RTC (DS1307) - 10 $ - Udává čas
  • Napájení 12V - 5 $ - Napájí vše
  • Mini Breadboard - Pro větší prostor pro zapojení
  • Propojovací vodiče - spojuje vše
  • Ženské a mužské vodiče - spojuje vše

Hardware:

  • Vlákno pro 3D tisk - pro 3D tiskárnu
  • 2 šrouby M4 - přidržte základní desku na místě
  • 4 šrouby Nema 17 - Držte Nema dolů
  • PVC T 48 mm vnitřní rozměr 66 mm vnější rozměr - 3 $

Nástroje:

  • 3D tiskárna
  • Vrtat
  • Pájecí pistole

Krok 1: Přehled designu

Přehled designu
Přehled designu
Přehled designu
Přehled designu
Přehled designu
Přehled designu
Přehled designu
Přehled designu

Konstrukce krmítka je velmi jednoduchá. Na horní část PVC T se dostane násypka. Poté se na zadní stranu PVC T (jak je znázorněno na obrázku) přikryje kryt, k němuž je připevněn Nema 17. Poté bude Nema 17 zasunuta do zadní části šneku, která je vidět výše, a do strany půjde šroub, který ji udrží na místě, aby nedeformoval otvor, který je vidět výše!

Pak šnek jednoduše vytlačí jídlo z dýmky do mísy!

Krok 2: Přehled kódu

Přehled kódu
Přehled kódu
Přehled kódu
Přehled kódu
Přehled kódu
Přehled kódu

RTC & The stepper have a libary called RTClib.h and Stepper.h which adds simplified code for the RTC & Stepper. Příkazy if jsou velmi jednoduché a říkají, že pokud se hodina a minuty rovná uvedenému času, otočí nema, který vydá jídlo. Zbytek kódu je velmi snadno pochopitelný i pro někoho, kdo má den zkušeností.

Krok 3: Připevnění Nema 17 k základní desce a šneku

Připevnění Nema 17 k základní desce a šneku
Připevnění Nema 17 k základní desce a šneku
Připevnění Nema 17 k základní desce a šneku
Připevnění Nema 17 k základní desce a šneku
Připevnění Nema 17 k základní desce a šneku
Připevnění Nema 17 k základní desce a šneku

Nejprve si musíte vzít základní desku a pomocí předem připravených otvorů na základní desce ji připevnit k Nema 17. Až budete hotovi, chcete připevnit šnek k Nemovi pomocí zadního otvoru. Poté spojte základní desku s připojeným šnekem a Nemou a poté zašroubujte šrouby M2 na každou stranu.

Krok 4: Zapojení L298N a RTC

Zapojení L298N & RTC
Zapojení L298N & RTC
Zapojení L298N & RTC
Zapojení L298N & RTC

Tento krok vám řekne, jak zapojit L298N & RTC

Začneme piny 8, 9, 10, 11 až L298N

  • Kolík 8 (bílý) na IN1
  • Kolík 9 (fialový) na IN2
  • Kolík 10 (růžový) na IN3
  • PIN 11 (žlutý) na IN4

Dále budeme připojovat Nema 17 k L298N

  • OUT1 až 1 na NEMA
  • OUT2 až 2 na NEMA
  • OUT3 až 3 na NEMA
  • OUT4 až 4 na NEMA

Připojení 12v a Arduina k L298N (Nelze najít 12V, takže si představte 9V baterii jako napájení)

  • Voltů na 12V
  • Zem k GND
  • 5V až 5V na prkénku

Připojení RTC k Arduinu

  • GND až GND
  • 5V až 5V na prkénku
  • SDA až A5
  • SCL na A4

Propojovací kolíky

Všechny propojovací kolíky mají být na L298N

Krok 5: Kódování pomocí komentářů

Kódování s komentáři
Kódování s komentáři
Kódování s komentáři
Kódování s komentáři
Kódování s komentáři
Kódování s komentáři

Na obrázcích výše je kód jasnější

// Jméno: Parker Frederick

// Název projektu: Auto Pet Feeder // Datum: Úterý, 10. listopadu 2020 // Učitel: M. Bonisteel // Popis: Nakrmte své mazlíčky v uvedenou dobu!

// Knihovny pro věci, které jsem použil #include #include #include "RTClib.h"

RTC_DS1307 rtc; // Říká, co používám RTC

// Zde nastavíte čas na jídlo

// Hodiny int mornFeedTime = 12; int nightFeedTime = 7; // Minuty int mornFeedTimeM = 29; int nightFeedTimeM = 00; // Sekundy int mornFeedTimeS = 20; int nightFeedTimeS = 00;

char daysOfTheWeek [7] [12] = {"neděle", "pondělí", "úterý", "středa", "čtvrtek", "pátek", "sobota"}; // Přemění normální dny na dny v týdnu

konstantní krmivo = 200; // Toto jsou vaše kroky, kolikrát chcete, aby se točilo

Stepper myStepper (feed, 8, 9, 10, 11); // Vaše kolíky pro Nema 17 a většinu ostatních stepperů

neplatné nastavení () {Serial.begin (9600);

while (! Serial); // Pokud RTC nefunguje, zobrazí se na sériové obrazovce, pokud (! Rtc.begin ()) {Serial.println ("Nelze najít RTC"); zatímco (1); }

// To vám řekne, zda jsou spuštěny hodiny reálného času, a zobrazí je na obrazovce se sériovým číslem, pokud (! Rtc.isrunning ()) {Serial.println ("RTC běží!");

rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_)))); // Bude to trvat čas vašeho počítače a použít jej na RTC

// Pokud chcete mít místo času počítače nastavený čas, můžete to udělat zde //rtc.adjust(DateTime(2020, 10, 29, 8, 28, 0)); // Rok/Měsíc/Den/Hodina/Minuta/Sekunda} myStepper.setSpeed (200); // Rychlost, jakou se má otáčet}

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

// Tím se z těchto proměnných stane hodina, která je právě teď atd. Int hr = now.hour (); int mi = now.minute (); int se = now.second ();

// Kódujte tak v nastavený čas, že vydá jídlo a otočí se 5krát, pokud jde o ranní krmení

if (hr == mornFeedTime && mi == mornFeedTimeM && mornFeedTimeS == se) {Serial.println ("Snídaně!"); myStepper.step (-feed); zpoždění (700);

myStepper.step (-feed); zpoždění (700);

myStepper.step (-feed); zpoždění (700);

myStepper.step (-feed); zpoždění (700);

myStepper.step (-feed); zpoždění (700);

myStepper.step (-feed); zpoždění (700);

myStepper.step (-feed); zpoždění (700);

}

// Kódujte, takže v nastavený čas vydá jídlo a otočí se 5krát, to je pro noční krmení

if (hr == nightFeedTime && mi == nightFeedTimeM && nightFeedTimeS == se) {Serial.println ("Večeře!"); myStepper.step (-feed); zpoždění (700);

myStepper.step (-feed); zpoždění (700);

myStepper.step (-feed); zpoždění (700);

myStepper.step (-feed); zpoždění (700);

myStepper.step (-feed); zpoždění (700);

myStepper.step (-feed); zpoždění (700);

myStepper.step (-feed); zpoždění (700); }

// Tím se v seriálu zobrazí ROK, MĚSÍC, DEN, HODINA, MINUTA, SECOND

Serial.print (now.year (), DEC); Serial.print ('/'); Serial.print (now.month (), DEC); Serial.print ('/'); Serial.print (now.day (), DEC); Serial.print ("("); Serial.print (daysOfTheWeek [now.dayOfTheWeek ()]); Serial.print (")"); Serial.print (now.hour (), DEC); Serial.print (':'); Serial.print (now.minute (), DEC); Serial.print (':'); Serial.print (now.second (), DEC); Serial.println (); }

Web, který jsem použil pro RTC Smazal jsem většinu věcí kromě prohlášení if, která říkají, zda je nebo není RTC zapnutý nebo vypnutý. Tento web jsem používal hlavně k tomu, abych se naučil programovat RTC

Web, který jsem použil pro krokový motor, mi pomohl porozumět tomu, jak naprogramovat stepper tak, abych z něj nic nedržel. Pomohlo mi to pochopit, jak to kódovat

Krok 6: Problémy a jak jsem je opravil

Problémy a jak jsem je opravil!
Problémy a jak jsem je opravil!

Měl jsem několik problémů

  • Potřeboval jsem 12v napájecí zdroj, měl jsem jen 9v baterii, našel jsem jeden a bylo to rychle vyřešeno.
  • Když jsem připojil L298N s NEMA 17, měl jsem špatné vodiče na A a A-, takže to trochu chvělo. Jednoduše jsem to opravil změnou vodičů jiným způsobem.
  • Pokusil se zjednodušit kód, protože v příkazu if myStepper.step (-feed); znovu a znovu vypadal špinavě. Tak jsem to musel změnit zpět.
  • Měl jsem špatnou velikost základní desky, jak je vidět na obrázku, takže jsem musel 3D tisknout trochu nový a perfektně seděl!
  • Problém, který mám, je, že se zasekává, protože šnek je malý, takže se zasekává jednoduchým způsobem, který mohu opravit, je zvětšení šneku o malé množství!

Doporučuje: