Kazalo:

Samodejni podajalnik psov: 6 korakov
Samodejni podajalnik psov: 6 korakov

Video: Samodejni podajalnik psov: 6 korakov

Video: Samodejni podajalnik psov: 6 korakov
Video: Как проверить генератор. За 3 минуты, БЕЗ ПРИБОРОВ и умений. 2024, Julij
Anonim
Samodejni podajalnik psov
Samodejni podajalnik psov

To je moj projekt avtomatskega podajalnika hišnih ljubljenčkov. Moje ime je Parker, jaz sem v razredu 11 in ta projekt sem izvedel 11. novembra 2020 kot CCA (tečaj, ki zaključuje dejavnost) v tem projektu. Pokazal vam bom, kako narediti avtomatski napajalnik za hišne ljubljenčke z Arduino UNO. Izberete lahko čas, ki ga lahko spremenite. Hrana se bo razdelila skozi polž in nahranila vaše hišne ljubljenčke!

Zaloge

Elektronika:

  • Arduino UNO
  • L298N - 10 $ - Nadzira Nema 17
  • NEMA 17 - 10 $ - Obrne polž tako, da se hrana raztopi
  • RTC (DS1307) - 10 $ - daje čas
  • 12V napajalnik - 5 $ - Poganja vse
  • Mini plošča - za dodaten prostor za ožičenje
  • Jumper žice - povezujejo vse
  • Ženski na moški žice - poveže vse

Strojna oprema:

  • 3D tiskalna nit - za 3D tiskalnik
  • 2 vijaka M4 - osnovno ploščo držite na mestu
  • 4 vijaka Nema 17 - držite nema navzdol
  • PVC T 48 mm notranja dimenzija 66 mm zunanja mera - 3 USD

Orodja:

  • 3D tiskalnik
  • Vrtalnik
  • Spajkalna pištola

1. korak: Pregled oblikovanja

Pregled oblikovanja
Pregled oblikovanja
Pregled oblikovanja
Pregled oblikovanja
Pregled oblikovanja
Pregled oblikovanja
Pregled oblikovanja
Pregled oblikovanja

Zasnova hranilnika za hišne ljubljenčke je zelo preprosta. Na vrh PVC T. gre lijak, nato pa na zadnji strani PVC T (kot je prikazano na sliki) pokrov, na katerega je pritrjen Nema 17. Nato se Nema 17 potisne v zadnjo stran svedra, ki je vidna zgoraj, in vijak bo šel vstran, da ga drži na mestu, da ne deformira luknje, ki jo lahko vidite zgoraj!

Potem bo polž preprosto potisnil hrano iz cevi v posodo!

2. korak: Pregled kode

Pregled kodeksa
Pregled kodeksa
Pregled kodeksa
Pregled kodeksa
Pregled kodeksa
Pregled kodeksa

RTC in Stepper imata knjižnico z imenom RTClib.h in Stepper.h, ki dodaja poenostavljeno kodo za RTC & Stepper. Izjave if so zelo preproste, če pravijo, da sta ura in minute enaki omenjenemu času, se bo vrtela nema, ki bo razdelila hrano. Preostanek kode je zelo enostavno razumeti tudi za nekoga z enodnevnimi izkušnjami.

Korak 3: Pritrditev Nema 17 na osnovno ploščo in polž

Pritrditev Nema 17 na osnovno ploščo in polž
Pritrditev Nema 17 na osnovno ploščo in polž
Pritrditev Nema 17 na osnovno ploščo in polž
Pritrditev Nema 17 na osnovno ploščo in polž
Pritrditev Nema 17 na osnovno ploščo in polž
Pritrditev Nema 17 na osnovno ploščo in polž

Najprej morate vzeti osnovno ploščo in jo pritrditi na napravo Nema 17 z vnaprej pripravljenimi luknjami na osnovni plošči. Ko to storite, morate sveder pritrditi na Nema z zadnjo luknjo na njem. Nato priključite osnovno ploščo s pritrjenim polžem in Nema, nato privijte vijake M2 na vsako stran.

4. korak: 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

Ta korak vam bo povedal, kako priključiti L298N & RTC

Začeli bomo z zatiči 8, 9, 10, 11 do L298N

  • Pin 8 (bela) v IN1
  • Pin 9 (vijolično) na IN2
  • Pin 10 (roza) v IN3
  • PIN 11 (rumena) do IN4

Nato bomo priključili Nema 17 na L298N

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

Priključitev 12v in Arduina na L298N (12V ni bilo mogoče najti, zato si predstavljajte 9V baterijo kot napajanje)

  • Napetost do 12V
  • Ozemljitev do GND
  • 5V do 5V na deski

Povezovanje RTC z Arduinom

  • GND v GND
  • 5V do 5V na deski
  • SDA do A5
  • SCL do A4

Zatiči za skakalce

Vsi skakalni zatiči naj bi bili na L298N

5. korak: Kodiranje s komentarji

Kodiranje s komentarji
Kodiranje s komentarji
Kodiranje s komentarji
Kodiranje s komentarji
Kodiranje s komentarji
Kodiranje s komentarji

Na zgornjih slikah je koda jasnejša

// Ime: Parker Frederick

// Ime projekta: Samodejni podajalnik hišnih ljubljenčkov // Datum: torek, 10. november 2020 // Učitelj: M. Bonisteel // Desc: Nahranite svoje hišne ljubljenčke ob določenem času!

// Knjižnice za stvari, ki sem jih uporabil #include #include #include "RTClib.h"

RTC_DS1307 rtc; // Pove, kaj uporablja RTC

// Tu nastavite čas za hrano

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

char daysOfTheWeek [7] [12] = {"nedelja", "ponedeljek", "torek", "sreda", "četrtek", "petek", "sobota"}; // Omogoča, da se normalni dnevi spremenijo v dneve v tednu

const int feed = 200; // To so vaši koraki, kolikokrat želite, da se zavrti

Stepper myStepper (vir, 8, 9, 10, 11); // Vaši zatiči za Nema 17 in večino drugih korakov

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

while (! Serijski); // Če RTC ne deluje, ga prikaže na serijskem zaslonu if (! Rtc.begin ()) {Serial.println ("RTC ni mogoče najti"); medtem ko (1); }

// To vam bo povedalo, ali ura v realnem času deluje ali ne, in prikazalo se bo na serijskem zaslonu, če (! Rtc.isrunning ()) {Serial.println ("RTC teče!");

rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_)))); // To bo računalniku vzelo čas in ga porabilo za RTC

// Če želite imeti namesto računalniškega časa nastavljen čas, lahko to storite tukaj //rtc.adjust(DateTime(2020, 10, 29, 8, 28, 0)); // Leto/mesec/dan/ura/minuta/sekunda} myStepper.setSpeed (200); // Hitrost, pri kateri želite, da se obrne}

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

// To bo naredilo te spremenljivke uro, ki je trenutno itd. Int hr = zdaj.hour (); int mi = zdaj.minute (); int se = zdaj.second ();

// Kodirajte tako, da bo ob nastavljenem času razdelil hrano in se vrtel 5 -krat, to je za jutranjo krmo

if (hr == mornFeedTime && mi == mornFeedTimeM && mornFeedTimeS == se) {Serial.println ("Zajtrk!"); myStepper.step (-feed); zamuda (700);

myStepper.step (-feed); zamuda (700);

myStepper.step (-feed); zamuda (700);

myStepper.step (-feed); zamuda (700);

myStepper.step (-feed); zamuda (700);

myStepper.step (-feed); zamuda (700);

myStepper.step (-feed); zamuda (700);

}

// Kodirajte, da bo ob nastavljenem času hrano razdelil in se petkrat zavrtel, to je za nočno krmljenje

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

myStepper.step (-feed); zamuda (700);

myStepper.step (-feed); zamuda (700);

myStepper.step (-feed); zamuda (700);

myStepper.step (-feed); zamuda (700);

myStepper.step (-feed); zamuda (700);

myStepper.step (-feed); zamuda (700); }

// To bo v zaporedju prikazalo LETO, MESEC, DAN, URO, MINUTO, SECOND

Serial.print (zdaj. Leto (), DEC); Serial.print ('/'); Serial.print (zdaj.mesec (), 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 (zdaj.minute (), DEC); Serial.print (':'); Serial.print (now.second (), DEC); Serial.println (); }

Spletno mesto, ki sem ga uporabil za RTC, sem izbrisal večino stvari razen navedb if, ki pravijo, ali je RTC vklopljen ali izklopljen. To spletno stran sem uporabljal predvsem za učenje programiranja RTC

Spletno mesto, ki sem ga uporabil za Stepper motor, mi je pomagalo razumeti, kako programirati stepper za zagon. Pomagal mi je razumeti, kako ga kodirati

6. korak: Težave in kako sem jih odpravil

Težave in kako sem jih odpravil!
Težave in kako sem jih odpravil!

Nekaj težav sem imel

  • Potreboval sem 12v napajalnik, imel sem samo 9v baterijo, ki sem jo našel in je bila hitro rešena.
  • Pri povezovanju L298N z NEMA 17 sem imel napačne žice na A in A-, zaradi česar je rahlo trepetal. Preprosto sem popravil tako, da sem žice zamenjal na drug način.
  • Poskusil sem poenostaviti kodo, ker je v stavku if myStepper.step (-feed); vedno znova videti neurejeno. Zato sem ga moral zamenjati nazaj.
  • Osnovno ploščo sem imel napačne velikosti, kot je prikazano na sliki, zato sem moral malo 3D natisniti novo in se popolnoma prilega!
  • Problem, ki ga imam, je, da se je puž premajhen, zato se zagozdi na preprost način, da ga popravim tako, da majhno količino povečate!

Priporočena: