Სარჩევი:

ძაღლის ავტომატური მიმწოდებელი: 6 ნაბიჯი
ძაღლის ავტომატური მიმწოდებელი: 6 ნაბიჯი

ვიდეო: ძაღლის ავტომატური მიმწოდებელი: 6 ნაბიჯი

ვიდეო: ძაღლის ავტომატური მიმწოდებელი: 6 ნაბიჯი
ვიდეო: ვნანობ, რომ ეს საიდუმლო 50 წლის ასაკში ვერ გავიგე! მოვკვდებოდი, რომ არ ვიცოდე 2024, ნოემბერი
Anonim
ძაღლების ავტომატური მიმწოდებელი
ძაღლების ავტომატური მიმწოდებელი

ეს არის ჩემი პროექტი Pet Pet Feeder. მე მქვია პარკერი მე ვარ 11 კლასში და მე გავაკეთე ეს პროექტი 2020 წლის 11 ნოემბერს, როგორც CCA (კურსის კულმინაციური აქტივობა) ამ პროექტში მე გაჩვენებთ თუ როგორ უნდა გააკეთოთ ავტომატური შინაური ცხოველის მიმწოდებელი Arduino UNO– სთან ერთად. თქვენ შეგიძლიათ აირჩიოთ დრო, რომლის შეცვლაც შეგიძლიათ. საჭმელი გაიცემა აუგზე და გამოკვებავთ თქვენს შინაურ ცხოველებს!

მარაგები

ელექტრონიკა:

  • Arduino UNO
  • L298N - 10 $ - აკონტროლებს ნემას 17
  • NEMA 17 - 10 $ - აქცევს საჭეს ისე, რომ საკვები გაიცემა
  • RTC (DS1307) - 10 $ - იძლევა დროს
  • 12V კვების ბლოკი - 5 $ - იძენს ყველაფერს
  • მინი პურის დაფა - დამატებითი გაყვანილობისთვის
  • Jumper Wires - აკავშირებს ყველაფერს
  • მავთულები ქალიდან მამაკაცამდე - აკავშირებს ყველაფერს

აპარატურა:

  • 3D ბეჭდვის ბოჭკო - 3D პრინტერისთვის
  • 2 M4 ჭანჭიკი - დაიჭირეთ ბაზის ფირფიტა ადგილზე
  • 4 ნემა 17 ჭანჭიკი - დაიჭირეთ ნემა ქვემოთ
  • PVC T 48 მმ შიდა განზომილება 66 მმ გარე განზომილება - 3 $

ინსტრუმენტები:

  • 3D პრინტერი
  • საბურღი
  • შედუღების იარაღი

ნაბიჯი 1: დიზაინის მიმოხილვა

დიზაინის მიმოხილვა
დიზაინის მიმოხილვა
დიზაინის მიმოხილვა
დიზაინის მიმოხილვა
დიზაინის მიმოხილვა
დიზაინის მიმოხილვა
დიზაინის მიმოხილვა
დიზაინის მიმოხილვა

შინაური ცხოველების მიმწოდებლის დიზაინი ძალიან მარტივია. ჰოპერი გადადის PVC T.– ის თავზე, შემდეგ საფარი მიდის PVC T– ის უკანა მხარეს (როგორც სურათზეა ნაჩვენები), რომელზეც მიმაგრებულია Nema 17. შემდეგ ნემა 17 ჩაძვრება აუგის უკანა ნაწილში, რომელიც ზემოთ ჩანს და ჭანჭიკი წავა გვერდზე, რომ შეინარჩუნოს იგი ისე, რომ არ დეფორმირდეს ხვრელი, რომელიც ჩანს ზემოთ!

შემდეგ გამზრდელი უბრალოდ საჭმელს გამოიყვანს მილიდან და თასში!

ნაბიჯი 2: კოდის მიმოხილვა

კოდის მიმოხილვა
კოდის მიმოხილვა
კოდის მიმოხილვა
კოდის მიმოხილვა
კოდის მიმოხილვა
კოდის მიმოხილვა

RTC & Stepper– ს აქვს Libary სახელწოდებით RTClib.h და Stepper.h, რომელიც დასძენს გამარტივებულ კოდს RTC & Stepper– ისთვის. თუ განცხადებები ძალიან მარტივია, მისი ნათქვამია, თუ საათი და წუთი უდრის აღნიშნულ დროს, ის ბრუნავს ნემას, რომელიც დაარიგებს საკვებს. დანარჩენი კოდი ძალიან ადვილი გასაგებია თუნდაც ერთდღიანი გამოცდილების მქონე ადამიანისთვის.

ნაბიჯი 3: Nema 17 -ის მიმაგრება ბაზის ფირფიტაზე და აუგზე

მიამაგრეთ Nema 17 Base Plate & Auger
მიამაგრეთ Nema 17 Base Plate & Auger
Nema 17 -ის მიმაგრება ბაზის ფირფიტაზე და აუგზე
Nema 17 -ის მიმაგრება ბაზის ფირფიტაზე და აუგზე
მიამაგრეთ Nema 17 Base Plate & Auger
მიამაგრეთ Nema 17 Base Plate & Auger

პირველ რიგში, თქვენ უნდა აიღოთ თქვენი ძირითადი ფირფიტა და მიამაგროთ იგი თქვენს ნემა 17 -ზე, დაფაზე დაფარული წინასწარ გაკეთებული ხვრელების გამოყენებით. მას შემდეგ რაც დაასრულეთ, თქვენ გინდათ მიამაგროთ ნავი ნემაზე უკანა ხვრელის გამოყენებით. შემდეგ დააკავშირეთ საბაზისო ფირფიტა აუზთან და ნემასთან მიმაგრებული, შემდეგ დააწებეთ M2 ჭანჭიკები თითოეულ მხარეს.

ნაბიჯი 4: გაყვანილობა L298N & RTC

გაყვანილობა L298N & RTC
გაყვანილობა L298N & RTC
გაყვანილობა L298N & RTC
გაყვანილობა L298N & RTC

ეს ნაბიჯი გეტყვით, თუ როგორ უნდა დააკავშიროთ L298N & RTC

ჩვენ ვიწყებთ ქინძისთავებით 8, 9, 10, 11 L298N– მდე

  • მიამაგრეთ 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 ვ -მდე
  • მიწა GND– მდე
  • 5V დან 5V to Breadboard

RTC დაკავშირებულია არდუინოსთან

  • GND to GND
  • 5V დან 5V to Breadboard
  • SDA to A5
  • SCL– დან A4– მდე

Jumper ქინძისთავები

ყველა მხტუნავები უნდა იყოს L298N- ზე

ნაბიჯი 5: კოდირება კომენტარებით

კოდირება კომენტარებით
კოდირება კომენტარებით
კოდირება კომენტარებით
კოდირება კომენტარებით
კოდირება კომენტარებით
კოდირება კომენტარებით

კოდი უფრო ნათელია ზემოთ მოცემულ სურათებში

// სახელი: პარკერ ფრედერიკი

// პროექტის სახელი: ავტომატური შინაური ცხოველების საკვების მიმწოდებელი // თარიღი: სამშაბათი, 10 ნოემბერი 2020 // მასწავლებელი: მ. ბონისტელი // აღწერილობა: შესანახი თქვენი შინაური ცხოველები აღნიშნულ დროს!

// ბიბლიოთეკები იმ ნივთებისთვის, რაც მე გამოვიყენე #მოიცავს #მოიცავს #მოიცავს #მოიცავს "RTClib.h"

RTC_DS1307 rtc; // ამბობს რას ვიყენებ RTC– ს

// ეს არის ის ადგილი, სადაც თქვენ ადგენთ საჭმლის დროს

// Hours int mornFeedTime = 12; int nightFeedTime = 7; // წუთი int mornFeedTimeM = 29; int nightFeedTimeM = 00; // წამი int mornFeedTimeS = 20; int nightFeedTimeS = 00;

char daysOfTheWeek [7] [12] = {"კვირა", "ორშაბათი", "სამშაბათი", "Wedsneday", "ხუთშაბათი", "პარასკევი", "შაბათი"}; // ნორმალურ დღეებს აქცევს კვირის დღეებად

const int feed = 200; // ეს არის თქვენი ნაბიჯები, რამდენჯერ გსურთ რომ დაიძაბოს

სტეპერი myStepper (არხი, 8, 9, 10, 11); // თქვენი ქინძისთავები Nema 17 -ისა და სხვა მრავალი სტეპერებისათვის

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

ხოლო (! სერიული); // თუ RTC არ მუშაობს ის გამოჩნდება სერიულ ეკრანზე, თუ (! Rtc.begin ()) {Serial.println ("RTC ვერ ვიპოვე"); ხოლო (1); }

// ეს გეტყვით მუშაობს თუ არა რეალური დროის საათი და ის გამოჩნდება სერიულ ეკრანზე, თუ (! Rtc.isrunning ()) {Serial.println ("RTC მუშაობს!");

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 ჯერ დატრიალდება, ეს დილის საკვებისთვის

if (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 ჯერ დატრიალდება, ეს არის ღამის კვებისათვის

if (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); }

// ეს აჩვენებს სერიას YEAR, MONTH, DAY, HOUR, MINUTE, SECOND

Serial.print (now.year (), DEC); Serial.print ('/'); Serial.print (now.month (), DEC); Serial.print ('/'); Serial.print (ახლა დღე), DEC); Serial.print ("("); Serial.print (daysOfTheWeek [now.dayOfTheWeek ()]); Serial.print (")"); Serial.print (ახლა. საათი (), DEC); Serial.print (':'); Serial.print (now.minute (), DEC); Serial.print (':'); Serial.print (ახლა. მეორე (), DEC); Serial.println (); }

ვებგვერდი, რომელსაც ვიყენებდი RTC– სთვის, მე წავშალე სხვა რამ, გარდა განცხადებებისა, სადაც ნათქვამია RTC ჩართულია თუ არა. მე ძირითადად ვიყენებდი ამ ვებსაიტს იმის შესასწავლად, თუ როგორ უნდა დაპროგრამებულიყო RTC

ვებგვერდი, რომელსაც მე ვიყენებდი Stepper motor– ისთვის, ეს დამეხმარა იმის გაგებაში, თუ როგორ უნდა დამეპროგრამებინა სტეპერი გასაშვებად, მე ნამდვილად არაფერი შევინახე მისგან. ეს მხოლოდ დამეხმარა იმის გაგებაში, თუ როგორ უნდა დაშიფვრა იგი

ნაბიჯი 6: პრობლემები და როგორ გავასწორე ისინი

პრობლემები და როგორ გავასწორე ისინი!
პრობლემები და როგორ გავასწორე ისინი!

რამდენიმე პრობლემა მქონდა

  • მე მჭირდებოდა 12 ვ კვების წყარო, მე მქონდა მხოლოდ 9 ვ ბატარეა, ვიპოვე ერთი და ის სწრაფად მოგვარდა.
  • როდესაც L298N- თან დაკავშირება NEMA 17-ით მქონდა A და A- ზე მავთულები არასწორი, რამაც ცოტათი გამაბრაზა. მე უბრალოდ გავასწორე მავთულის სხვა გზით შეცვლით.
  • შევეცადე კოდის გაადვილება, რადგან if განცხადებაში myStepper.step (-კვება); ისევ და ისევ არეული ჩანდა. ამიტომ მომიწია მისი შეცვლა უკან.
  • მე მქონდა არასწორი ზომის საბაზისო ფირფიტა, როგორც სურათზე ჩანს, ამიტომ მე მომიწია ახლის 3D დაბეჭდვა და ის იდეალურად ჯდებოდა!
  • პრობლემა რაც მაქვს არის ის, რომ ეს არის ჯემი მას შემდეგ, რაც auger არის პატარა ასე რომ jams მარტივი გზა მე შემიძლია დაფიქსირება არის გაფართოების auger მცირე რაოდენობით!

გირჩევთ: