Satura rādītājs:

Auto suņu padevējs: 6 soļi
Auto suņu padevējs: 6 soļi

Video: Auto suņu padevējs: 6 soļi

Video: Auto suņu padevējs: 6 soļi
Video: Автомобильный генератор для генератора с самовозбуждением с использованием ДИОДА 2024, Jūlijs
Anonim
Auto suņu barotava
Auto suņu barotava

Šis ir mans Auto Pet Feeder projekts. Mani sauc Pārkers, es esmu 11. klasē, un es izveidoju šo projektu 2020. gada 11. novembrī kā CCA (Course Culminating Activity) šajā projektā, un es jums parādīšu, kā izveidot automātisku mājdzīvnieku barotavu ar Arduino UNO. Jūs varat izvēlēties laiku, kuru varat mainīt. Ēdiens tiks izsniegts caur gliemezi un pabaros jūsu mājdzīvniekus!

Piegādes

Elektronika:

  • Arduino UNO
  • L298N - 10 $ - kontrolē Nema 17
  • NEMA 17 - 10 $ - pagriež gliemežvāku, lai ēdiens izdalītos
  • RTC (DS1307) - 10 $ - dod laiku
  • 12 V barošanas avots - 5 $ - nodrošina visu
  • Mini maizes dēlis - papildu elektroinstalācijas vietai
  • Džemperu vadi - savieno visu
  • Vadi no sievietes līdz vīrietim - savieno visu

Aparatūra:

  • 3D drukas pavediens - 3D printerim
  • 2 M4 skrūves - turiet pamatplāksni vietā
  • 4 Nema 17 skrūves - turiet nema uz leju
  • PVC T 48mm iekšējais izmērs 66mm ārējais izmērs - 3 $

Rīki:

  • 3D printeris
  • Urbis
  • Lodēšanas lielgabals

1. darbība: dizaina pārskats

Dizaina pārskats
Dizaina pārskats
Dizaina pārskats
Dizaina pārskats
Dizaina pārskats
Dizaina pārskats
Dizaina pārskats
Dizaina pārskats

Mājdzīvnieku barotavas dizains ir ļoti vienkāršs. Uzpildes tvertne iet uz PVC T augšdaļas. Tad PVC T aizmugurē iet vāks (kā parādīts attēlā) ar Nema 17. Pēc tam Nema 17 tiks iebīdīts gliemeža aizmugurē, ko var redzēt augšā, un skrūve ieslēgsies sānos, lai to noturētu vietā, lai tas nedeformētu caurumu, kas redzams iepriekš!

Tad gliemežvāks vienkārši izspiedīs ēdienu no caurules un bļodā!

2. darbība. Koda pārskats

Koda pārskats
Koda pārskats
Koda pārskats
Koda pārskats
Koda pārskats
Koda pārskats

RTC & Stepper ir bibliotēka ar nosaukumu RTClib.h un Stepper.h, kas pievieno vienkāršotu kodu RTC & Stepper. Ja apgalvojumi ir ļoti vienkārši, tiek teikts, ja stunda un minūtes ir vienādas ar minēto laiku, tas pagriezīs nema, kas izdalīs ēdienu. Pārējais kods ir ļoti viegli saprotams pat kādam, kam ir dienas pieredze.

3. darbība: Nema 17 piestiprināšana pie pamatplāksnes un gliemeža

Nema 17 piestiprināšana pie pamatplāksnes un gliemeža
Nema 17 piestiprināšana pie pamatplāksnes un gliemeža
Nema 17 piestiprināšana pie pamatplāksnes un gliemeža
Nema 17 piestiprināšana pie pamatplāksnes un gliemeža
Nema 17 piestiprināšana pie pamatplāksnes un gliemeža
Nema 17 piestiprināšana pie pamatplāksnes un gliemeža

Vispirms vēlaties paņemt pamatplāksni un piestiprināt to pie Nema 17, izmantojot iepriekš izgatavotos caurumus uz pamatnes. Kad tas ir izdarīts, vēlaties pievienot gliemežvāku Nema, izmantojot aizmugurējo caurumu. Pēc tam savienojiet pamatplāksni ar pievienoto gliemežvāku un Nema, pēc tam ieskrūvējiet M2 skrūves katrā pusē.

4. darbība: L298N un RTC vadu savienošana

Elektroinstalācija L298N un RTC
Elektroinstalācija L298N un RTC
Elektroinstalācija L298N un RTC
Elektroinstalācija L298N un RTC

Šis solis jums pateiks, kā pieslēgt L298N un RTC

Mēs sāksim ar L298N tapām 8, 9, 10, 11

  • 8. tapa (balta) līdz IN1
  • Piespraude 9 (violeta) līdz IN2
  • Piespraude 10 (rozā) līdz IN3
  • PIN 11 (dzeltens) līdz IN4

Tālāk mēs savienosim Nema 17 ar L298N

  • OUT1 līdz 1 uz NEMA
  • OUT2 līdz 2 uz NEMA
  • OUT3 līdz 3 uz NEMA
  • OUT4 līdz 4 uz NEMA

12v un Arduino savienošana ar L298N (nevarēja atrast 12V, tāpēc iedomājieties 9V akumulatoru kā strāvu)

  • Volti līdz 12 V.
  • Zeme līdz GND
  • 5V līdz 5V uz maizes dēļa

RTC savienošana ar Arduino

  • GND līdz GND
  • 5V līdz 5V uz maizes dēļa
  • SDA līdz A5
  • SCL līdz A4

Jumper Pins

Visām džemperu tapām vajadzētu būt uz L298N

5. darbība. Kodēšana ar komentāriem

Kodēšana ar komentāriem
Kodēšana ar komentāriem
Kodēšana ar komentāriem
Kodēšana ar komentāriem
Kodēšana ar komentāriem
Kodēšana ar komentāriem

Iepriekš attēlos kods ir skaidrāks

// Vārds: Pārkers Frederiks

// Projekta nosaukums: Auto Pet Feeder // Datums: Otrdiena, 2020. gada 10. novembris // Skolotājs: M. Bonisteel // Apraksts: Barojiet savus mājdzīvniekus norādītajā laikā!

// Libāri par lietām, kuras es izmantoju #include #include #include "RTClib.h"

RTC_DS1307 rtc; // Saka, ko izmanto RTC

// Šeit jūs iestatāt ēdienu laiku

// Stundas int mornFeedTime = 12; int nightFeedTime = 7; // Minūtes int mornFeedTimeM = 29; int nightFeedTimeM = 00; // Sekundes int mornFeedTimeS = 20; int nightFeedTimeS = 00;

ogļu dienasOfTheWeek [7] [12] = {"svētdiena", "pirmdiena", "otrdiena", "trešdiena", "ceturtdiena", "piektdiena", "sestdiena"}; // Liek parastajām dienām pārvērsties par nedēļas dienām

const int barība = 200; // Šīs ir jūsu darbības, tāpēc cik reizes vēlaties, lai tā griežas

Stepper myStepper (plūsma, 8, 9, 10, 11); // Jūsu tapas Nema 17 un vairumam citu steperu

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

kamēr (! Seriāls); // Ja RTC nedarbojas, tas to parādīs sērijas ekrānā, ja (! Rtc.begin ()) {Serial.println ("Nevarēja atrast RTC"); kamēr (1); }

// Tas jums pateiks, vai reāllaika pulkstenis darbojas vai nē, un tas to parādīs sērijas ekrānā, ja (! Rtc.isrunning ()) {Serial.println ("RTC darbojas!");

rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_))); // Tas aizņems jūsu datora laiku un izmantos to RTC

// Ja vēlaties, lai datora laika vietā būtu noteikts laiks, to varat izdarīt šeit //rtc.adjust(DateTime(2020, 10, 29, 8, 28, 0)); // Gads/Mēnesis/Diena/Stunda/Minūte/Sekunde} myStepper.setSpeed (200); // Ātrums, kādā vēlaties pagriezties}

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

// Tas padarīs šos mainīgos par pašreizējo stundu utt. Int hr = now.hour (); int mi = tagad.minūte (); int se = tagad.second ();

// Kodējiet, lai noteiktā laikā tas izdalītu ēdienu, un tas grieztos 5 reizes, ja tas ir paredzēts rīta barošanai

if (hr == mornFeedTime && mi == mornFeedTimeM && mornFeedTimeS == se) {Serial.println ("Brokastis!"); myStepper.step (-padeve); kavēšanās (700);

myStepper.step (-padeve); kavēšanās (700);

myStepper.step (-padeve); kavēšanās (700);

myStepper.step (-padeve); kavēšanās (700);

myStepper.step (-padeve); kavēšanās (700);

myStepper.step (-padeve); kavēšanās (700);

myStepper.step (-padeve); kavēšanās (700);

}

// Kodējiet, lai noteiktā laikā tas izdalītu ēdienu un tas grieztos 5 reizes, tas ir paredzēts nakts barošanai

if (hr == nightFeedTime && mi == nightFeedTimeM && nightFeedTimeS == se) {Serial.println ("Vakariņas!"); myStepper.step (-padeve); kavēšanās (700);

myStepper.step (-padeve); kavēšanās (700);

myStepper.step (-padeve); kavēšanās (700);

myStepper.step (-padeve); kavēšanās (700);

myStepper.step (-padeve); kavēšanās (700);

myStepper.step (-padeve); kavēšanās (700);

myStepper.step (-padeve); kavēšanās (700); }

// Sērijā tiks parādīts YEAR, MONTH, DAY, HOUR, MINUTE, SECOND

Sērijas nospiedums (tagad.gads (), DEC); Serial.print ('/'); Serial.print (tagad.mēnesis (), DEC); Serial.print ('/'); Sērijas nospiedums (tagad.diena (), DEC); Serial.print ("("); Serial.print (daysOfTheWeek [now.dayOfTheWeek ()]); Serial.print (")"); Sērijas nospiedums (tagad.stunda (), DEC); Serial.print (':'); Sērijas nospiedums (tagad.minūte (), DEC); Serial.print (':'); Sērijas nospiedums (tagad.second (), DEC); Sērijas.println (); }

Vietne, kuru izmantoju RTC, es izdzēsu lielāko daļu citu lietu, izņemot paziņojumus, kuros teikts, vai RTC ir ieslēgts vai izslēgts. Es galvenokārt izmantoju šo vietni, lai uzzinātu, kā programmēt RTC

Tīmekļa vietne, ko izmantoju Stepper motoram, palīdzēja man saprast, kā programmēt stepperu, lai es to palaistu. Tas tikai palīdzēja man saprast, kā to kodēt

6. darbība. Problēmas un to novēršana

Problēmas un kā tās novērst!
Problēmas un kā tās novērst!

Man bija dažas problēmas

  • Man vajadzēja 12 V barošanas avotu, man bija tikai 9 V akumulators, kuru es atradu, un tas tika ātri atrisināts.
  • Pieslēdzot L298N ar NEMA 17, man bija nepareizi vadi uz A un A-, kas padarīja to mazliet nervozu. Es to vienkārši novērsu, nomainot vadus citā veidā.
  • Mēģināja padarīt kodu vienkāršāku, jo if paziņojumā myStepper.step (-feed); atkal un atkal izskatījās nekārtīgi. Tāpēc man tas bija jāmaina atpakaļ.
  • Man bija nepareiza izmēra pamatplāksne, kā redzams attēlā, tāpēc man nācās nedaudz izdrukāt jaunu, un tas derēja perfekti!
  • Man ir tāda problēma, ka tas ir iestrēdzis, jo gliemežvāks ir pārāk mazs, tāpēc tas var iestrēgt vienkāršā veidā, kā es varu to novērst, palielinot gliemežvāku.

Ieteicams: