Мазмұны:

Иттерді автоматты түрде тамақтандыру: 6 қадам
Иттерді автоматты түрде тамақтандыру: 6 қадам

Бейне: Иттерді автоматты түрде тамақтандыру: 6 қадам

Бейне: Иттерді автоматты түрде тамақтандыру: 6 қадам
Бейне: Өлді деп жерлемек болған еді. Бірақ Алланың қалауымен тірілген Бала 2024, Қараша
Anonim
Иттерді автоматты түрде тамақтандырушы
Иттерді автоматты түрде тамақтандырушы

Бұл менің үй жануарларын тамақтандыратын жобам. Менің атым Паркер, мен 11 -сыныпта оқимын және мен бұл жобаны 2020 жылдың 11 қарашасында CCA (курстың қорытынды қызметі) ретінде жасадым, мен сізге осы жобада Arduino UNO көмегімен үй жануарларын автоматты түрде беруді көрсетемін. Сіз өзгерте алатын уақытты таңдай аласыз. Тамақ шнек арқылы беріледі және үй жануарларын тамақтандырады!

Жабдықтар

Электроника:

  • Arduino UNO
  • L298N - 10 $ - Nema 17 басқарады
  • NEMA 17 - 10 $ - Шнекті айналдырады, осылайша тағам таралады
  • RTC (DS1307) - 10 $ - Уақытты береді
  • 12В қуат көзі - 5 $ - Барлығын қуаттандырады
  • Шағын тақта - қосымша сымдар үшін
  • Jumper Wires - бәрін қосады
  • Әйел -еркек сымдары - бәрін қосады

Жабдық:

  • 3D басып шығару жіпшесі - 3d принтерге арналған
  • 2 M4 болттар - Негізгі тақтаны орнында ұстаңыз
  • 4 Nema 17 болттары - Неманы ұстап тұрыңыз
  • ПВХ Т 48 мм ішкі өлшемі 66 мм сыртқы өлшемі - 3 $

Құралдар:

  • 3D принтері
  • Бұрғылау
  • Пісіру мылтығы

1 -қадам: Дизайнға шолу

Дизайнға шолу
Дизайнға шолу
Дизайнға шолу
Дизайнға шолу
Дизайнға шолу
Дизайнға шолу
Дизайнға шолу
Дизайнға шолу

Үй жануарларын тамақтандырудың дизайны өте қарапайым. Поливинилхлоридтердің жоғарғы жағына бункер түседі, содан кейін ПВХ Т -ның артқы жағында (суретте көрсетілгендей) Nema 17 бекітілген. Содан кейін Nema 17 жоғарыда көрінетін Auger -дің артқы жағына итеріледі және болт оны ұстап тұру үшін бүйіріне түседі, осылайша ол тесікті деформацияламайды!

Содан кейін шнек тағамды құбырдан шығарып, тостағанға итеріп жібереді!

2 -қадам: кодқа шолу

Кодекске шолу
Кодекске шолу
Кодекске шолу
Кодекске шолу
Кодекске шолу
Кодекске шолу

RTC & Stepper -де RTClib.h және Stepper.h деп аталатын кітапхана бар, ол RTC & Stepper үшін жеңілдетілген кодты қосады. If мәлімдемесі өте қарапайым, егер сағат пен минут айтылған уақытқа тең болса, ол тамақты тарататын ісікті айналдырады. Кодтың қалған бөлігін бір күндік тәжірибесі бар адамға түсіну өте оңай.

3 -қадам: Nema 17 -ді негізгі табаққа және шпекке бекіту

Nema 17 -ді базалық табақ пен бұрандаға бекіту
Nema 17 -ді базалық табақ пен бұрандаға бекіту
Nema 17 -ді базалық табақ пен бұрандаға бекіту
Nema 17 -ді базалық табақ пен бұрандаға бекіту
Nema 17 -ді базалық табақ пен бұрандаға бекіту
Nema 17 -ді базалық табақ пен бұрандаға бекіту

Алдымен сіз өзіңіздің табақшаңызды алып, оны Nema 17 құрылғысына тіреу тақтасындағы алдын ала дайындалған тесіктерді қолданып бекіткіңіз келеді. Мұны жасағаннан кейін, сіз шнекті артқы тесік арқылы Немаға бекіткіңіз келеді. Содан кейін негіз табақшасын шнекпен және Неманы бекітіңіз, содан кейін М2 болттарын екі жағына бұраңыз.

4 -қадам: L298N және RTC сымдары

L298N және RTC сымдары
L298N және RTC сымдары
L298N және RTC сымдары
L298N және RTC сымдары

Бұл қадам L298N & RTC сымын қалай қосуға болатынын айтады

Біз L298N 8, 9, 10, 11 түйреуіштерінен бастаймыз

  • IN1 -ге 8 -ақ түйреуіш (ақ)
  • PIN 2 (күлгін) IN2
  • IN3 ұяшығына 10 (қызғылт) түйреу
  • PIN 11 (сары) IN4

Содан кейін біз Nema 17 -ді L298N -ге қосамыз

  • NEMA -да OUT1 -ден 1 -ге дейін
  • NEMA -да OUT2 -ден 2 -ге дейін
  • NEMA -да OUT3 -тен 3 -ке дейін
  • NEMA -да OUT4 -тен 4 -ке дейін

12v мен Arduino -ны L298N -ге қосу (12В табылмады, сондықтан 9В батареяны қуат ретінде елестетіңіз)

  • 12 В кернеуі
  • GND негізі
  • Нан тақтасында 5 В -тан 5 В -қа дейін

RTC Arduino -ға қосылады

  • GND - GND
  • Нан тақтасында 5 В -тан 5 В -қа дейін
  • SDA - A5
  • SC4 - A4

Секіргіш түйреуіштер

Барлық секіргіштер L298N -де болуы керек

5 -қадам: Пікірлермен кодтау

Пікірлермен кодтау
Пікірлермен кодтау
Пікірлермен кодтау
Пікірлермен кодтау
Пікірлермен кодтау
Пікірлермен кодтау

Жоғарыдағы суреттердегі код анық

// Аты: Паркер Фредерик

// Жобаның атауы: Үй жануарларын автоматты түрде тамақтандыру // Күні: сейсенбі, 10 қараша 2020 жыл // Мұғалім: M. Bonisteel // 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);

while (! сериялық); // Егер 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 hr = now.hour (); int mi = қазір.минут (); int se = now.second ();

// Кодты белгіленген уақытта ол тағамды таратады және ол 5 рет айналады, егер бұл таңғы тамақ үшін болса

if (hr == mornFeedTime && mi == mornFeedTimeM && mornFeedTimeS == se) {Serial.println («Таңғы ас!»); myStepper.step (-Feed); кешіктіру (700);

myStepper.step (-Feed); кешіктіру (700);

myStepper.step (-Feed); кешіктіру (700);

myStepper.step (-Feed); кешіктіру (700);

myStepper.step (-Feed); кешіктіру (700);

myStepper.step (-Feed); кешіктіру (700);

myStepper.step (-Feed); кешіктіру (700);

}

// Кодты белгіленген уақытта ол тағамды таратады және ол 5 рет айналады, бұл түнгі тамақтандыруға арналған

if (hr == nightFeedTime && mi == nightFeedTimeM && nightFeedTimeS == se) {Serial.println («Кешкі ас!»); myStepper.step (-Feed); кешіктіру (700);

myStepper.step (-Feed); кешіктіру (700);

myStepper.step (-Feed); кешіктіру (700);

myStepper.step (-Feed); кешіктіру (700);

myStepper.step (-Feed); кешіктіру (700);

myStepper.step (-Feed); кешіктіру (700);

myStepper.step (-Feed); кешіктіру (700); }

// Бұл сериалда ЖЫЛ, АЙ, КҮН, СААТ, МИНУТ, ЕКІНШІДІ көрсетеді

Serial.print (now.year (), DEC); Serial.print ('/'); Serial.print (now.month (), DEC); Serial.print ('/'); Serial.print (now.day (), DEC); Serial.print («(»); Serial.print (daysOfTheWeek [now.dayOfTheWeek ()])); Serial.print («)»); Serial.print (now.hour (), DEC); Serial.print (':'); Serial.print (now.minute (), DEC); Serial.print (':'); Serial.print (now.second (), DEC); Serial.println (); }

Мен RTC үшін қолданған веб -сайт, егер RTC қосулы немесе өшірулі екендігі туралы мәлімдемеден басқа көп нәрсені жойдым. Мен бұл веб -сайтты негізінен RTC бағдарламалауды үйрену үшін қолдандым

Мен Stepper моторы үшін қолданған веб -сайт бұл қадамды қалай іске қосу керектігін түсінуге көмектесті, мен одан ештеңе сақтамадым. Бұл маған оны қалай кодтау керектігін түсінуге көмектесті

6 -қадам: Мәселелер және оларды қалай шештім

Мәселелер және оларды қалай шештім!
Мәселелер және оларды қалай шештім!

Менде бірнеше проблемалар болды

  • Маған 12в қуат көзі қажет болды, менде тек 9в батарея болды, мен оны таптым және ол тез шешілді.
  • L298N-ді NEMA 17-ге қосқан кезде менде А мен А-да сымдар қате болды, бұл оны біраз дірілдетіп жіберді. Мен сымдарды басқа жолмен өзгерту арқылы жөндедім.
  • Кодты қарапайым етуге тырысты, себебі if операторында myStepper.step (-feed); қайта -қайта ретсіз көрінді. Сондықтан оны қайта өзгертуге тура келді.
  • Менде суретте көрсетілгендей өлшемі дұрыс емес табақша болды, сондықтан жаңадан 3D басып шығаруға тура келді және ол өте жақсы сәйкес келді!
  • Менің проблемам - бұл кептеліс, өйткені шнек кішкентай болғандықтан, оны түзетудің қарапайым әдісі - шнекті аздап үлкейту!

Ұсынылған: