Բովանդակություն:

Ավտոմատ շների սնուցիչ ՝ 6 քայլ
Ավտոմատ շների սնուցիչ ՝ 6 քայլ

Video: Ավտոմատ շների սնուցիչ ՝ 6 քայլ

Video: Ավտոմատ շների սնուցիչ ՝ 6 քայլ
Video: Your Doctor Is Wrong About Cholesterol 2024, Նոյեմբեր
Anonim
Շների ավտոմատ սնուցիչ
Շների ավտոմատ սնուցիչ

Սա իմ ընտանի կենդանիների սնուցողի նախագիծն է: Իմ անունը Պարկեր է, ես 11 -րդ դասարանում եմ, և այս նախագիծը ես պատրաստել եմ 2020 թվականի նոյեմբերի 11 -ին ՝ որպես CCA (Դասընթացի կուլմինացիոն գործունեություն) այս նախագծում, ես ձեզ ցույց կտամ, թե ինչպես կարելի է ընտանի կենդանիների ավտոմատ սնուցող սարք պատրաստել Arduino UNO- ի հետ: Դուք կարող եք ընտրել այն ժամանակը, որը կարող եք փոխել: Սնունդը կտրվի մաղիչի միջոցով և կկերակրի ձեր ընտանի կենդանիներին:

Պարագաներ

Էլեկտրոնիկա:

  • Arduino UNO
  • L298N - 10 $ - Վերահսկում է Nema 17 -ը
  • NEMA 17 - 10 $
  • RTC (DS1307) - 10 $ - ivesամանակ է տալիս
  • 12 Վ էլեկտրամատակարարում - 5 $ - հզորացնում է ամեն ինչ
  • Mini Breadboard - էլեկտրագծերի լրացուցիչ տարածքի համար
  • Jumper Wires - միացնում է ամեն ինչ
  • Իգականից արական լարեր - Միացնում է ամեն ինչ

Սարքավորումներ:

  • 3D տպման թել - 3D տպիչի համար
  • 2 M4 պտուտակներ - պահեք հիմքի ափսեը տեղում
  • 4 Nema 17 պտուտակ - Նեման ներքև պահեք
  • PVC T 48mm ներքին չափս 66mm արտաքին հարթություն - 3 $

Գործիքներ:

  • 3D տպիչ
  • Գայլիկոն
  • Oldոդման ատրճանակ

Քայլ 1: Դիզայնի ակնարկ

Դիզայնի ակնարկ
Դիզայնի ակնարկ
Դիզայնի ակնարկ
Դիզայնի ակնարկ
Դիզայնի ակնարկ
Դիզայնի ակնարկ
Դիզայնի ակնարկ
Դիզայնի ակնարկ

Կենդանիների սնուցողի դիզայնը շատ պարզ է: Բուփը մտնում է PVC T.- ի գագաթը: Այնուհետև ծածկը անցնում է PVC T- ի հետևի մասում (ինչպես ցույց է տրված նկարում), որին ամրացված է Nema 17 -ը: Այնուհետև Nema 17 -ը կմղվի դեպի վերևում երևացող Auger- ի հետևը, իսկ պտուտակն այն կողմը կընկնի ՝ այն տեղում պահելու համար, որպեսզի այն չդեֆորմացնի վերևում երևացող անցքը:

Այնուհետև խոզապուխտը սնունդը խողովակից դուրս է մղելու և ամանի մեջ:

Քայլ 2: Կոդի ակնարկ

Կոդի ակնարկ
Կոդի ակնարկ
Կոդի ակնարկ
Կոդի ակնարկ
Կոդի ակնարկ
Կոդի ակնարկ

RTC & The stepper- ն ունի libary անունով RTClib.h և Stepper.h, որը ավելացնում է պարզեցված ծածկագիր RTC և Stepper- ի համար: Եթե հայտարարությունները շատ պարզ են, ապա այն ասում է, եթե ժամը և րոպեները հավասար են նշված ժամանակին, այն կշրջի նեման, որը կբաժանի սնունդը: Մնացած ծածկագիրը շատ հեշտ է հասկանալ նույնիսկ մեկօրյա փորձ ունեցող մեկի համար:

Քայլ 3. Nema 17 -ը կցելով Base Plate & Auger- ին

Nema 17 -ը կցելով Base Plate & Auger- ին
Nema 17 -ը կցելով Base Plate & Auger- ին
Nema 17 -ը կցելով Base Plate & Auger- ին
Nema 17 -ը կցելով Base Plate & Auger- ին
Nema 17 -ը կցելով Base Plate & Auger- ին
Nema 17 -ը կցելով Base Plate & Auger- ին

Սկզբում ցանկանում եք վերցնել ձեր հիմքի ափսեն և ամրացնել այն ձեր Nema 17 -ին ՝ օգտագործելով հիմքի ափսեի վրա նախապես պատրաստված անցքերը: Ավարտելուց հետո դուք ցանկանում եք կցորդիչը կցել Nema- ին ՝ օգտագործելով դրա հետևի անցքը: Այնուհետև միացրեք Հիմքի ափսեը պտուտակով և կցված Nema- ով, այնուհետև պտուտակացրեք M2 պտուտակները յուրաքանչյուր կողմի մեջ:

Քայլ 4. Լարերի տեղադրում L298N և RTC

Հաղորդալարեր L298N & RTC
Հաղորդալարեր L298N & RTC
Հաղորդալարեր L298N & RTC
Հաղորդալարեր L298N & RTC

Այս քայլը ձեզ կասի, թե ինչպես միացնել L298N և RTC- ը

Մենք կսկսենք L298N- ի 8, 9, 10, 11 կապում

  • Պին 8 (Սպիտակ) դեպի IN1
  • 9 -րդ կապույտ (մանուշակագույն) դեպի IN2
  • Կցեք 10 (վարդագույն) IN3- ին
  • PIN 11 (դեղին) մինչև IN4

Հաջորդը մենք կկապենք Nema 17 -ը L298N- ին

  • OUT1- ից 1 -ը NEMA- ով
  • OUT2- ից 2 -ը NEMA- ով
  • OUT3 -ից 3 -ը NEMA- ով
  • OUT4- ից 4 -ը NEMA- ով

12v- ն և Arduino- ն միացնելով L298N- ին (Չհաջողվեց գտնել 12 Վ, այնպես որ պատկերացրեք 9 Վ մարտկոցը որպես էներգիա)

  • Վոլտ մինչև 12 Վ
  • Ground to GND
  • 5V- ից 5V- ը Breadboard- ում

RTC- ի միացում Arduino- ին

  • GND- ից GND
  • 5V- ից 5V- ը Breadboard- ում
  • SDA- ից A5
  • SCL- ից A4

Jumper կապում

Ենթադրվում է, որ բոլոր թռչկոտող կապիչները գտնվում են L298N- ում

Քայլ 5: Կոդավորում մեկնաբանություններով

Կոդավորում մեկնաբանություններով
Կոդավորում մեկնաբանություններով
Կոդավորում մեկնաբանություններով
Կոդավորում մեկնաբանություններով
Կոդավորում մեկնաբանություններով
Կոդավորում մեկնաբանություններով

Կոդն ավելի հստակ է վերևի պատկերներում:

// Անուն ՝ Պարկեր Ֆրեդերիկ

// Նախագծի անվանումը ՝ Auto Pet Feeder // Ամսաթիվ ՝ երեքշաբթի, 10 նոյեմբերի 2020 // Ուսուցիչ ՝ M. Bonisteel // Desc. Կերակրեք ձեր ընտանի կենդանիներին նշված ժամին:

// Գրադարաններ այն բաների համար, որոնք ես օգտագործել եմ #ներառել #ներառել #ներառել «RTClib.h»

RTC_DS1307 rtc; // Ասում է, թե ինչ RTC- ն եմ օգտագործում

// Այստեղ դուք սահմանում եք սննդի ժամանակը

// Hours int mornFeedTime = 12; int nightFeedTime = 7; // րոպեներ mornFeedTimeM = 29; int nightFeedTimeM = 00; // վայրկյաններ int mornFeedTimeS = 20; int nightFeedTimeS = 00;

char daysOfTheWeek [7] [12] = {"կիրակի", "երկուշաբթի", "երեքշաբթի", "Wedsneday", "Thursday", "Friday", "Saturday"}; // Նորմալ օրերը դարձնում է շաբաթվա օրեր

const int feed = 200; // Սա ձեր քայլերն են, քանի անգամ եք ուզում, որ այն պտտվի

Stepper myStepper (հոսք, 8, 9, 10, 11); // Ձեր քորոցները Nema 17 -ի և շատ այլ քեռիների համար

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

իսկ (! Սերիա); // Եթե RTC- ն չի աշխատում, այն կցուցադրի սերիական էկրանին, եթե (! Rtc.begin ()) {Serial.println ("Չհաջողվեց գտնել RTC"); մինչդեռ (1); }

// Սա ձեզ կասի ՝ իրական ժամանակի ժամացույցն աշխատում է, թե ոչ, և այն կցուցադրի սերիական էկրանին, եթե (! Rtc.isrunning ()) {Serial.println ("RTC is running!");

rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_))); // Սա ձեր համակարգչից ժամանակ կպահանջի և կօգտագործի RTC- ում

// Եթե ցանկանում եք ունենալ որոշակի ժամանակ համակարգչի փոխարեն, կարող եք դա անել այստեղ //rtc.adjust(DateTime(2020, 10, 29, 8, 28, 0)); // Տարի/ամիս/օր/ժամ/րոպե/վայրկյան} myStepper.setSpeed (200); // Արագություն, որը ցանկանում եք, որ այն շրջվի}

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

// Սա կդարձնի դրանք փոփոխական այն ժամվա ընթացքում, և այլն int int hr = now.hour (); int mi = այժմ. րոպե (); int se = այժմ. երկրորդ ();

// Կոդավորեք այնպես, որ սահմանված ժամին այն կտրամադրի սնունդը և այն 5 անգամ պտտվելու է, սա եթե առավոտյան կերակրման համար

եթե (hr == mornFeedTime && mi == mornFeedTimeM && mornFeedTimeS == se) {Serial.println («Նախաճաշ»); myStepper.step (-կեր); ուշացում (700);

myStepper.step (-կեր); ուշացում (700);

myStepper.step (-կեր); ուշացում (700);

myStepper.step (-կեր); ուշացում (700);

myStepper.step (-կեր); ուշացում (700);

myStepper.step (-կեր); ուշացում (700);

myStepper.step (-կեր); ուշացում (700);

}

// Կոդավորեք այնպես, որ սահմանված ժամին այն կտրամադրի սնունդը և այն 5 անգամ պտտվելու է, սա գիշերային կերակրման համար է

եթե (hr == nightFeedTime && mi == nightFeedTimeM && nightFeedTimeS == se) {Serial.println («Ընթրիք»); myStepper.step (-կեր); ուշացում (700);

myStepper.step (-կեր); ուշացում (700);

myStepper.step (-կեր); ուշացում (700);

myStepper.step (-կեր); ուշացում (700);

myStepper.step (-կեր); ուշացում (700);

myStepper.step (-կեր); ուշացում (700);

myStepper.step (-կեր); ուշացում (700); }

// Սա սերիայում կցուցադրի ՏԱՐԻԸ, ԱՄՍԸ, ՕՐԸ, OԱՄԸ, ՐՈUՅՍԸ, ԵՐԿՐՈՐԴԸ

Serial.print (այժմ. Տարի (), DEC); Serial.print ('/'); Serial.print (այժմ. Ամիս (), DEC); Serial.print ('/'); Serial.print (այժմ. Օր (), DEC); Serial.print ("("); Serial.print (daysOfTheWeek [now.dayOfTheWeek ()]); Serial.print (")"); Serial.print (այժմ. Ժամ (), DEC); Serial.print (':'); Serial.print (այժմ. Րոպե (), DEC); Serial.print (':'); Serial.print (այժմ. Երկրորդ (), DEC); Serial.println (); }

Վեբ կայք, որն օգտագործել եմ RTC- ի համար, ես ջնջել եմ այլ բաներ, քան այն հայտարարությունները, որոնք նշում են, որ RTC- ը միացված է, թե ոչ: Ես հիմնականում օգտագործում էի այս կայքը `սովորելու, թե ինչպես ծրագրավորել RTC- ն:

Վեբ կայք, որը ես օգտագործել եմ Stepper motor- ի համար: Սա ինձ օգնեց հասկանալ, թե ինչպես ծրագրավորել stepper- ը գործարկել: Ես իրականում ոչինչ չեմ պահում դրանից: Դա պարզապես օգնեց ինձ հասկանալ, թե ինչպես պետք է այն ծածկագրել:

Քայլ 6: Խնդիրներ և ինչպես դրանք շտկեցի:

Խնդիրներ և ինչպես դրանք շտկեցի
Խնդիրներ և ինչպես դրանք շտկեցի

Մի քանի խնդիր ունեի

  • Ինձ անհրաժեշտ էր 12 վ էլեկտրամատակարարում, ես ունեի միայն 9 վ մարտկոց, ես գտա մեկը և այն արագ լուծվեց:
  • Երբ L298N- ը NEMA 17-ով կապելիս ես սխալ ունեի A և A- լարերը, ինչը մի փոքր ցնցեց: Ես պարզապես այն ուղղեցի ՝ լարերը այլ կերպ փոխելով:
  • Փորձեց կոդն ավելի պարզ դարձնել, քանի որ if հայտարարության մեջ myStepper.step (-feed); անընդհատ խառնաշփոթ տեսք ուներ: Այսպիսով, ես ստիպված էի այն հետ փոխել:
  • Ես ունեի սխալ չափի բազայի ափսե, ինչպես երևում է նկարում, այնպես որ ես ստիպված էի մի փոքր 3D տպել նորը, և այն կատարյալ տեղավորվեց:
  • Խնդիրս այն է, որ դա խցանում է, քանի որ մաղիչը փոքր է, այնպես որ այն խցանում է: Ես կարող եմ շտկել այն:

Խորհուրդ ենք տալիս: