Sadržaj:

Automatska hranilica za pse: 6 koraka
Automatska hranilica za pse: 6 koraka

Video: Automatska hranilica za pse: 6 koraka

Video: Automatska hranilica za pse: 6 koraka
Video: FamilyPet Store | Rotirajuca hranilica za pse i mačke sa tajmerom | Kako se koristi? 2024, Srpanj
Anonim
Automatska hranilica za pse
Automatska hranilica za pse

Ovo je moj projekt automatske hranilice za kućne ljubimce. Moje ime je Parker, ja sam u razredu 11 i napravio sam ovaj projekt 11. studenog 2020. kao CCA (aktivnost koja završava tečaj) u ovom projektu pokazat ću vam kako napraviti automatsku hranilicu za kućne ljubimce s Arduino UNO. Možete odabrati vrijeme koje možete promijeniti. Hrana će se točiti kroz svrdlo i hraniti vaše ljubimce!

Pribor

Elektronika:

  • Arduino UNO
  • L298N - 10 USD - Upravlja Nema 17
  • NEMA 17 - 10 $ - Okreće puž tako da se hrana toči
  • RTC (DS1307) - 10 USD - Daje vrijeme
  • Napajanje od 12V - 5 USD - Omogućuje sve
  • Mini Breadboard - Za dodatni prostor ožičenja
  • Žice kratkospojnika - sve povezuje
  • Ženski na muški kabel - sve povezuje

Hardver:

  • 3D tiskana nit - za 3D pisač
  • 2 vijka M4 - Držite osnovnu ploču na mjestu
  • 4 vijka Nema 17 - Držite nema dolje
  • PVC T 48 mm unutarnja dimenzija 66 mm vanjska dimenzija - 3 USD

Alati:

  • 3D pisač
  • Bušilica
  • Pištolj za lemljenje

Korak 1: Pregled dizajna

Pregled dizajna
Pregled dizajna
Pregled dizajna
Pregled dizajna
Pregled dizajna
Pregled dizajna
Pregled dizajna
Pregled dizajna

Dizajn hranilice za kućne ljubimce vrlo je jednostavan. Lijevak ide na vrh PVC -a T. Zatim ide poklopac sa stražnje strane PVC -a T (kao što je prikazano na slici) s pričvršćenim Nema 17. Tada će se Nema 17 gurnuti u stražnji dio svrdla koji se vidi gore, a vijak će otići sa strane da ga drži na mjestu kako ne bi deformirao rupu koja se vidi iznad!

Tada će svrdlo jednostavno gurnuti hranu iz cijevi u zdjelu!

Korak 2: Pregled koda

Pregled koda
Pregled koda
Pregled koda
Pregled koda
Pregled koda
Pregled koda

RTC i Stepper imaju biblioteku pod nazivom RTClib.h i Stepper.h koja dodaje pojednostavljeni kod za RTC & Stepper. Ako su izjave vrlo jednostavne, kaže se da ako su sat i minute jednaki navedenom vremenu, rotirat će se nema koja će izdati hranu. Ostatak koda je vrlo lako razumljiv čak i za nekoga s jednodnevnim iskustvom.

Korak 3: Pričvršćivanje Nema 17 na osnovnu ploču i svrdlo

Pričvršćivanje Nema 17 na osnovnu ploču i svrdlo
Pričvršćivanje Nema 17 na osnovnu ploču i svrdlo
Pričvršćivanje Nema 17 na osnovnu ploču i svrdlo
Pričvršćivanje Nema 17 na osnovnu ploču i svrdlo
Pričvršćivanje Nema 17 na osnovnu ploču i svrdlo
Pričvršćivanje Nema 17 na osnovnu ploču i svrdlo

Najprije želite uzeti osnovnu ploču i pričvrstiti je na Nema 17 pomoću prethodno izrađenih rupa na osnovnoj ploči. Nakon što to učinite, puž morate pričvrstiti na Nema pomoću stražnje rupe na njemu. Zatim spojite osnovnu ploču sa svrdlom i pričvršćenim Nema, a zatim uvijte vijke M2 na svaku stranu.

Korak 4: Ožičenje L298N & RTC

Ožičenje L298N & RTC
Ožičenje L298N & RTC
Ožičenje L298N & RTC
Ožičenje L298N & RTC

Ovaj korak će vam reći kako spojiti L298N & RTC

Počet ćemo s pinovima 8, 9, 10, 11 do L298N

  • Pin 8 (bijeli) na IN1
  • Pin 9 (ljubičasta) na IN2
  • Pin 10 (ružičasti) na IN3
  • PIN 11 (žuti) do IN4

Zatim ćemo spojiti Nema 17 na L298N

  • OUT1 do 1 na NEMA -i
  • OUT2 do 2 na NEMA -i
  • OUT3 do 3 na NEMA -i
  • OUT4 do 4 na NEMA -i

Spajanje 12v i Arduina na L298N (Nisam mogao pronaći 12V pa zamislite 9V bateriju kao napajanje)

  • Volti do 12V
  • Uzemljenje prema GND
  • 5V do 5V na Breadboard -u

Povezivanje RTC -a s Arduinom

  • GND u GND
  • 5V do 5V na Breadboard -u
  • SDA do A5
  • SCL do A4

Igle za kratkospojnike

Svi kratkospojnici moraju biti na L298N

Korak 5: Kodiranje s komentarima

Kodiranje s komentarima
Kodiranje s komentarima
Kodiranje s komentarima
Kodiranje s komentarima
Kodiranje s komentarima
Kodiranje s komentarima

Kod jasniji na gornjim slikama

// Ime: Parker Frederick

// Naziv projekta: Automatsko hranjenje kućnih ljubimaca // Datum: utorak, 10. studenog 2020. // Učitelj: M. Bonisteel // Desc: Nahranite svoje ljubimce u određeno vrijeme!

// Knjižnice za stvari koje sam koristio #include #include #include "RTClib.h"

RTC_DS1307 rtc; // Kaže što RTC koristi

// Ovdje postavljate vrijeme za jelo

// Sati int mornFeedTime = 12; int nightFeedTime = 7; // Minute int mornFeedTimeM = 29; int nightFeedTimeM = 00; // sekunde int mornFeedTimeS = 20; int nightFeedTimeS = 00;

char daysOfTheWeek [7] [12] = {"nedjelja", "ponedjeljak", "utorak", "srijeda", "četvrtak", "petak", "subota"}; // Pretvara normalne dane u dane u tjednu

const int feed = 200; // Ovo su vaši koraci pa koliko puta želite da se zavrti

Stepper myStepper (feed, 8, 9, 10, 11); // Vaše pribadače za Nema 17 i većinu drugih stepera

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

while (! Serijski); // Ako RTC ne radi prikazat će ga na serijskom zaslonu if (! Rtc.begin ()) {Serial.println ("Nije moguće pronaći RTC"); while (1); }

// Ovo će vam reći radi li Sat za realno vrijeme ili ne i prikazat će se na serijskom zaslonu ako (! Rtc.isrunning ()) {Serial.println ("RTC radi!");

rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_))); // Ovo će vašem računalu oduzeti vrijeme i koristiti ga na RTC -u

// Ako želite postaviti vrijeme umjesto računala, to možete učiniti ovdje //rtc.adjust(DateTime(2020, 10, 29, 8, 28, 0)); // Godina/Mjesec/Dan/Sat/Minuta/Druga} myStepper.setSpeed (200); // Brzina na kojoj želite da se okrene}

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

// Ovo će ove varijable učiniti trenutnim trenutkom itd. Int hr = sada.hour (); int mi = now.minute (); int se = now.second ();

// Kodirajte tako da će u zadano vrijeme izdati hranu i okrenuti će se 5 puta, to je za jutarnju hranu

if (hr == mornFeedTime && mi == mornFeedTimeM && mornFeedTimeS == se) {Serial.println ("Doručak!"); myStepper.step (-feed); kašnjenje (700);

myStepper.step (-feed); kašnjenje (700);

myStepper.step (-feed); kašnjenje (700);

myStepper.step (-feed); kašnjenje (700);

myStepper.step (-feed); kašnjenje (700);

myStepper.step (-feed); kašnjenje (700);

myStepper.step (-feed); kašnjenje (700);

}

// Kodirajte tako da će u zadano vrijeme izdati hranu i okretati se 5 puta, to je za noćno hranjenje

if (hr == nightFeedTime && mi == nightFeedTimeM && nightFeedTimeS == se) {Serial.println ("Večera!"); myStepper.step (-feed); kašnjenje (700);

myStepper.step (-feed); kašnjenje (700);

myStepper.step (-feed); kašnjenje (700);

myStepper.step (-feed); kašnjenje (700);

myStepper.step (-feed); kašnjenje (700);

myStepper.step (-feed); kašnjenje (700);

myStepper.step (-feed); kašnjenje (700); }

// Ovo će prikazati GODINU, MJESEC, DAN, SAT, MINUTU, SEKUNDU u seriji

Serijski.ispis (sada.godina (), DEC); Serial.print ('/'); Serijski.ispis (sada.mjesec (), 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 (':'); Serijski.ispis (sada.sekunda (), DEC); Serial.println (); }

Web mjesto koje sam koristio za RTC Izbrisao sam većinu stvari osim if naredbi koje govore je li RTC uključen ili isključen. Uglavnom sam koristio ovu web stranicu kako bih naučio programirati RTC

Web stranica koju sam koristio za Stepper motor pomogla mi je razumjeti kako programirati stepper za rad. Nisam ništa skrivao od toga. Samo mi je pomoglo razumjeti kako ga kodirati

Korak 6: Problemi i kako sam ih riješio

Problemi i kako sam ih riješio!
Problemi i kako sam ih riješio!

Imao sam nekoliko problema

  • Trebalo mi je 12v napajanje, imao sam samo 9v bateriju, našao sam jednu i brzo je riješen.
  • Prilikom povezivanja L298N s NEMA 17 imao sam pogrešne žice na A i A- zbog čega je malo treperilo. Jednostavno sam to popravio promjenom žica na drugi način.
  • Pokušao je pojednostaviti kod jer u if naredbi myStepper.step (-feed); uvijek iznova izgledao neuredno. Pa sam ga morao promijeniti.
  • Imao sam pogrešnu osnovnu ploču kao što se vidi na slici pa sam morao 3D ispisati novu malo i savršeno mi pristaje!
  • Problem koji imam je da se zaglavi jer je svrdlo premalo pa se zaglavljuje jednostavan način na koji mogu popraviti povećanje malog puža!

Preporučeni: