Съдържание:

Автоматична хранилка за кучета: 6 стъпки
Автоматична хранилка за кучета: 6 стъпки

Видео: Автоматична хранилка за кучета: 6 стъпки

Видео: Автоматична хранилка за кучета: 6 стъпки
Видео: Автоматизирана хранилка за до две кучета (ПРОДАВА СЕ) 2024, Юли
Anonim
Автоматична хранилка за кучета
Автоматична хранилка за кучета

Това е моят проект на Авто хранилка за домашни любимци. Казвам се Паркър, аз съм в 11 клас и направих този проект на 11 ноември 2020 г. като CCA (Кулминационна дейност на курса) в този проект, ще ви покажа как да направите автоматична хранилка за домашни любимци с Arduino UNO. Можете да изберете време, което можете да промените. Храната ще се разпределя през шнек и ще храни вашите домашни любимци!

Консумативи

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

  • Arduino UNO
  • L298N - 10 $ - Управлява Nema 17
  • NEMA 17 - 10 $ - Включва шнека, така че храната да се разпределя
  • RTC (DS1307) - 10 $ - Дава време
  • 12V захранване - 5 $ - Захранва всичко
  • Мини табла - За допълнително пространство за окабеляване
  • Jumper Wires - Свързва всичко
  • Женски към мъжки проводници - Свързва всичко

Хардуер:

  • Нишка за 3D печат - за 3D принтер
  • 2 болта M4 - Дръжте основната плоча на място
  • 4 болта Nema 17 - Дръжте nema надолу
  • PVC T 48 мм вътрешно измерение 66 мм външно измерение - 3 $

Инструменти:

  • 3D принтер
  • Пробивна машина
  • Пистолет за запояване

Стъпка 1: Преглед на дизайна

Преглед на дизайна
Преглед на дизайна
Преглед на дизайна
Преглед на дизайна
Преглед на дизайна
Преглед на дизайна
Преглед на дизайна
Преглед на дизайна

Дизайнът на хранилката за домашни любимци е много прост. В горната част на PVC T. отива бункер. Тогава Nema 17 ще бъде натиснат в задната част на шнека, който може да се види отгоре, и болт ще отиде отстрани, за да го задържи на място, така че да не деформира дупката, която може да се види отгоре!

Тогава шнекът просто ще избута храната от тръбата и в купа!

Стъпка 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, като използвате готовите отвори на основната плоча. След като направите това, искате да прикрепите шнека към Nema, като използвате задния отвор върху него. След това свържете основната плоча с прикрепените шнек и Nema, след това завийте болтовете 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
  • ПИН 11 (жълт) до IN4

След това ще свържем Nema 17 към L298N

  • OUT1 до 1 на NEMA
  • OUT2 до 2 на NEMA
  • OUT3 до 3 на NEMA
  • OUT4 до 4 на NEMA

Свързване на 12v и Arduino към L298N (Не можах да намеря 12V, така че представете 9V батерия като захранване)

  • Волта до 12V
  • Заземяване към GND
  • 5V до 5V на платка

Свързване на RTC към Arduino

  • GND към GND
  • 5V до 5V на платка
  • SDA до A5
  • SCL към A4

Щипки за джъмпери

Всички джъмперни щифтове трябва да са на L298N

Стъпка 5: Кодиране с коментари

Кодиране с коментари
Кодиране с коментари
Кодиране с коментари
Кодиране с коментари
Кодиране с коментари
Кодиране с коментари

Кодът е по -ясен в изображенията по -горе

// Име: Паркър Фредерик

// Име на проекта: Автоматично хранилище за домашни любимци // Дата: вторник, 10 ноември 2020 г. // Учител: M. Bonisteel // Описание: Хранете домашните си любимци в посоченото време!

// Библиотеки за нещата, които използвах #include #include #include "RTClib.h"

RTC_DS1307 rtc; // Казва какво използва RTC

// Тук задавате часа за храната

// Часове int mornFeedTime = 12; int nightFeedTime = 7; // минути int mornFeedTimeM = 29; int nightFeedTimeM = 00; // секунди int 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 не работи, той ще го покаже на серийния екран if (! 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 = now.minute (); 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); }

// Това ще покаже YEAR, MONTH, DAY, HOUR, MINUTE, SECOND в поредицата

Serial.print (now.year (), DEC); Serial.print ('/'); Serial.print (now.menth (), 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, изтрих повечето неща, освен изявленията if, които казват дали RTC е включен или изключен. Използвах предимно този уебсайт, за да науча как да програмирам RTC

Уебсайт, който използвах за Стъпков двигател, това ми помогна да разбера как да програмирам степпера за стартиране. Всъщност не скрих нищо от него. Просто ми помогна да разбера как да го кодирам

Стъпка 6: Проблеми и как ги отстраних

Проблеми и как ги отстраних!
Проблеми и как ги отстраних!

Няколко проблема имах

  • Имах нужда от 12v захранване, имах само 9v батерия, намерих такава и тя беше решена бързо.
  • Когато свързвах L298N с NEMA 17, сгреших проводниците на A и A-, което го накара да трепне малко. Просто го оправих, като смених проводниците по друг начин.
  • Опитах се да направя кода по-прост, защото в оператора if myStepper.step (-feed); отново и отново изглеждаше разхвърлян. Затова трябваше да го променя.
  • Имах основата с грешен размер, както се вижда на снимката, така че трябваше да отпечатам малко нова 3D и тя пасваше перфектно!
  • Проблемът ми е, че той засяда, тъй като шнекът е твърде малък, така че задръства простият начин, по който мога да поправя, е като увелича шнека с малко количество!

Препоръчано: