Cuprins:

Alimentator automat pentru câini: 6 pași
Alimentator automat pentru câini: 6 pași

Video: Alimentator automat pentru câini: 6 pași

Video: Alimentator automat pentru câini: 6 pași
Video: Instrucțiuni pentru conectarea cu Hrănitorul automat pentru câini TRIXIE TX8 & TX9 Smart 2024, Noiembrie
Anonim
Alimentator automat pentru câini
Alimentator automat pentru câini

Acesta este proiectul meu de alimentator auto pentru animale de companie. Numele meu este Parker, sunt în clasa a 11-a și am realizat acest proiect pe 11 noiembrie 2020 ca CCA (Curs Culminating Activity) în acest proiect. Vă voi arăta cum să creați un alimentator automat pentru animale de companie cu Arduino UNO. Puteți alege o oră pe care o puteți schimba. Mâncarea se va distribui printr-un melc și vă va hrăni animalele de companie!

Provizii

Electronică:

  • Arduino UNO
  • L298N - 10 $ - Controlează Nema 17
  • NEMA 17 - 10 $ - Întoarce melcul astfel încât alimentele să fie distribuite
  • RTC (DS1307) - 10 $ - Oferă timp
  • Alimentare 12V - 5 $ - Alimentează totul
  • Mini Breadboard - Pentru spațiu suplimentar de cablare
  • Jumper Wires - Conectează totul
  • Sârme între femei și bărbați - Conectează totul

Hardware:

  • Filament de imprimare 3D - pentru imprimantă 3D
  • 2 șuruburi M4 - Țineți placa de bază în poziție
  • 4 șuruburi Nema 17 - Țineți nema apăsat
  • PVC T 48mm dimensiune interioară 66mm dimensiune exterioară - 3 $

Instrumente:

  • imprimantă 3d
  • Burghiu
  • Pistol de lipit

Pasul 1: Prezentare generală a designului

Prezentare generală a designului
Prezentare generală a designului
Prezentare generală a designului
Prezentare generală a designului
Prezentare generală a designului
Prezentare generală a designului
Prezentare generală a designului
Prezentare generală a designului

Designul alimentatorului pentru animale de companie este foarte simplu. O buncăr se duce pe partea superioară a PVC-ului T. Apoi, un capac se duce pe partea din spate a PVC-ului T (așa cum se arată în imagine) cu Nema 17 atașat la acesta. Apoi Nema 17 va fi împins în partea din spate a melcului care poate fi văzut deasupra și un șurub va intra în lateral pentru a-l ține în poziție, astfel încât să nu deformeze gaura care poate fi văzută deasupra!

Atunci melcul va împinge pur și simplu mâncarea din țeavă și într-un bol!

Pasul 2: Prezentare generală a codului

Prezentare generală a codului
Prezentare generală a codului
Prezentare generală a codului
Prezentare generală a codului
Prezentare generală a codului
Prezentare generală a codului

RTC și Stepper au o bibliotecă numită RTClib.h și Stepper.h care adaugă cod simplificat pentru RTC și Stepper. Afirmațiile if sunt foarte simple spunând dacă ora și minutele sunt egale cu timpul menționat, va roti nema care va distribui mâncarea. Restul codului este foarte ușor de înțeles chiar și pentru cineva cu o zi de experiență.

Pasul 3: Atașarea Nema 17 la placa de bază și melcul

Atașarea Nema 17 la placa de bază și melcul
Atașarea Nema 17 la placa de bază și melcul
Atașarea Nema 17 la placa de bază și melcul
Atașarea Nema 17 la placa de bază și melcul
Atașarea Nema 17 la placa de bază și melcul
Atașarea Nema 17 la placa de bază și melcul

Mai întâi doriți să vă luați placa de bază și să o atașați la Nema 17 folosind găurile premade de pe placa de bază. După ce ați terminat, doriți să atașați melcul la Nema folosind gaura din spate de pe acesta. Apoi conectați placa de bază cu melcul și Nema atașate, apoi înșurubați șuruburile M2 în fiecare parte.

Pasul 4: Cablarea L298N și RTC

Cablare L298N și RTC
Cablare L298N și RTC
Cablare L298N și RTC
Cablare L298N și RTC

Acest pas vă va spune cum să conectați L298N și RTC

Vom începe cu pinii 8, 9, 10, 11 la L298N

  • Pinul 8 (alb) la IN1
  • Pinul 9 (Violet) la IN2
  • Pinul 10 (roz) la IN3
  • PIN 11 (Galben) la IN4

În continuare vom conecta Nema 17 la L298N

  • OUT1 la 1 pe NEMA
  • OUT2 la 2 pe NEMA
  • OUT3 la 3 pe NEMA
  • OUT4 la 4 pe NEMA

Conectarea 12v și Arduino la L298N (nu am putut găsi 12V, deci imaginați-vă bateria de 9V ca putere)

  • Volți la 12V
  • Pământ la GND
  • 5V la 5V pe Breadboard

Conectarea RTC la Arduino

  • GND la GND
  • 5V la 5V pe Breadboard
  • SDA la A5
  • SCL la A4

Jumper Pins

Toți știfturile jumperului ar trebui să fie pe L298N

Pasul 5: Codificare cu comentarii

Codificare cu comentarii
Codificare cu comentarii
Codificare cu comentarii
Codificare cu comentarii
Codificare cu comentarii
Codificare cu comentarii

Codul este mai clar în imaginile de mai sus

// Nume: Parker Frederick

// Numele proiectului: Alimentator auto pentru animale // Data: marți, 10 noiembrie 2020 // Profesor: M. Bonisteel // Desc: Hrăniți-vă animalele de companie la acel moment!

// Librarii pentru lucrurile pe care le-am folosit #include #include #include "RTClib.h"

RTC_DS1307 rtc; // Spune ce folosesc RTC

// Aici stabiliți ora pentru mâncare

// Ore în mornFeedTime = 12; int nightFeedTime = 7; // Minute int mornFeedTimeM = 29; int nightFeedTimeM = 00; // Secunde în mornFeedTimeS = 20; int nightFeedTimeS = 00;

char daysOfTheWeek [7] [12] = {"Sunday", "Monday", "Tuesday", "Wedsneday", "Thursday", "Friday", "Saturday"}; // Face ca zilele normale să se transforme în zilele săptămânii

const int feed = 200; // Acesta este pașii tăi, deci de câte ori vrei să se învârtă

Stepper myStepper (feed, 8, 9, 10, 11); // Știfturile dvs. pentru Nema 17 și majoritatea celorlalți steppers

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

while (! Serial); // Dacă RTC nu funcționează, îl va afișa în ecranul serial dacă (! Rtc.begin ()) {Serial.println („Nu s-a putut găsi RTC”); în timp ce (1); }

// Acest lucru vă va spune dacă ceasul în timp real rulează sau nu și îl va afișa pe ecranul serial dacă (! Rtc.isrunning ()) {Serial.println ("RTC rulează!");

rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_)))); // Acest lucru va dura timp computerului și îl va folosi pe RTC

// Dacă doriți să aveți o oră setată în loc de ora computerului, o puteți face aici //rtc.adjust(DateTime(2020, 10, 29, 8, 28, 0)); // An / lună / zi / oră / minut / secundă} myStepper.setSpeed (200); // Viteza la care vrei să se întoarcă}

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

// Aceasta va face ca aceste variabile să fie ora în care se află acum etc int hr = now.hour (); int mi = now.minute (); int se = now.second ();

// Codificați astfel încât la ora stabilită va distribui mâncarea și se va roti de 5 ori, asta dacă este pentru hrana de dimineață

if (hr == mornFeedTime && mi == mornFeedTimeM && mornFeedTimeS == se) {Serial.println ("Mic dejun!"); myStepper.step (-feed); întârziere (700);

myStepper.step (-feed); întârziere (700);

myStepper.step (-feed); întârziere (700);

myStepper.step (-feed); întârziere (700);

myStepper.step (-feed); întârziere (700);

myStepper.step (-feed); întârziere (700);

myStepper.step (-feed); întârziere (700);

}

// Codificați astfel încât la ora stabilită va distribui mâncarea și se va roti de 5 ori, aceasta este pentru hrana pe timp de noapte

if (hr == nightFeedTime && mi == nightFeedTimeM && nightFeedTimeS == se) {Serial.println ("Cina!"); myStepper.step (-feed); întârziere (700);

myStepper.step (-feed); întârziere (700);

myStepper.step (-feed); întârziere (700);

myStepper.step (-feed); întârziere (700);

myStepper.step (-feed); întârziere (700);

myStepper.step (-feed); întârziere (700);

myStepper.step (-feed); întârziere (700); }

// Aceasta va afișa ANUL, LUNA, ZIUA, ORA, MINUTUL, AL DOILEA în serial

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 (); }

Site-ul web pe care l-am folosit pentru RTC Am șters cele mai multe lucruri, în afară de declarațiile if care spun dacă RTC este activat sau nu. Am folosit în principal acest site web pentru a afla cum să programez RTC

Site-ul pe care l-am folosit pentru motorul Stepper, acest lucru m-a ajutat să înțeleg cum să programez stepperul pentru a rula. M-a ajutat doar să înțeleg cum să-l codez

Pasul 6: Probleme și cum le-am remediat

Probleme și cum le-am remediat!
Probleme și cum le-am remediat!

Câteva probleme am avut

  • Aveam nevoie de alimentare de 12v, aveam doar baterie de 9v am găsit una și s-a rezolvat rapid.
  • Când am conectat L298N la NEMA 17, am greșit firele pe A și A-, ceea ce a făcut-o să tremure puțin. Pur și simplu l-am reparat schimbând firele în sens invers.
  • Am încercat să fac codul mai simplu, deoarece în declarația if myStepper.step (-feed); iar și iar părea dezordonat. Așa că a trebuit să o schimb înapoi.
  • Am avut dimensiunea greșită a plăcii de bază, așa cum se vede în imagine, așa că a trebuit să printez 3D una nouă și să se potrivească perfect!
  • Problema pe care o am este că se blochează, deoarece melcul este prea mic, așa că se blochează într-un mod simplu în care pot rezolva, este prin mărirea melcului o cantitate mică!

Recomandat: