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, Juli
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. godine 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 izabrati vrijeme koje možete promijeniti. Hrana će se izdavati kroz puž i hraniti vaše ljubimce!

Supplies

Elektronika:

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

Hardver:

  • 3D tiskana nit - za 3D štampač
  • 2 vijka M4 - Držite osnovnu ploču na mjestu
  • 4 Nema 17 vijaka - držite nema pritisnutim
  • PVC T 48 mm unutrašnja dimenzija 66 mm vanjska dimenzija - 3 USD

Alati:

  • 3D štampač
  • Drill
  • 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 je vrlo jednostavan. Na vrh PVC T. ide lijevak, a zatim na stražnju stranu PVC T (kao što je prikazano na slici) ide poklopac sa 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 & Steper ima biblioteku pod nazivom RTClib.h i Stepper.h koja dodaje pojednostavljeni kod za RTC & Stepper. Ako su naredbe if vrlo jednostavne, kaže se 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 sa višednevnim 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

Prvo želite uzeti osnovnu ploču i pričvrstiti je na Nema 17 pomoću prethodno izrađenih rupa na osnovnoj ploči. Kada to učinite, želite da pričvrstite puž na Nema koristeći zadnju rupu 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 povezati Nema 17 sa 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
  • Teren 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 kratkospojnički zatiči trebali bi 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. novembar 2020. godine // Učitelj: M. Bonisteel // Desc: Nahranite svoje ljubimce u određeno vrijeme!

// Biblioteke za stvari koje sam koristio #include #include #include "RTClib.h"

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

// Ovdje postavljate vrijeme za hranu

// 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 sedmici

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 iglice za Nema 17 i većinu drugih stepera

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

while (! Serijski); // Ako RTC ne radi, prikazat će se na serijskom ekranu ako (! 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 prikazati će ga na serijskom ekranu ako (! Rtc.isrunning ()) {Serial.println ("RTC radi!");

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

// Ako želite imati namješteno vrijeme umjesto računarskog, to možete učiniti ovdje //rtc.adjust(DateTime(2020, 10, 29, 8, 28, 0)); // Godina/mjesec/dan/sat/minut/sekunda} 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 = now.hour (); int mi = now.minute (); int se = now.second ();

// Kodirajte tako da će u zadano vrijeme izdati hranu i okretati 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

Serial.print (sada.godina (), 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 stranica koju 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 mi je pomogla da shvatim kako programirati stepper za rad. Nisam ništa skrivao od toga. Samo mi je pomoglo da shvatim kako to 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 učiniti kod jednostavnijim jer u if naredbi myStepper.step (-feed); uvijek iznova izgledao neuredno. Pa sam morao da ga vratim.
  • Imao sam osnovnu ploču pogrešne veličine kao što se vidi na slici pa sam morao malo 3D ispisati novu i savršeno mi pristaje!
  • Problem koji imam je da se zaglavi jer je svrdlo premalo pa se zaglavljuje jednostavan način na koji to mogu popraviti je povećavanjem puža za malu količinu!

Preporučuje se: