Turinys:

Automatinis šunų tiektuvas: 6 žingsniai
Automatinis šunų tiektuvas: 6 žingsniai

Video: Automatinis šunų tiektuvas: 6 žingsniai

Video: Automatinis šunų tiektuvas: 6 žingsniai
Video: Дневник хранящий жуткие тайны. Переход. Джеральд Даррелл. Мистика. Ужасы 2024, Lapkritis
Anonim
Automatinis šunų tiektuvas
Automatinis šunų tiektuvas

Tai yra mano „Auto Pet Feeder“projektas. Mano vardas Parkeris, aš esu 11 klasės mokinys, ir aš šį projektą sukūriau 2020 m. Lapkričio 11 d. Kaip šio projekto CCA (kurso kulminacinė veikla). Galite pasirinkti laiką, kurį galite pakeisti. Maistas bus išpilstytas per sraigtą ir pamaitins jūsų augintinius!

Prekės

Elektronika:

  • Arduino UNO
  • L298N - 10 $ - valdo „Nema 17“
  • NEMA 17 - 10 $ - pasuka sraigtą taip, kad maistas būtų išleistas
  • RTC (DS1307) - 10 $ - duoda laiko
  • 12 V maitinimo šaltinis - 5 USD - gali viską
  • „Mini Breadboard“- skirta papildomai laidams
  • Trumpieji laidai - jungia viską
  • Moterų ir vyrų laidai - jungia viską

Techninė įranga:

  • 3D spausdinimo siūlas - skirtas 3D spausdintuvui
  • 2 M4 varžtai - laikykite pagrindo plokštę
  • 4 Nema 17 varžtai - laikykite nema žemyn
  • PVC T 48 mm vidinis matmuo 66 mm išorinis matmuo - 3 USD

Įrankiai:

  • 3D spausdintuvas
  • Grąžtas
  • Lituoklis

1 žingsnis: dizaino apžvalga

Dizaino apžvalga
Dizaino apžvalga
Dizaino apžvalga
Dizaino apžvalga
Dizaino apžvalga
Dizaino apžvalga
Dizaino apžvalga
Dizaino apžvalga

Naminių gyvūnėlių lesyklėlės dizainas yra labai paprastas. Bunkeris eina ant PVC T viršaus. Tada ant PVC T užpakalinės dalies (kaip parodyta paveikslėlyje) yra dangtelis, prie kurio pritvirtinta „Nema 17“. Tada „Nema 17“bus įstumtas į sraigto galą, kurį galima pamatyti aukščiau, o varžtas eis į šoną, kad jį laikytų vietoje, kad nesugadintų viršuje esančios skylės!

Tada sraigtas tiesiog išstums maistą iš vamzdžio ir į dubenį!

2 žingsnis: kodo apžvalga

Kodo apžvalga
Kodo apžvalga
Kodo apžvalga
Kodo apžvalga
Kodo apžvalga
Kodo apžvalga

„RTC & Stepper“turi biblioteką „RTClib.h“ir „Stepper.h“, kuri prideda supaprastintą „RTC & Stepper“kodą. Jei teiginiai yra labai paprasti, sakoma, jei valandos ir minutės yra lygi minėtam laikui, jis suks nema, kuri išleis maistą. Likusią kodo dalį labai lengva suprasti net tiems, kurie turi patirties dieną.

3 žingsnis: „Nema 17“pritvirtinimas prie pagrindo plokštės ir sraigto

„Nema 17“tvirtinimas prie pagrindo plokštės ir sraigto
„Nema 17“tvirtinimas prie pagrindo plokštės ir sraigto
„Nema 17“tvirtinimas prie pagrindo plokštės ir sraigto
„Nema 17“tvirtinimas prie pagrindo plokštės ir sraigto
„Nema 17“tvirtinimas prie pagrindo plokštės ir sraigto
„Nema 17“tvirtinimas prie pagrindo plokštės ir sraigto

Pirmiausia turite paimti pagrindo plokštę ir pritvirtinti ją prie „Nema 17“naudodami iš anksto paruoštas skylutes pagrindinėje plokštėje. Kai tai padarysite, norite pritvirtinti sraigtą prie „Nema“naudodami galinę skylę. Tada prijunkite pagrindo plokštę su sraigtu ir pritvirtinta Nema, tada įsukite M2 varžtus į kiekvieną pusę.

4 žingsnis: L298N ir RTC prijungimas

Laidai L298N ir RTC
Laidai L298N ir RTC
Laidai L298N ir RTC
Laidai L298N ir RTC

Šis žingsnis parodys, kaip prijungti L298N ir RTC

Pradėsime nuo 8, 9, 10, 11 kaiščių prie L298N

  • 8 kaištis (baltas) prie IN1
  • 9 kaištis (violetinė) į IN2
  • 10 kaištis (rožinė) iki IN3
  • PIN 11 (geltona) į IN4

Toliau prijungsime „Nema 17“prie „L298N“

  • OUT1 iki 1 NEMA
  • OUT2 iki 2 NEMA
  • OUT3 iki 3 NEMA
  • OUT4 iki 4 NEMA

12v ir „Arduino“prijungimas prie L298N (nepavyko rasti 12V, todėl įsivaizduokite 9V bateriją kaip maitinimą)

  • Voltai iki 12V
  • Žemė iki GND
  • Nuo 5V iki 5V ant duonos lentos

RTC prijungimas prie „Arduino“

  • GND į GND
  • Nuo 5V iki 5V ant duonos lentos
  • SDA - A5
  • SCL į A4

Jumper Pins

Visi jungiamieji kaiščiai turėtų būti L298N

5 žingsnis: kodavimas su komentarais

Kodavimas su komentarais
Kodavimas su komentarais
Kodavimas su komentarais
Kodavimas su komentarais
Kodavimas su komentarais
Kodavimas su komentarais

Aukščiau esančiuose paveikslėliuose kodas aiškesnis

// Vardas: Parkeris Frederikas

// Projekto pavadinimas: Auto Pet Feeder // Data: 2020 m. Lapkričio 10 d., Antradienis // Mokytojas: M. Bonisteel // Aprašymas: Maitinkite savo augintinius nurodytu laiku!

// Liberalai dalykams, kuriuos naudojau #include #include #include "RTClib.h"

RTC_DS1307 rtc; // Sako, ką naudoja RTC

// Čia jūs nustatote maisto laiką

// Valandos int mornFeedTime = 12; int nightFeedTime = 7; // Minutės int mornFeedTimeM = 29; int nightFeedTimeM = 00; // Sekundės int mornFeedTimeS = 20; int nightFeedTimeS = 00;

char daysOfTheWeek [7] [12] = {"Sekmadienis", "Pirmadienis", "Antradienis", "Trečiadienis", "Ketvirtadienis", "Penktadienis", "Šeštadienis"}; // Leidžia įprastoms dienoms virsti savaitės dienomis

const int feed = 200; // Tai yra jūsų veiksmai, taigi kiek kartų norite, kad jis suktųsi

Stepper myStepper (feed, 8, 9, 10, 11); // Jūsų smeigtukai Nema 17 ir daugeliui kitų žingsnių

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

while (! Serial); // Jei RTC neveikia, jis jį parodys serijos ekrane, jei (! Rtc.begin ()) {Serial.println ("Nepavyko rasti RTC"); tuo tarpu (1); }

// Tai parodys, ar veikia realiojo laiko laikrodis, ir parodys jį serijiniame ekrane, jei (! Rtc.isrunning ()) {Serial.println ("RTC veikia!");

rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_))); // Tai užtruks jūsų kompiuterio laiką ir naudos jį RTC

// Jei norite, kad vietoj kompiuterio laiko būtų nustatytas laikas, tai galite padaryti čia //rtc.adjust(DateTime(2020, 10, 29, 8, 28, 0)); // Metai/mėnuo/diena/valanda/minutė/sekundė} myStepper.setSpeed (200); // Greitis, kuriuo norite pasukti}

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

// Tai padarys šiuos kintamuosius tą valandą, kuri yra dabar ir tt int hr = now.hour (); int mi = dabar.minute (); int se = dabar.sekundė ();

// Koduokite taip, kad nustatytu laiku jis išleistų maistą ir jis suktųsi 5 kartus, jei tai būtų rytinis pašaras

if (hr == mornFeedTime && mi == mornFeedTimeM && mornFeedTimeS == se) {Serial.println ("Pusryčiai!"); myStepper.step (-sklaidos kanalas); vėlavimas (700);

myStepper.step (-sklaidos kanalas); vėlavimas (700);

myStepper.step (-sklaidos kanalas); vėlavimas (700);

myStepper.step (-sklaidos kanalas); vėlavimas (700);

myStepper.step (-sklaidos kanalas); vėlavimas (700);

myStepper.step (-sklaidos kanalas); vėlavimas (700);

myStepper.step (-sklaidos kanalas); vėlavimas (700);

}

// Koduokite taip, kad nustatytu laiku jis išleistų maistą ir suktųsi 5 kartus, tai yra naktinis pašaras

if (hr == nightFeedTime && mi == nightFeedTimeM && nightFeedTimeS == se) {Serial.println ("Vakarienė!"); myStepper.step (-sklaidos kanalas); vėlavimas (700);

myStepper.step (-sklaidos kanalas); vėlavimas (700);

myStepper.step (-sklaidos kanalas); vėlavimas (700);

myStepper.step (-sklaidos kanalas); vėlavimas (700);

myStepper.step (-sklaidos kanalas); vėlavimas (700);

myStepper.step (-sklaidos kanalas); vėlavimas (700);

myStepper.step (-sklaidos kanalas); vėlavimas (700); }

// Tai parodys YEAR, MONTH, DAY, HOUR, MINUTE, SECOND

Serijinis atspaudas (dabar.metai (), DEC); Serial.print ('/'); Serijinis atspaudas (dabar. Mėnuo (), DEC); Serial.print ('/'); Serijinis atspaudas (dabar.diena (), DEC); Serial.print ("("); Serial.print (daysOfTheWeek [now.dayOfTheWeek ()]); Serial.print (")"); Serijinis atspaudas (now.hour (), DEC); Serial.print (':'); Serijinis atspaudas (dabar.minutė (), DEC); Serial.print (':'); Serial.print (dabar.second (), DEC); Serial.println (); }

Svetainė, kurią naudojau RTC, ištryniau daugumą dalykų, išskyrus teiginius, kuriuose teigiama, ar RTC įjungtas, ar ne. Aš daugiausia naudojuosi šia svetaine norėdamas sužinoti, kaip programuoti RTC

Svetainė, kurią naudojau „Stepper“varikliui, tai padėjo man suprasti, kaip užprogramuoti žingsnį, kad aš paleisčiau. Tai tiesiog padėjo man suprasti, kaip jį koduoti

6 žingsnis: problemos ir kaip jas išspręsti

Problemos ir kaip jas išspręsti!
Problemos ir kaip jas išspręsti!

Turėjau keletą problemų

  • Man reikėjo 12 V maitinimo šaltinio, aš turėjau tik 9 V bateriją, vieną radau ir ji buvo greitai išspręsta.
  • Kai prijungiau L298N su NEMA 17, A ir A laidai buvo netinkami, todėl jis šiek tiek drebėjo. Aš tai tiesiog pataisiau, pakeisdamas laidus kitu būdu.
  • Bandė kodą padaryti paprastesnį, nes if teiginyje myStepper.step (-feed); vėl ir vėl atrodė netvarkingai. Taigi turėjau jį pakeisti atgal.
  • Turėjau netinkamo dydžio pagrindo plokštę, kaip parodyta paveikslėlyje, todėl turėjau šiek tiek 3D atspausdinti naują ir ji puikiai tiko!
  • Mano problema yra tai, kad jis užstringa, nes sraigtas yra per mažas, todėl jį užstringa paprastas būdas, kurį galiu išspręsti, yra nedidelis sraigto padidinimas!

Rekomenduojamas: