Sisukord:

Automaatne koeratoit: 6 sammu
Automaatne koeratoit: 6 sammu

Video: Automaatne koeratoit: 6 sammu

Video: Automaatne koeratoit: 6 sammu
Video: 😲 Что не так с 6-ст. "автоматом" для Hyundai Solaris, Creta, Tucson и Kia Rio, Sportage, Optima? 2024, Juuli
Anonim
Automaatne koeratoitja
Automaatne koeratoitja

See on minu lemmikloomade söötja projekt. Minu nimi on Parker, ma olen 11. klassis ja tegin selle projekti 11. novembril 2020 selle projekti CCA (Course Culminating Activity) raames. Näitan teile, kuidas teha Arduino UNO -ga automaatset lemmikloomasöötajat. Saate valida aja, mida saate muuta. Toit väljastatakse tigu kaudu ja toidab teie lemmikloomi!

Tarvikud

Elektroonika:

  • Arduino UNO
  • L298N - 10 $ - juhib Nema 17
  • NEMA 17 - 10 $ - keerab tigu nii, et toit väljub
  • RTC (DS1307) - 10 $ - annab aega
  • 12 V toiteallikas - 5 dollarit - annab kõik
  • Mini leivalaud - täiendava juhtmestiku jaoks
  • Jumper Traadid - ühendab kõik
  • Naiste ja meeste juhtmed - ühendab kõik

Riistvara:

  • 3D prindikiud - 3D printerile
  • 2 M4 polti - hoidke alusplaati paigal
  • 4 Nema 17 polti - hoidke nema all
  • PVC T 48mm sisemõõt 66mm välismõõt - 3 $

Tööriistad:

  • 3D printer
  • Puurida
  • Jootmispüstol

Samm: disaini ülevaade

Ülevaade disainist
Ülevaade disainist
Ülevaade disainist
Ülevaade disainist
Ülevaade disainist
Ülevaade disainist
Ülevaade disainist
Ülevaade disainist

Lemmikloomasöötja disain on väga lihtne. Punker läheb PVC T ülaosale. Seejärel läheb PVC T tagaküljele kate (nagu pildil näidatud), millele on kinnitatud Nema 17. Seejärel lükatakse Nema 17 tigu tagaküljele, mida on näha ülalpool, ja küljele läheb polt, mis hoiab seda paigal, nii et see ei deformeeriks ülal nähtavat auku!

Siis lükkab tigu toidu lihtsalt torust välja ja kaussi!

2. samm: koodi ülevaade

Koodi ülevaade
Koodi ülevaade
Koodi ülevaade
Koodi ülevaade
Koodi ülevaade
Koodi ülevaade

RTC & Stepperil on raamatukogu nimega RTClib.h ja Stepper.h, mis lisab RTC & Stepperile lihtsustatud koodi. Kui väited on väga lihtsad, võib öelda, et kui tund ja minut võrduvad nimetatud ajaga, pöörab see nemat, mis annab toitu välja. Ülejäänud kood on väga hõlpsasti mõistetav isegi päevapikkuse kogemusega inimesele.

Samm: Nema 17 kinnitamine alusplaadile ja tigule

Nema 17 kinnitamine alusplaadile ja tigule
Nema 17 kinnitamine alusplaadile ja tigule
Nema 17 kinnitamine alusplaadile ja tigule
Nema 17 kinnitamine alusplaadile ja tigule
Nema 17 kinnitamine alusplaadile ja tigule
Nema 17 kinnitamine alusplaadile ja tigule

Esiteks soovite võtta oma alusplaadi ja kinnitada see oma Nema 17 külge, kasutades alusplaadil olevaid auke. Kui olete seda teinud, soovite tigu Nema külge kinnitada, kasutades selle tagumist ava. Seejärel ühendage alusplaat tigu ja Nema külge, seejärel keerake M2 poldid mõlemale küljele.

Samm 4: L298N ja RTC juhtmestik

Juhtmed L298N ja RTC
Juhtmed L298N ja RTC
Juhtmed L298N ja RTC
Juhtmed L298N ja RTC

See samm ütleb teile, kuidas ühendada L298N ja RTC

Alustame L298N tihvtidega 8, 9, 10, 11

  • Tihvt 8 (valge) kuni IN1
  • Pin 9 (lilla) kuni IN2
  • Pin 10 (roosa) kuni IN3
  • PIN 11 (kollane) kuni IN4

Järgmisena ühendame Nema 17 seadmega L298N

  • OUT1 kuni 1 NEMA -l
  • OUT2 kuni 2 NEMA -l
  • OUT3 kuni 3 NEMA -l
  • OUT4 kuni 4 NEMA -l

12v ja Arduino ühendamine L298N -ga (12V ei leidnud, nii et kujutage ette 9V akut)

  • Voldid kuni 12V
  • Maapind GND -ni
  • 5V kuni 5V leivaplaadil

RTC ühendamine Arduinoga

  • GND kuni GND
  • 5V kuni 5V leivaplaadil
  • SDA kuni A5
  • SCL kuni A4

Jumper Pins

Kõik hüppajanõelad peaksid olema L298N -l

Samm: kodeerimine kommentaaridega

Kodeerimine koos kommentaaridega
Kodeerimine koos kommentaaridega
Kodeerimine koos kommentaaridega
Kodeerimine koos kommentaaridega
Kodeerimine koos kommentaaridega
Kodeerimine koos kommentaaridega

Ülaltoodud piltidel on kood selgem

// Nimi: Parker Frederick

// Projekti nimi: automaatne lemmikloomasöötja // Kuupäev: teisipäev, 10. november 2020 // Õpetaja: M. Bonisteel // Kirjeldus: Sööge oma lemmikloomi etteantud ajal!

// Libaarid nende asjade jaoks, mida ma kasutasin #include #include #include "RTClib.h"

RTC_DS1307 rtc; // Ütleb, mida RTC kasutab

// Siin määrate toidu valmistamise aja

// Tundi int mornFeedTime = 12; int nightFeedTime = 7; // Minutid int mornFeedTimeM = 29; int nightFeedTimeM = 00; // Sekundid int mornFeedTimeS = 20; int nightFeedTimeS = 00;

char daysOfTheWeek [7] [12] = {"pühapäev", "esmaspäev", "teisipäev", "kolmapäev", "neljapäev", "reede", "laupäev"}; // Muudab tavalised päevad nädalapäevadeks

const int feed = 200; // See on teie samm, nii et mitu korda soovite seda keerutada

Stepper myStepper (feed, 8, 9, 10, 11); // Teie nööbid Nema 17 ja enamiku teiste sammude jaoks

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

while (! Seeria); // Kui RTC ei tööta, kuvab see selle jadakuval, kui (! Rtc.begin ()) {Serial.println ("Ei leidnud RTC -d"); samas (1); }

// See ütleb sulle, kas reaalajas kell töötab või mitte, ja kuvab selle seeriaekraanil, kui (! Rtc.isrunning ()) {Serial.println ("RTC töötab!");

rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_))); // See võtab teie arvutil aega ja kasutab seda RTC -s

// Kui soovite, et arvutiaja asemel oleks määratud aeg, saate seda teha siin //rtc.adjust(DateTime(2020, 10, 29, 8, 28, 0)); // Aasta/kuu/päev/tund/minut/sekund} myStepper.setSpeed (200); // Kiirus, milleni tahad pöörduda}

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

// See muudab need muutujad praegu tundideks jne int hr = now.hour (); int mi = praegu.minute (); int se = nüüd.second ();

// Kodeerige nii, et määratud ajal väljastab see toidu ja see pöörleb 5 korda, see on hommikuse sööda jaoks

if (hr == mornFeedTime && mi == mornFeedTimeM && mornFeedTimeS == se) {Serial.println ("Hommikusöök!"); myStepper.step (-voog); viivitus (700);

myStepper.step (-voog); viivitus (700);

myStepper.step (-voog); viivitus (700);

myStepper.step (-voog); viivitus (700);

myStepper.step (-voog); viivitus (700);

myStepper.step (-voog); viivitus (700);

myStepper.step (-voog); viivitus (700);

}

// Kodeerige nii, et määratud ajal väljastab see toidu ja see pöörleb 5 korda, see on öiseks söödaks

if (hr == nightFeedTime && mi == nightFeedTimeM && nightFeedTimeS == se) {Serial.println ("Õhtusöök!"); myStepper.step (-voog); viivitus (700);

myStepper.step (-voog); viivitus (700);

myStepper.step (-voog); viivitus (700);

myStepper.step (-voog); viivitus (700);

myStepper.step (-voog); viivitus (700);

myStepper.step (-voog); viivitus (700);

myStepper.step (-voog); viivitus (700); }

// See näitab seriaalis YEAR, MONTH, DAY, HOUR, MINUTE, SECOND

Seeriaprint (nüüd.aasta (), DEC); Serial.print ('/'); Serial.print (nüüd.kuu (), 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 (nüüd.second (), DEC); Serial.println (); }

Veebisait, mida kasutasin RTC jaoks, kustutasin enamiku, välja arvatud if -laused, mis ütlevad, kas RTC on sisse või välja lülitatud. Kasutasin seda veebisaiti peamiselt RTC programmeerimise õppimiseks

Veebileht, mida kasutasin samm -mootori jaoks, aitas mul mõista, kuidas stepperit jooksma programmeerida, ma ei hoidnud sellest tegelikult midagi. See aitas mul lihtsalt aru saada, kuidas seda kodeerida

6. samm: probleemid ja kuidas ma need parandasin

Probleemid ja kuidas ma need parandasin!
Probleemid ja kuidas ma need parandasin!

Mõned probleemid tekkisid mul

  • Mul oli vaja 12v toiteallikat, mul oli ainult 9v aku, leidsin ühe ja see lahendati kiiresti.
  • L298N ühendamisel NEMA 17-ga olid mul juhtmed A ja A valesti, mis muutis selle natuke värisema. Ma lihtsalt parandasin selle, vahetades juhtmeid teistpidi.
  • Proovisin koodi lihtsamaks muuta, sest if-lauses myStepper.step (-feed); ikka ja jälle tundus segane. Nii et ma pidin selle tagasi muutma.
  • Mul oli pildil näha vale suurusega alusplaat, nii et pidin natuke uut 3D printima ja see sobis ideaalselt!
  • Mul on probleem, et see on ummistunud, kuna tigu on liiga väike, nii et see ummistub lihtsal viisil, mida ma saan parandada, on tigu väikese koguse suurendamine!

Soovitan: