Агуулгын хүснэгт:

Авто нохой тэжээгч: 6 алхам
Авто нохой тэжээгч: 6 алхам

Видео: Авто нохой тэжээгч: 6 алхам

Видео: Авто нохой тэжээгч: 6 алхам
Видео: МУУР болон НОХОЙ аль нь тэжээхэд илүү хэцүү вэ ? 2024, Долдугаар сарын
Anonim
Авто нохой тэжээгч
Авто нохой тэжээгч

Энэ бол миний гэрийн тэжээвэр амьтан тэжээх төсөл юм. Намайг Паркер гэдэг, би 11 -р ангид сурч байгаа бөгөөд би энэ төслийг 2020 оны 11 -р сарын 11 -нд CCA (Course Culminating Activity) хэлбэрээр хийсэн бөгөөд энэ төсөлд би Arduino UNO -тэй гэрийн тэжээвэр амьтдын автомат тэжээгчийг хэрхэн хийхийг танд үзүүлэх болно. Та өөрчилж болох цагийг сонгож болно. Хоолыг шонгоор тарааж, гэрийн тэжээвэр амьтдаа тэжээх болно!

Хангамж

Электроник:

  • Ардуино НҮБ
  • L298N - 10 $ - Nema 17 -ийг хянадаг
  • ОБЕГ 17 - 10 $ - Шүүрийг эргүүлж, хоол хүнс тараана
  • RTC (DS1307) - 10 $ - Цаг өгдөг
  • 12V цахилгаан хангамж - 5 $ - Бүх зүйлийг эрх мэдэлтэй
  • Mini Breadboard - Утасны нэмэлт зай авах зориулалттай
  • Jumper утас - бүх зүйлийг холбодог
  • Эмэгтэй, эрэгтэй утас - Бүх зүйлийг холбодог

Техник хангамж:

  • 3D хэвлэх утас - 3d принтерт зориулагдсан
  • 2 М4 боолт - Суурийн хавтанг байрандаа барь
  • 4 Nema 17 боолт - Немаг доош нь барь
  • PVC T 48мм дотоод хэмжээ 66мм гаднах хэмжээ - 3 доллар

Хэрэгсэл:

  • 3D принтер
  • Өрөмдлөг
  • Гагнуурын буу

Алхам 1: Дизайн тойм

Дизайн тойм
Дизайн тойм
Дизайн тойм
Дизайн тойм
Дизайн тойм
Дизайн тойм
Дизайн тойм
Дизайн тойм

Гэрийн тэжээвэр амьтдын тэжээлийн загвар нь маш энгийн. PVC T -ийн орой дээр бункер ордог. Дараа нь PVC T -ийн ар талд бүрхэвч (зураг дээр үзүүлсэн шиг), Nema 17 хавсаргасан байна. Дараа нь Nema 17 -ийг Auger -ийн ар тал руу түлхэж, боолтыг хажуу тийш нь байрлуулж, нүхийг гажуудуулахгүй.

Дараа нь өргөгч нь хоолыг хоолойноос гаргаж аваад аяганд хийнэ.

Алхам 2: Кодын тойм

Кодын тойм
Кодын тойм
Кодын тойм
Кодын тойм
Кодын тойм
Кодын тойм

RTC & Stepper нь RTClib.h ба Stepper.h нэртэй номын сантай бөгөөд энэ нь RTC & Stepper -ийн хялбаршуулсан кодыг нэмдэг. If мэдэгдэл нь маш энгийн бөгөөд хэрэв цаг, минут нь заасан хугацаатай тэнцэх юм бол энэ нь хоолыг тараах болно. Кодын үлдсэн хэсгийг нэг өдрийн туршлагатай хүн ч ойлгоход маш хялбар байдаг.

Алхам 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 төхөөрөмждөө бэхлэхийг хүсч байна. Үүнийг хийсний дараа та араагаа Нема руу арын нүхийг ашиглан бэхлэхийг хүсч байна. Дараа нь суурийн хавтанг шонгоор холбож, Нема хавсаргаад дараа нь M2 боолтыг тал бүрээр нь шургуулна.

Алхам 4: L298N ба RTC утас

L298N ба RTC утас
L298N ба RTC утас
L298N ба RTC утас
L298N ба RTC утас

Энэ алхам нь L298N & RTC -ийг хэрхэн холбохыг танд хэлэх болно

Бид L298N 8, 9, 10, 11 -р зүүгээр эхэлнэ

  • IN1 рүү 8 -р зүү (Цагаан)
  • 9 (Нил ягаан) зүүг IN2 руу холбоно уу
  • 10 -р зүү (Ягаан) IN3 руу залга
  • PIN 11 (шар) - IN4

Дараа нь бид Nema 17 -ийг L298N -тэй холбох болно

  • ОБЕГ -аас OUT1 -ээс 1 хүртэл
  • ОБЕГ -аас OUT2 -оос 2 хүртэл
  • ОБЕГ -аас OUT3 -аас 3 хүртэл
  • ОБЕГ -аас OUT4 -ээс 4 хүртэл

12v ба Arduino -г L298N -т холбож байна (12V -ийг олж чадаагүй тул 9В батерейг хүч гэж төсөөлөөд үз дээ)

  • 12 вольтын хүчдэл
  • GND -ийн үндэслэл
  • Breadboard дээр 5V -аас 5V хүртэл

RTC -ийг Arduino руу холбож байна

  • GND -ээс GND хүртэл
  • Breadboard дээр 5V -аас 5V хүртэл
  • SDA -аас A5 хүртэл
  • SCL -ийг А4 болгоно

Холбогч тээглүүр

Бүх холбогч тээглүүр L298N дээр байх ёстой

Алхам 5: Сэтгэгдлээр кодлох

Сэтгэгдлээр кодлох
Сэтгэгдлээр кодлох
Сэтгэгдлээр кодлох
Сэтгэгдлээр кодлох
Сэтгэгдлээр кодлох
Сэтгэгдлээр кодлох

Дээрх зурган дээрх код илүү тодорхой байна

// Нэр: Паркер Фредерик

// Төслийн нэр: Гэрийн тэжээвэр амьтдын тэжээгч // Огноо: 2020 оны 11 -р сарын 10, Мягмар гараг // Багш: М. Бонистээл // Desc: Гэрийн тэжээвэр амьтдаа заасан хугацаанд тэжээх!

// Миний ашиглаж байсан зүйлсийн төлөө номын санчид #include #include #include "RTClib.h"

RTC_DS1307 rtc; // RTC юу ашиглаж байгааг хэлж байна

// Эндээс та хоолны цагийг тохируулж болно

// mornFeedTime = 12 цаг; int nightFeedTime = 7; // минут m mornFeedTimeM = 29; int nightFeedTimeM = 00; // секунд m mornFeedTimeS = 20; int nightFeedTimeS = 00;

char daysOfTheWeek [7] [12] = {"Ням гараг", "Даваа гариг", "Мягмар гараг", "Лхагва гариг", "Пүрэв", "Баасан", "Бямба гариг"}; // Энгийн өдрүүдийг долоо хоногийн өдөр болгон хувиргадаг

const int feed = 200; // Энэ бол таны алхам бөгөөд үүнийг хичнээн удаа эргүүлэхийг хүсч байна

Stepper myStepper (тэжээл, 8, 9, 10, 11); // Nema 17 болон бусад ихэнх гишгэгчид зориулсан таны тээглүүр

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

байхад (! Цуваа); // Хэрэв RTC ажиллахгүй бол үүнийг (! Rtc.begin ()) {Serial.println ("RTC олж чадсангүй"); байхад (1); }

// Энэ нь Real Time Clock ажиллаж байгаа эсэхийг танд хэлэх бөгөөд хэрэв үүнийг (! 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 hr = now.hour (); int mi = now.minute (); int se = now.second ();

// Тиймээс кодыг тогтоосон цагт нь тарааж өгвөл 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); }

// Энэ нь цувралд жил, сар, өдөр, цаг, минут, секундыг харуулах болно.

Цуваа.хэвлэх (одоо.жил (), DEC); Serial.print ('/'); Цуваа.хэвлэх (одоо. Сар (), DEC); Serial.print ('/'); Serial.print (now.day (), DEC); Serial.print ("("); Serial.print (daysOfTheWeek [now.dayOfTheWeek ()])); Serial.print (")"); Цуваа.хэвлэх (одоо.цаг (), DEC); Serial.print (':'); Serial.print (now.minute (), DEC); Serial.print (':'); Serial.print (одоо.second (), DEC); Serial.println (); }

Миний RTC -д ашиглаж байсан вэбсайт нь RTC асаалттай эсвэл унтраасан эсэх тухай мэдэгдэлээс бусад ихэнх зүйлийг устгасан. Би энэ вэбсайтыг голчлон RTC програмчлах талаар сурч мэдсэн

Миний Stepper моторт ашигладаг вэбсайт нь stepper -ийг хэрхэн ажиллуулахыг хэрхэн яаж програмчлах талаар ойлгоход надад тусалсан. Энэ нь надад үүнийг хэрхэн кодлохыг ойлгоход тусалсан юм

Алхам 6: Асуудал ба тэдгээрийг хэрхэн зассан бэ?

Асуудал ба тэдгээрийг хэрхэн зассан бэ?
Асуудал ба тэдгээрийг хэрхэн зассан бэ?

Надад тулгарч байсан хэдэн асуудал

  • Надад 12 вольтын тэжээл хэрэгтэй байсан, надад ердөө 9 в батерей байсан, би нэгийг нь олсон бөгөөд үүнийг хурдан шийдсэн.
  • L298N-ийг NEMA 17-тэй холбоход миний утаснууд A ба A- дээр буруу байсан нь бага зэрэг цочирдуулсан. Би зүгээр л утсыг өөр замаар сольж зассан.
  • Хэрэв if мэдэгдэлд myStepper.step (-feed) байгаа тул кодыг илүү энгийн болгохыг оролдсон; дахин дахин замбараагүй харагдаж байв. Тиймээс би үүнийг буцааж өөрчлөх шаардлагатай болсон.
  • Би зураг дээр харсан шиг буруу хэмжээтэй суурь хавтантай байсан тул 3D -ийг нь бага зэрэг хэвлэхэд тохиромжтой байсан.
  • Надад тулгарч буй асуудал бол өргөгч нь жижиг хэмжээтэй тул гацах явдал юм, ингэснээр миний засах энгийн арга бол өргөгчийг бага хэмжээгээр томруулах явдал юм.

Зөвлөмж болгож буй: