Përmbajtje:

Ushqyesi i qenve automatik: 6 hapa
Ushqyesi i qenve automatik: 6 hapa

Video: Ushqyesi i qenve automatik: 6 hapa

Video: Ushqyesi i qenve automatik: 6 hapa
Video: Автоматическая кормушка для кошек и собак. Автокормушка Automatic Pet Feeder 4PLDH5001 с таймером. 2024, Korrik
Anonim
Ushqyes automatik i qenve
Ushqyes automatik i qenve

Ky është projekti im i një Auto Feeder Pet. Emri im është Parker unë jam në Klasën 11 dhe e bëra këtë projekt më 11 Nëntor 2020 si CCA (Aktivitet Kulminues i Kursit) në këtë projekt do t'ju tregoj se si të bëni një Ushqyes Automatik të Kafshëve me Arduino UNO. Ju mund të zgjidhni një kohë të cilën mund ta ndryshoni. Ushqimi do të shpërndahet përmes një auger dhe do të ushqejë kafshët tuaja shtëpiake!

Furnizimet

Elektronikë:

  • Arduino UNO
  • L298N - 10 $ - Kontrollon Nema 17
  • NEMA 17 - 10 $ - Kthen enën në mënyrë që ushqimi të shpërndahet
  • RTC (DS1307) - 10 $ - Jep kohën
  • Furnizimi me energji 12V - 5 $ - Fuqizon gjithçka
  • Mini Breadboard - Për hapësirë shtesë të instalimeve elektrike
  • Telat Jumper - Lidh gjithçka
  • Telat femra në meshkuj - Lidh gjithçka

Hardware:

  • Filament i printimit 3D - për printerin 3D
  • 2 bulona M4 - Mbajeni pllakën bazë në vend
  • 4 Nema 17 bulona - Mbajeni nema poshtë
  • PVC T 48mm dimensioni i brendshëm 66mm dimensioni i jashtëm - 3 $

Mjetet:

  • Printer 3D
  • Stërvitje
  • Armë bashkuese

Hapi 1: Pasqyrë e Dizajnit

Pasqyrë e Dizajnit
Pasqyrë e Dizajnit
Pasqyrë e Dizajnit
Pasqyrë e Dizajnit
Pasqyrë e Dizajnit
Pasqyrë e Dizajnit
Pasqyrë e Dizajnit
Pasqyrë e Dizajnit

Dizajni i ushqyesit të kafshëve është shumë i thjeshtë. Një plesht shkon në pjesën e sipërme të PVC T. Pastaj një kapak shkon në pjesën e pasme të PVC T (siç tregohet në foto) me Nema 17 të bashkangjitur në të. Atëherë Nema 17 do të shtyhet në pjesën e pasme të Auger -it i cili mund të shihet më sipër dhe një rrufe në qiell do të futet në anën për ta mbajtur atë në vend në mënyrë që të mos deformojë vrimën që mund të shihet më sipër!

Atëherë auger thjesht do ta shtyjë ushqimin nga tubi dhe në një tas!

Hapi 2: Pasqyrë e Kodit

Pasqyrë e Kodit
Pasqyrë e Kodit
Pasqyrë e Kodit
Pasqyrë e Kodit
Pasqyrë e Kodit
Pasqyrë e Kodit

RTC & Stepper kanë një libar të quajtur RTClib.h dhe Stepper.h i cili shton kod të thjeshtuar për RTC & Stepper. Thëniet nëse janë shumë të thjeshta thënia e saj nëse ora dhe minutat janë të barabarta me kohën e thënë do të rrotullojë nema e cila do të shpërndajë ushqimin. Pjesa tjetër e kodit është shumë e lehtë për tu kuptuar edhe për dikë me një ditë përvojë.

Hapi 3: Bashkimi i Nema 17 në Pjatë Bazë dhe Auger

Lidhja e Nema 17 në Pjatë Bazë dhe Auger
Lidhja e Nema 17 në Pjatë Bazë dhe Auger
Lidhja e Nema 17 në Pjatë Bazë dhe Auger
Lidhja e Nema 17 në Pjatë Bazë dhe Auger
Lidhja e Nema 17 në Pjatë Bazë dhe Auger
Lidhja e Nema 17 në Pjatë Bazë dhe Auger

Së pari ju doni të merrni pjatën tuaj bazë dhe ta lidhni me Nema 17 tuaj duke përdorur vrimat e paravendosura në pllakën bazë. Pasi të keni mbaruar, ju doni të lidhni auger në Nema duke përdorur vrimën e pasme në të. Pastaj lidhni pllakën Bazë me gropën dhe Nema të bashkangjitur, pastaj vidhosni bulonat M2 në secilën anë.

Hapi 4: Lidhja L298N & RTC

Instalime L298N & RTC
Instalime L298N & RTC
Instalime L298N & RTC
Instalime L298N & RTC

Ky hap do t'ju tregojë se si të lidhni L298N & RTC

Ne do të fillojmë me kunjat 8, 9, 10, 11 në L298N

  • Kunja 8 (e bardhë) në IN1
  • Kunja 9 (Vjollcë) në IN2
  • Pin 10 (Pink) në IN3
  • PIN 11 (e verdhë) në IN4

Tjetra ne do të lidhim Nema 17 me L298N

  • OUT1 me 1 në NEMA
  • OUT2 deri në 2 në NEMA
  • Nga 3 në 3 në NEMA
  • OUT4 deri në 4 në NEMA

Lidhja e 12v dhe Arduino me L298N (Nuk mund të gjej 12V, kështu që imagjinoni baterinë 9V si fuqi)

  • Volt në 12V
  • Toka në GND
  • 5V në 5V në Breadboard

Lidhja e RTC me Arduino

  • GND në GND
  • 5V në 5V në Breadboard
  • SDA në A5
  • SCL në A4

Kunjat e kërcyesit

Të gjitha kunjat e kërcyesit supozohet të jenë në L298N

Hapi 5: Kodimi me Komente

Kodimi me Komente
Kodimi me Komente
Kodimi me Komente
Kodimi me Komente
Kodimi me Komente
Kodimi me Komente

Kodi më i qartë në imazhet e mësipërme

// Emri: Parker Frederick

// Emri i projektit: Ushqyesi i kafshëve shtëpiake // Data: E martë, 10 nëntor 2020 // Mësues: M. Bonisteel // Përshkrimi: Ushqeni kafshët tuaja në kohën e thënë!

// Libraret për gjërat që kam përdorur #përfshi #përfshi #përfshi "RTClib.h"

RTC_DS1307 rtc; // Thotë atë që po përdor RTC

// Këtu vendosni kohën për ushqimin

// Orari në mëngjesFeedTime = 12; int nightFeedTime = 7; // Minuta int mornFeedTimeM = 29; int nightFeedTimeM = 00; // Sekonda int mornFeedTimeS = 20; int nightFeedTimeS = 00;

char daysOfTheWeek [7] [12] = {"E Diel", "E Hënë", "E Martë", "Wedsneday", "E Enjte", "E Premte", "E Shtune"}; // Bën që ditët normale të kthehen në ditët e javës

const int feed = 200; // Këto janë hapat tuaj sa herë që dëshironi që të rrotullohet

Stepper myStepper (ushqim, 8, 9, 10, 11); // Kunjat tuaja për Nema 17 dhe shumicën e njerkave të tjerë

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

ndërsa (! Serial); // Nëse RTC nuk po punon do ta shfaq atë në ekranin serik nëse (! Rtc.begin ()) {Serial.println ("Nuk mund të gjej RTC"); ndërsa (1); }

// Kjo do t'ju tregojë nëse Ora Real Time po funksionon ose jo dhe do ta shfaq atë në ekranin serik nëse (! Rtc.isrunning ()) {Serial.println ("RTC po funksionon!");

rtc.adjust (DataTime (F (_ DATE_), F (_ TIME_))); // Kjo do të marrë kohë në kompjuterin tuaj dhe do ta përdorë atë në RTC

// Nëse dëshironi të keni një kohë të caktuar në vend të kohës së kompjuterit, mund ta bëni këtu //rtc.adjust(DateTime(2020, 10, 29, 8, 28, 0)); // Viti/Muaji/Dita/Ora/Minuta/E dyta} myStepper.setSpeed (200); // Shpejtësia që dëshironi të kthehet në}

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

// Kjo do t'i bëjë këto ndryshore në orën që është tani, etj int hr = tani. Orë (); int mi = tani.minute (); int se = tani.sekonda ();

// Kodoni kështu që në kohën e caktuar do të shpërndajë ushqimin dhe do të rrotullohet 5 herë, kjo nëse është për ushqimin e mëngjesit

if (hr == mornFeedTime && mi == mornFeedTimeM && mornFeedTimeS == se) {Serial.println ("Mëngjesi!"); myStepper.step (-ushqim); vonesa (700);

myStepper.step (-ushqim); vonesa (700);

myStepper.step (-ushqim); vonesa (700);

myStepper.step (-ushqim); vonesa (700);

myStepper.step (-ushqim); vonesa (700);

myStepper.step (-ushqim); vonesa (700);

myStepper.step (-ushqim); vonesa (700);

}

// Kodoni kështu që në kohën e caktuar do të shpërndajë ushqimin dhe do të rrotullohet 5 herë, kjo është për ushqimin e natës

if (hr == nightFeedTime && mi == nightFeedTimeM && nightFeedTimeS == se) {Serial.println ("Darka!"); myStepper.step (-ushqim); vonesa (700);

myStepper.step (-ushqim); vonesa (700);

myStepper.step (-ushqim); vonesa (700);

myStepper.step (-ushqim); vonesa (700);

myStepper.step (-ushqim); vonesa (700);

myStepper.step (-ushqim); vonesa (700);

myStepper.step (-ushqim); vonesa (700); }

// Kjo do të shfaqë VITIN, MUAIN, DITN, ORON, MINUTE, TEC DYT në serial

Serial.print (tani.viti (), DEC); Serial.print ('/'); Serial.print (tani.muaj (), DEC); Serial.print ('/'); Serial.print (tani.ditë (), DEC); Serial.print ("("); Serial.print (daysOfTheWeek [tani.dayOfTheWeek ()]); Serial.print (")"); Serial.print (tani. Orë (), DEC); Serial.print (':'); Serial.print (tani.minute (), DEC); Serial.print (':'); Serial.print (tani. E dyta (), DEC); Serial.println (); }

Faqja e internetit që kam përdorur për RTC I fshiva shumicën e gjërave të tjera përveç deklaratave nëse thonë nëse RTC është ose jo e ndezur ose jo. Kryesisht e kam përdorur këtë faqe interneti për të mësuar se si të programoj RTC

Faqja e internetit që kam përdorur për motorin Stepper kjo më ndihmoi të kuptoj se si të programoj hapin për të kandiduar, me të vërtetë nuk kam mbajtur asgjë prej tij. Thjesht më ndihmoi të kuptoja se si ta kodoja

Hapi 6: Problemet dhe si i rregullova ato

Problemet dhe si i rregulloj ato!
Problemet dhe si i rregulloj ato!

Disa probleme që kisha

  • Kisha nevojë për furnizim me energji 12v, kisha vetëm bateri 9v gjeta një dhe u zgjidh shpejt.
  • Kur lidhesha L298N me NEMA 17 kisha telat gabim në A dhe A- gjë që e bëri atë të dridhej pak. Unë thjesht e rregullova atë duke ndryshuar telat në anën tjetër.
  • U përpoq të bënte kodin më të thjeshtë sepse në deklaratën if myStepper.step (-furnizo); pa pushim dukej e çrregullt. Kështu që më duhej ta ndryshoja përsëri.
  • Unë kisha pjatën bazë të madhësisë së gabuar siç shihet në foto, kështu që më duhej të printoja 3D një të re pak dhe ajo i përshtatej perfekte!
  • Problemi që kam është ai i bllokimit meqenëse gryka është e vogël kështu që bllokohet Mënyra e thjeshtë që unë mund ta rregulloj është duke e zmadhuar augerin në një sasi të vogël!

Recommended: