Taula de continguts:

Alimentador automàtic de gossos: 6 passos
Alimentador automàtic de gossos: 6 passos

Vídeo: Alimentador automàtic de gossos: 6 passos

Vídeo: Alimentador automàtic de gossos: 6 passos
Vídeo: Беслан. Помни / Beslan. Remember (english & español subs) 2024, Desembre
Anonim
Alimentador automàtic de gossos
Alimentador automàtic de gossos

Aquest és el meu projecte d’un alimentador automàtic d’animals per a mascotes. El meu nom és Parker, sóc de grau 11 i vaig fer aquest projecte l’11 de novembre de 2020 com a CCA (Activity Culminating Course) en aquest projecte. Us mostraré com fer un alimentador automàtic d’animals de companyia amb Arduino UNO. Podeu triar una hora que podeu canviar. El menjar es distribuirà mitjançant una barrina i alimentarà les vostres mascotes.

Subministraments

Electrònica:

  • Arduino UNO
  • L298N - 10 $ - Controla el Nema 17
  • NEMA 17 - 10 $ - Gira la barrina perquè el menjar es distribueixi
  • RTC (DS1307) - 10 $: dóna temps
  • Font d'alimentació de 12V - 5 $ - Potencia tot
  • Mini tauler de pa: per obtenir més espai de cablejat
  • Jumper Wires: ho connecta tot
  • Cable de femella a masculina: ho connecta tot

Maquinari:

  • Filament d’impressió 3D: per a impressores 3D
  • 2 cargols M4: manteniu la placa base al seu lloc
  • 4 parabolts Nema 17: manteniu premut el nema
  • PVC T 48mm dimensió interior 66mm dimensió exterior - 3 $

Eines:

  • Impressora 3D
  • Trepant
  • Pistola de soldar

Pas 1: Visió general del disseny

Visió general del disseny
Visió general del disseny
Visió general del disseny
Visió general del disseny
Visió general del disseny
Visió general del disseny
Visió general del disseny
Visió general del disseny

El disseny de l’alimentador per a mascotes és molt senzill. Una tremuja arriba a la part superior del PVC T. A continuació, hi ha una coberta a la part posterior del PVC T (com es mostra a la imatge) amb el Nema 17 adherit. Aleshores, el Nema 17 s'enfonsarà a la part posterior de la barrena que es pot veure a sobre i un parabolt anirà al lateral per mantenir-lo al seu lloc de manera que no deformi el forat que es pot veure a sobre.

Aleshores, la barrina simplement empeny el menjar fora de la canonada i cap a un bol.

Pas 2: Visió general del codi

Visió general del codi
Visió general del codi
Visió general del codi
Visió general del codi
Visió general del codi
Visió general del codi

El RTC & The stepper tenen un llibre anomenat RTClib.h i Stepper.h que afegeix codi simplificat per al RTC & Stepper. Les afirmacions if són molt senzilles, es diu que si l'hora i els minuts equivalen al temps esmentat, girarà el nema que distribuirà el menjar. La resta del codi és molt fàcil d’entendre fins i tot per a algú amb un dia d’experiència.

Pas 3: fixació de Nema 17 a la placa base i al barret

Fixació de Nema 17 a la placa base i al barret
Fixació de Nema 17 a la placa base i al barret
Fixació de Nema 17 a la placa base i al barret
Fixació de Nema 17 a la placa base i al barret
Fixació de Nema 17 a la placa base i al barret
Fixació de Nema 17 a la placa base i al barret

Primer voleu agafar la placa base i connectar-la al Nema 17 mitjançant els forats prefabricats de la placa base. Un cop fet això, voleu fixar la barrina al Nema mitjançant el forat posterior. A continuació, connecteu la placa base amb el cargol i Nema connectats i cargoleu els cargols M2 a cada costat.

Pas 4: Cablatge L298N i RTC

Cablejat L298N i RTC
Cablejat L298N i RTC
Cablejat L298N i RTC
Cablejat L298N i RTC

Aquest pas us indicarà com connectar el L298N i el RTC

Començarem pels passadors 8, 9, 10, 11 fins a la L298N

  • Pin 8 (blanc) a IN1
  • Pin 9 (morat) a IN2
  • Pin 10 (rosa) a IN3
  • PIN 11 (groc) a IN4

A continuació, connectarem el Nema 17 al L298N

  • OUT1 a 1 a NEMA
  • OUT2 a 2 a NEMA
  • OUT3 a 3 a NEMA
  • OUT4 a 4 a NEMA

Connexió de 12v i Arduino a L298N (no he pogut trobar 12V, així que imagineu la bateria de 9V com a alimentació)

  • Volts a 12V
  • De terra a GND
  • De 5V a 5V a la taula de pa

Connexió de RTC a Arduino

  • GND a GND
  • De 5V a 5V a la taula de pa
  • SDA a A5
  • SCL a A4

Passadors de pont

Se suposa que tots els passadors del pont estan al L298N

Pas 5: Codificació amb comentaris

Codificació amb comentaris
Codificació amb comentaris
Codificació amb comentaris
Codificació amb comentaris
Codificació amb comentaris
Codificació amb comentaris

El codi és més clar a les imatges anteriors

// Nom: Parker Frederick

// Nom del projecte: Auto Pet Feeder // Data: dimarts, 10 de novembre de 2020 // Professor: M. Bonisteel // Desc: Alimenta les teves mascotes a la data indicada.

// Llibres per a les coses que he fet servir #include #include #include "RTClib.h"

RTC_DS1307 rtc; // Diu el que estic fent servir RTC

// Aquí és on estableix l'hora del menjar

// Hores int mornFeedTime = 12; int nightFeedTime = 7; // Minuts int mornFeedTimeM = 29; int nightFeedTimeM = 00; // Seconds int mornFeedTimeS = 20; int nightFeedTimeS = 00;

char daysOfTheWeek [7] [12] = {"Diumenge", "Dilluns", "Dimarts", "Wedsneday", "Dijous", "Divendres", "Dissabte"}; // Fa que els dies normals es converteixin en dies de la setmana

alimentació int int = 200; // Aquests són els vostres passos, així que quantes vegades voleu que giri

Stepper myStepper (feed, 8, 9, 10, 11); // Els vostres pins per al Nema 17 i la majoria dels altres steppers

configuració nul·la () {Serial.begin (9600);

mentre que (! sèrie); // Si l'RTC no funciona, el mostrarà a la pantalla de sèrie si (! Rtc.begin ()) {Serial.println ("No s'ha pogut trobar l'RTC"); mentre que (1); }

// Això us indicarà si el rellotge en temps real s'està executant o no i el mostrarà a la pantalla de sèrie si (! Rtc.isrunning ()) {Serial.println ("RTC s'està executant!");

rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_)))); // Això trigarà el temps a l'ordinador i s'utilitzarà a l'RTC

// Si voleu tenir una hora definida en lloc de l’hora de l’ordinador, podeu fer-la aquí //rtc.adjust(DateTime(2020, 10, 29, 8, 28, 0)); // Any / Mes / Dia / Hora / Minut / Segon} myStepper.setSpeed (200); // Velocitat a la qual voleu que giri}

bucle buit () {Data i hora ara = rtc.now ();

// Això farà que aquestes variables siguin l'hora actual, etc. int hr = now.hour (); int mi = now.minute (); int se = now.second ();

// Codi de manera que a l'hora establerta distribuirà el menjar i girarà 5 vegades, això si és per a l'alimentació del matí

if (hr == mornFeedTime && mi == mornFeedTimeM && mornFeedTimeS == se) {Serial.println ("Esmorzar!"); myStepper.step (-feed); retard (700);

myStepper.step (-feed); retard (700);

myStepper.step (-feed); retard (700);

myStepper.step (-feed); retard (700);

myStepper.step (-feed); retard (700);

myStepper.step (-feed); retard (700);

myStepper.step (-feed); retard (700);

}

// Codi, de manera que a l'hora establerta distribuirà el menjar i girarà 5 vegades, això és per a l'alimentació nocturna

if (hr == nightFeedTime && mi == nightFeedTimeM && nightFeedTimeS == se) {Serial.println ("Sopar!"); myStepper.step (-feed); retard (700);

myStepper.step (-feed); retard (700);

myStepper.step (-feed); retard (700);

myStepper.step (-feed); retard (700);

myStepper.step (-feed); retard (700);

myStepper.step (-feed); retard (700);

myStepper.step (-feed); retard (700); }

// Es mostrarà l'any, mes, dia, hora, minut, segon a la sèrie

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

Lloc web que he utilitzat per a RTC He suprimit la majoria de coses que no fossin les declaracions if que diuen si el RTC està activat o no. He utilitzat principalment aquest lloc web per aprendre a programar el RTC

Lloc web que vaig utilitzar per al motor pas a pas, això em va ajudar a entendre com programar el pas a pas perquè no en fes res. Simplement em va ajudar a entendre com codificar-lo

Pas 6: problemes i com els vaig solucionar

Problemes i com els vaig solucionar
Problemes i com els vaig solucionar

Alguns problemes que vaig tenir

  • Necessitava una font d'alimentació de 12v, només tenia bateria de 9v, en vaig trobar una i es va solucionar ràpidament.
  • En connectar L298N amb NEMA 17, tenia els cables equivocats a A i A-, cosa que feia que tremolés una mica. Simplement ho vaig arreglar canviant els cables cap a una altra banda.
  • S'ha intentat fer el codi més senzill perquè a la sentència if myStepper.step (-feed); una vegada i una altra semblava desordenat. Vaig haver de canviar-ho.
  • Tenia la placa base de mida incorrecta, tal com es veu a la imatge, així que vaig haver d’imprimir-ne una de nova i encaixava perfectament.
  • El problema que tinc és que s'embussa, ja que la barrina és petita, de manera que es pot encallar de manera senzilla, ja que amplieu la barreta una petita quantitat.

Recomanat: