Tabla de contenido:

Alimentador automático para perros: 6 pasos
Alimentador automático para perros: 6 pasos

Video: Alimentador automático para perros: 6 pasos

Video: Alimentador automático para perros: 6 pasos
Video: Comedero dispensador AUTOMÁTICO para perros 🐕 MANUALIDADES para tu MASCOTA 2024, Noviembre
Anonim
Alimentador automático para perros
Alimentador automático para perros

Este es mi proyecto de un alimentador automático de mascotas. Mi nombre es Parker, estoy en el grado 11 y realicé este proyecto el 11 de noviembre de 2020 como CCA (Actividad culminante del curso) en este proyecto, les mostraré cómo hacer un comedero automático para mascotas con Arduino UNO. Puede elegir una hora que puede cambiar. ¡La comida se distribuirá a través de una barrena y alimentará a sus mascotas!

Suministros

Electrónica:

  • Arduino UNO
  • L298N - 10 $ - Controla el Nema 17
  • NEMA 17 - 10 $ - Gira la barrena para que la comida se dispense
  • RTC (DS1307) - 10 $ - Da el tiempo
  • Fuente de alimentación de 12V - 5 $ - Alimenta todo
  • Mini protoboard: para espacio adicional para el cableado
  • Cables de puente: conecta todo
  • Cables hembra a macho: conecta todo

Hardware:

  • Filamento de impresión 3D - para impresora 3D
  • 2 pernos M4: sujetan la placa base en su lugar
  • 4 tornillos Nema 17 - Mantenga pulsado nema
  • PVC T 48 mm dimensión interior 66 mm dimensión exterior - 3 $

Instrumentos:

  • impresora 3d
  • Taladro
  • Pistola de soldar

Paso 1: descripción general del diseño

Descripción general del diseño
Descripción general del diseño
Descripción general del diseño
Descripción general del diseño
Descripción general del diseño
Descripción general del diseño
Descripción general del diseño
Descripción general del diseño

El diseño del comedero para mascotas es muy sencillo. Una tolva se coloca en la parte superior del PVC T. Luego, una cubierta se coloca en la parte posterior del PVC T (como se muestra en la imagen) con el Nema 17 adjunto. Luego, el Nema 17 se empujará hacia la parte posterior de la barrena que se puede ver arriba y un perno entrará en el costado para mantenerlo en su lugar para que no deforme el orificio que se puede ver arriba.

Luego, la barrena simplemente empujará la comida fuera de la tubería y la colocará en un tazón.

Paso 2: descripción general del código

Descripción general del código
Descripción general del código
Descripción general del código
Descripción general del código
Descripción general del código
Descripción general del código

El RTC y el paso a paso tienen una biblioteca llamada RTClib.hy Stepper.h que agrega código simplificado para el RTC y el paso a paso. Las declaraciones if son muy simples, dice que si la hora y los minutos son iguales a dicho tiempo, rotará el nema que dispensará la comida. El resto del código es muy fácil de entender incluso para alguien con un día de experiencia.

Paso 3: Fijación de Nema 17 a la placa base y la barrena

Fijación de Nema 17 a la placa base y la barrena
Fijación de Nema 17 a la placa base y la barrena
Fijación de Nema 17 a la placa base y la barrena
Fijación de Nema 17 a la placa base y la barrena
Fijación de Nema 17 a la placa base y la barrena
Fijación de Nema 17 a la placa base y la barrena

Primero, debe tomar su placa base y fijarla a su Nema 17 usando los orificios prefabricados en la placa base. Una vez hecho esto, desea conectar la barrena al Nema usando el orificio trasero. Luego conecte la placa base con la barrena y el Nema adjuntos y luego atornille los pernos M2 en cada lado.

Paso 4: Cableado de L298N y RTC

Cableado L298N y RTC
Cableado L298N y RTC
Cableado L298N y RTC
Cableado L298N y RTC

Este paso le dirá cómo conectar el L298N y el RTC

Empezaremos por los pines 8, 9, 10, 11 al L298N

  • Pin 8 (blanco) a IN1
  • Pin 9 (púrpura) a IN2
  • Pin 10 (rosa) a IN3
  • PIN 11 (amarillo) a IN4

A continuación conectaremos el Nema 17 al L298N

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

Conectando 12v y Arduino a L298N (No se pudo encontrar 12V, así que imagine una batería de 9V como energía)

  • Voltios a 12V
  • Tierra a GND
  • 5 V a 5 V en placa de pruebas

Conectando RTC a Arduino

  • GND a GND
  • 5 V a 5 V en placa de pruebas
  • SDA a A5
  • SCL a A4

Pines de puente

Se supone que todos los pines de puente están en el L298N

Paso 5: codificación con comentarios

Codificación con comentarios
Codificación con comentarios
Codificación con comentarios
Codificación con comentarios
Codificación con comentarios
Codificación con comentarios

¡El código más claro en las imágenes de arriba

// Nombre: Parker Frederick

// Nombre del proyecto: Auto Pet Feeder // Fecha: Martes 10 de noviembre de 2020 // Maestra: M. Bonisteel // Desc: ¡Alimenta a tus mascotas en un momento determinado!

// Bibliotecas para las cosas que usé #include #include #include "RTClib.h"

RTC_DS1307 rtc; // Dice lo que estoy usando RTC

// Aquí es donde estableces el tiempo para la comida

// Horas int mornFeedTime = 12; int nightFeedTime = 7; // Minutos int mornFeedTimeM = 29; int nightFeedTimeM = 00; // Segundos int mornFeedTimeS = 20; int nightFeedTimeS = 00;

char daysOfTheWeek [7] [12] = {"Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado"}; // Hace que los días normales se conviertan en días de la semana

const int feed = 200; // Estos son tus pasos, ¿cuántas veces quieres que gire?

Stepper myStepper (avance, 8, 9, 10, 11); // Tus pines para el Nema 17 y la mayoría de los demás steppers

configuración vacía () {Serial.begin (9600);

mientras (! Serial); // Si el RTC no funciona, lo mostrará en la pantalla de serie if (! Rtc.begin ()) {Serial.println ("No se pudo encontrar el RTC"); mientras (1); }

// Esto le dirá si el reloj en tiempo real está funcionando o no y lo mostrará en la pantalla serial if (! Rtc.isrunning ()) {Serial.println ("¡RTC se está ejecutando!");

rtc.adjust (Fecha y hora (F (_ FECHA_), F (_ HORA_))); // Esto le tomará tiempo a su computadora y lo usará en el RTC

// Si desea tener una hora establecida en lugar de la hora de la computadora, puede hacerlo aquí //rtc.adjust(DateTime(2020, 10, 29, 8, 28, 0)); // Año / Mes / Día / Hora / Minuto / Segundo} myStepper.setSpeed (200); // Velocidad a la que quieres que gire}

bucle vacío () {Fecha y hora ahora = rtc.now ();

// Esto hará que estas variables sean la hora actual, etc. int hr = now.hour (); int mi = ahora.minuto (); int se = ahora.segundo ();

// Codifique para que a la hora establecida dispense la comida y centrifugue 5 veces, esto si es para la alimentación de la mañana

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

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

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

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

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

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

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

}

// Codifique para que a la hora establecida dispense la comida y centrifugue 5 veces, esto es para la alimentación nocturna

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

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

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

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

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

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

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

// Esto mostrará el AÑO, MES, DÍA, HORA, MINUTO, SEGUNDO en la serie

Serial.print (ahora.año (), DEC); Serial.print ('/'); Serial.print (ahora.mes (), DEC); Serial.print ('/'); Serial.print (ahora.día (), DEC); Serial.print ("("); Serial.print (daysOfTheWeek [ahora.dayOfTheWeek ()]); Serial.print (")"); Serial.print (ahora.hora (), DEC); Serial.print (':'); Serial.print (ahora.minuto (), DEC); Serial.print (':'); Serial.print (ahora.segundo (), DEC); Serial.println (); }

Sitio web que utilicé para RTC Eliminé la mayoría de las cosas además de las declaraciones if que dicen si el RTC está activado o desactivado. Utilicé principalmente este sitio web para aprender a programar el RTC

El sitio web que utilicé para el motor paso a paso me ayudó a comprender cómo programar el motor paso a paso para que se ejecute. Realmente no oculté nada. Simplemente me ayudó a entender cómo codificarlo

Paso 6: Problemas y cómo los solucioné

Problemas y cómo los solucioné!
Problemas y cómo los solucioné!

Algunos problemas que tuve

  • Necesitaba una fuente de alimentación de 12v, solo tenía una batería de 9v, encontré una y se resolvió rápido.
  • Cuando conecté L298N con NEMA 17, tenía los cables mal en A y A, lo que hizo que temblara un poco. Simplemente lo arreglé cambiando los cables al revés.
  • Intenté hacer el código más simple porque en la declaración if myStepper.step (-feed); una y otra vez se veía desordenado. Así que tuve que volver a cambiarlo.
  • Tenía la placa base del tamaño incorrecto como se ve en la imagen, así que tuve que imprimir en 3D una nueva un poco y ¡encajó perfectamente!
  • El problema que tengo es que se atasca, ya que la barrena es demasiado pequeña, por lo que se atasca de una manera sencilla que puedo solucionar ampliando la barrena un poco.

Recomendado: