Sisällysluettelo:

Automaattinen koiran syöttölaite: 6 vaihetta
Automaattinen koiran syöttölaite: 6 vaihetta

Video: Automaattinen koiran syöttölaite: 6 vaihetta

Video: Automaattinen koiran syöttölaite: 6 vaihetta
Video: Автоматическая кормушка для кошек и собак. Автокормушка Automatic Pet Feeder 4PLDH5001 с таймером. 2024, Marraskuu
Anonim
Automaattinen koiran syöttölaite
Automaattinen koiran syöttölaite

Tämä on projektini automaattisesta lemmikkieläinten syöttölaitteesta. Nimeni on Parker, olen luokalla 11 ja tein tämän projektin 11. marraskuuta 2020 CCA: na (Course Culminating Activity) tässä projektissa. Voit valita ajan, jonka voit muuttaa. Ruoka annostellaan ruuvin läpi ja ruokkii lemmikkisi!

Tarvikkeet

Elektroniikka:

  • Arduino UNO
  • L298N - 10 $ - Ohjaa Nema 17: tä
  • NEMA 17 - 10 $ - Kierrä ruuvia niin, että ruoka jakautuu
  • RTC (DS1307) - 10 $ - antaa aikaa
  • 12 V: n virtalähde - 5 dollaria - Virtalähde kaikkeen
  • Mini Breadboard - lisää johdotustilaa
  • Jumper Johdot - Yhdistää kaiken
  • Naaras -urosjohdot - Yhdistää kaiken

Laitteisto:

  • 3D -tulostuslanka - 3D -tulostimelle
  • 2 M4 ruuvia - Pidä pohjalevyä paikallaan
  • 4 Nema 17 pulttia - Pidä nema painettuna
  • PVC T 48mm sisämitta 66mm ulkomitat - 3 $

Työkalut:

  • 3D tulostin
  • Porata
  • Juotosase

Vaihe 1: Yleiskatsaus suunnitteluun

Yleiskatsaus muotoiluun
Yleiskatsaus muotoiluun
Yleiskatsaus muotoiluun
Yleiskatsaus muotoiluun
Yleiskatsaus muotoiluun
Yleiskatsaus muotoiluun
Yleiskatsaus muotoiluun
Yleiskatsaus muotoiluun

Lemmikkieläinten syöttölaitteen rakenne on hyvin yksinkertainen. Säiliö menee PVC T: n päälle. Sitten PVC T: n takaosaan (kuten kuvassa) tulee kansi, johon on kiinnitetty Nema 17. Sitten Nema 17 työnnetään ruuvin takaosaan, joka näkyy yllä ja pultti menee sivulle pitämään sitä paikallaan, jotta se ei vääristä yllä näkyvää reikää!

Sitten ruuvi yksinkertaisesti työntää ruuan putkesta kulhoon!

Vaihe 2: Koodin yleiskatsaus

Koodin yleiskatsaus
Koodin yleiskatsaus
Koodin yleiskatsaus
Koodin yleiskatsaus
Koodin yleiskatsaus
Koodin yleiskatsaus

RTC & Stepperillä on kirjasto nimeltä RTClib.h ja Stepper.h, joka lisää yksinkertaistetun koodin RTC & Stepperille. Jos lausunnot ovat hyvin yksinkertaisia, sen sanonta, jos tunti ja minuutit ovat yhtä suuret kuin mainittu aika, se pyörittää nemaa, joka jakaa ruoan. Loput koodista ovat erittäin helppoja ymmärtää jopa niille, joilla on päivän kokemus.

Vaihe 3: Nema 17: n kiinnittäminen pohjalevyyn ja ruuviin

Nema 17: n kiinnittäminen pohjalevyyn ja ruuviin
Nema 17: n kiinnittäminen pohjalevyyn ja ruuviin
Nema 17: n kiinnittäminen pohjalevyyn ja ruuviin
Nema 17: n kiinnittäminen pohjalevyyn ja ruuviin
Nema 17: n kiinnittäminen pohjalevyyn ja ruuviin
Nema 17: n kiinnittäminen pohjalevyyn ja ruuviin

Ensin haluat ottaa pohjalevyn ja kiinnittää sen Nema 17 -laitteeseen pohjalevyn valmiiden reikien avulla. Kun olet valmis, haluat kiinnittää ruuvin Nemaan käyttämällä sen takareikää. Liitä sitten pohjalevy ruuvilla ja Nema kiinnitettynä ja ruuvaa sitten M2 -pultit molemmille puolille.

Vaihe 4: Johdotus L298N & RTC

Johdotus L298N ja RTC
Johdotus L298N ja RTC
Johdotus L298N ja RTC
Johdotus L298N ja RTC

Tässä vaiheessa kerrotaan, miten L298N ja RTC kytketään

Aloitamme L298N: n nastoilla 8, 9, 10, 11

  • Nasta 8 (valkoinen) - IN1
  • Nasta 9 (violetti) - IN2
  • Nasta 10 (vaaleanpunainen) - IN3
  • PIN 11 (keltainen) - IN4

Seuraavaksi yhdistämme Nema 17: n L298N: ään

  • OUT1 - 1 NEMA: ssa
  • OUT2 - 2 NEMA: ssa
  • OUT3 - 3 NEMA: ssa
  • OUT4 - 4 NEMA: ssa

12 V: n ja Arduinon kytkeminen L298N: ään (12 V ei löytynyt, joten kuvittele 9 V: n akku virtalähteeksi)

  • Jännite 12V
  • Maasta GND: hen
  • 5–5 V leipätaululla

RTC: n yhdistäminen Arduinoon

  • GND - GND
  • 5–5 V leipätaululla
  • SDA - A5
  • SCL - A4

Neulepuserot

Kaikkien hyppytappien on oltava L298N: ssä

Vaihe 5: Koodaus kommenttien avulla

Koodaus kommenttien kanssa
Koodaus kommenttien kanssa
Koodaus kommenttien kanssa
Koodaus kommenttien kanssa
Koodaus kommenttien kanssa
Koodaus kommenttien kanssa

Koodi selkeämpi yllä olevissa kuvissa

// Nimi: Parker Frederick

// Projektin nimi: Automaattinen lemmikkieläinten syöttölaite // Päivämäärä: tiistai, 10. marraskuuta 2020 // Opettaja: M. Bonisteel // Kuvaus: Syötä lemmikkisi tiettyyn aikaan!

// Liberaalit käyttämistäni asioista #include #include #include "RTClib.h"

RTC_DS1307 rtc; // Sanoo, mitä RTC käyttää

// Tässä asetat ruuan ajan

// Tunnit int mornFeedTime = 12; int nightFeedTime = 7; // Minuuttia int mornFeedTimeM = 29; int nightFeedTimeM = 00; // Sekuntia int mornFeedTimeS = 20; int nightFeedTimeS = 00;

char daysOfTheWeek [7] [12] = {"sunnuntai", "maanantai", "tiistai", "keskiviikko", "torstai", "perjantai", "lauantai"}; // Normaalit päivät muuttuvat viikonpäiviksi

const int syöte = 200; // Tämä on sinun vaiheesi, joten kuinka monta kertaa haluat sen pyöriä

Stepper myStepper (syöte, 8, 9, 10, 11); // Nastasi Nema 17: lle ja useimmille muille steppereille

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

while (! Sarja); // Jos RTC ei toimi, se näyttää sen sarjanäytössä, jos (! Rtc.begin ()) {Serial.println ("RTC: tä ei löytynyt"); kun taas (1); }

// Tämä kertoo, onko reaaliaikakello käynnissä vai ei, ja se näyttää sen sarjanäytössä, jos (! Rtc.isrunning ()) {Serial.println ("RTC on käynnissä!");

rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_))); // Tämä vie tietokoneesi aikaa ja käyttää sitä RTC: ssä

// Jos haluat asettaa tietyn ajan tietokoneen ajan sijaan, voit tehdä sen täällä //rtc.adjust(DateTime(2020, 10, 29, 8, 28, 0)); // Vuosi/kuukausi/päivä/tunti/minuutti/sekunti} myStepper.setSpeed (200); // Nopeus, jonka haluat sen kääntyvän}

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

// Tämä tekee näistä muuttujista sen hetken tunnin jne. Int hr = now.hour (); int mi = nyt.minute (); int se = nyt.second ();

// Koodaa niin, että se annostelee ruoan asetettuna ajankohtana ja se pyörii 5 kertaa, mikäli kyseessä on aamuruoka

if (hr == mornFeedTime && mi == mornFeedTimeM && mornFeedTimeS == se) {Serial.println ("Aamiainen!"); myStepper.step (-syöttö); viive (700);

myStepper.step (-syöttö); viive (700);

myStepper.step (-syöttö); viive (700);

myStepper.step (-syöttö); viive (700);

myStepper.step (-syöttö); viive (700);

myStepper.step (-syöttö); viive (700);

myStepper.step (-syöttö); viive (700);

}

// Koodaa niin, että asetettuun aikaan se annostelee ruoan ja se pyörii 5 kertaa, tämä koskee yöaikaista rehua

if (hr == nightFeedTime && mi == nightFeedTimeM && nightFeedTimeS == se) {Serial.println ("Illallinen!"); myStepper.step (-syöttö); viive (700);

myStepper.step (-syöttö); viive (700);

myStepper.step (-syöttö); viive (700);

myStepper.step (-syöttö); viive (700);

myStepper.step (-syöttö); viive (700);

myStepper.step (-syöttö); viive (700);

myStepper.step (-syöttö); viive (700); }

// Tämä näyttää sarjassa YEAR, MONTH, DAY, HOUR, MINUTE, SECOND

Sarjanjälki (nyt.vuosi (), DEC); Serial.print ('/'); Serial.print (nyt.kuukausi (), 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 (nyt.second (), DEC); Sarja.println (); }

RTC: ssä käyttämäni verkkosivusto Poistin useimmat muut asiat kuin if -lausunnot, joissa kerrotaan, onko RTC käytössä vai ei. Käytin pääasiassa tätä verkkosivustoa RTC: n ohjelmoinnin opettamiseen

Verkkosivusto, jota käytin askelmoottorilla, tämä auttoi minua ymmärtämään, kuinka ohjelmoin askelmallin toimimaan, en todellakaan pitänyt siitä mitään. Se vain auttoi minua ymmärtämään, miten se koodataan

Vaihe 6: Ongelmat ja niiden korjaaminen

Ongelmat ja kuinka korjaan ne!
Ongelmat ja kuinka korjaan ne!

Muutamia ongelmia minulla oli

  • Tarvitsin 12 voltin virtalähteen, minulla oli vain 9 voltin akku, jonka löysin ja se ratkaistiin nopeasti.
  • Kun kytket L298N: n NEMA 17: een, johdot olivat väärin kohdissa A ja A-, mikä teki siitä hieman tärisevää. Korjasin sen vain vaihtamalla johdot toiseen suuntaan.
  • Yritti tehdä koodista yksinkertaisemman, koska if-lauseessa myStepper.step (-feed); kerta toisensa jälkeen näytti sotkuiselta. Joten minun piti vaihtaa se takaisin.
  • Minulla oli väärän kokoinen pohjalevy, kuten kuvassa näkyy, joten minun piti tulostaa hieman uusi 3D ja se sopi täydellisesti!
  • Ongelmani on, että se tukkeutuu, koska ruuvi on liian pieni, joten se tukkeutuu yksinkertaisella tavalla, jonka voin korjata suurentamalla ruuvia pienellä määrällä!

Suositeltava: