¿Estás interesado en la electrónica? ¡Participa en nuestro primer concurso electromaniático! Te damos la oportunidad...
Dispensador de Comida para mascotas con Arduino
¿Estarás fuera de tu casa por largas horas o no tienes con quien dejar a tu mascota? Con este tutorial aprenderás como hacer un dispensador de comida automático para tu mascota. No importa si estás en la oficina o simplemente ocupado en el trabajo de la casa, el poder para alimentar a su mascota está en la palma de su mano.
Materiales y partes
x1 | Arduino Uno | |
x1 | Sensor infrarrojo evasor de obstáculos o Sensor de Ultrasonido HC-SR04 | |
x1 | Micro Servomotor MG90S | |
x6 | Cables hembra macho | |
x6 | Cables macho macho | |
Silicona | ||
Concentrado | ||
Tu mascota |
⇒ Voltajes de entrada 3.3v o 5v
⇒ Salida análoga de 0v a 2.6v, para una entrada de 5v
⇒ Salida análoga de 0v a 1.4v, para una entrada de 3.3v
⇒ Salida digital, por interrupción de luz (con ajuste de umbral por medio de un potenciómetro)
Las características del sensor
⇒ Voltaje de entrada de 5v
⇒ Distancia de detección 2cm - 450cm
⇒ Presisión 0.3 cm
Recuerda que puedes utilizar cualquier tipo de sensor de distancia
Pasos y Diseño
Diseño mecánico
Para empezar, construimos la tolva, doblando el cartón en las
Debemos construir las paredes del dispensador, tomamos la pieza más grande del diseño y cortamos el agujero por donde va a salir el concentrado, doblamos por las partes punteadas, y unimos la pestaña con silicona, dejando la pestaña de la base de la caja sin unir. De esta forma:
A la misma altura de los agujeros de la tolva, hacemos dos agujeros en la caja del dispensador, uno en cada paredes laterales. Estos cuatro agujeros deben coincidir para que el eje de la tapa del dispensador pueda abrir y cerrar para que salga el concentrado.
Ahora hacemos un agujero para el sensor, justamente arriba de donde sale el concentrado. El tamaño del agujero depende del sensor que vayas a utilizar, ya sea el de sensor de Sutagao o cualquier otro.
Y lo ajustamos con Silicona
Procedemos a ajustar el servo motor al eje rotatorio del dispensador, para esto, hacemos una "T" con el eje rotatorio. El tamaño de la "T" depende del brazo del servo motor.
Ya tienes la parte mecánica. Ahora, aprenderás a conectar los elementos electrónicos y programar los sensores en el ARDUINO
Diseño Electrónico
Para el sensor infrarrojo evasor de obstáculos primero conectamos
⇒ Conectar A0 del sensor con A1 de arduino
⇒ Conectar GND con GND
En el caso del servo conectamos
⇒ Conectar cable rojo con 5V
⇒ Conectar cable naranja a PIN 9
⇒ Conectar cable café con GND
- Ensamble electrónico
⇒ Conectar +5V del sensor al pin 5V de arduino
⇒ Conectar pin Echo del sensor con pin 8 de arduino
⇒ Conectar pin Trigger del sensor con pin 9 de arduino
⇒ Conectar GND con GND
⇒ Conectar cable naranja a PIN 9
⇒ Conectar cable café con GND
- Ensamble electrónico
Software
Código para sensor evasor de obstáculos |
#include <Servo.h> // Incluímos la librería para poder controlar el servo Servo servoMotor; // Declaramos la variable para controlar el servo int pinReceptor = A1; //Establecemos el pin a leer int sensorVal; //Declaramos una variable para almacenar el valor de la lectura boolean leerSensor = true; void setup(){ Serial.begin(9600); // Abrimos comunicación Serial servoMotor.attach(9); servoMotor.write(150); } void loop(){ servoMotor.attach(9); sensorVal = analogRead(pinReceptor); //Guardamos la lectura del pin Analógico Serial.println("Analoga:"); Serial.println(sensorVal); //Sacamos la lectura por serial delay(500); //Pequeña pausa de medio segundo if (sensorVal <= 45 && leerSensor) { if(leerSensor){ leerSensor = false; } servoMotor.write(20); // Desplazamos a la posición 0º delay(2000); servoMotor.write(155); // Desplazamos a la posición 170º delay(2000); servoMotor.write(20); // Desplazamos a la posición 0º delay(2000); servoMotor.write(150); // Desplazamos a la posición 170º delay(2000); } } |
Código para sensor de Ultrasonido HC-SR04 |
// Incluímos la librería para poder controlar el servo #include <Servo.h> // DECLARACION DE VARIABLES PARA PINES const int pinecho = 8; const int pintrigger = 9; const int pinled = 13; // Declaramos la variable para controlar el servo Servo servoMotor; // VARIABLES PARA CALCULOS unsigned int tiempo, distancia; boolean leerSensor = true; void setup() { // PREPARAR LA COMUNICACION SERIAL Serial.begin(9600); // CONFIGURAR PINES DE ENTRADA Y SALIDA pinMode(pinecho, INPUT); pinMode(pintrigger, OUTPUT); servoMotor.write(0); } void loop() { servoMotor.attach(11); // ENVIAR PULSO DE DISPARO EN EL PIN "TRIGGER" digitalWrite(pintrigger, LOW); delayMicroseconds(2); digitalWrite(pintrigger, HIGH); // EL PULSO DURA AL MENOS 10 uS EN ESTADO ALTO delayMicroseconds(10); digitalWrite(pintrigger, LOW); // MEDIR EL TIEMPO EN ESTADO ALTO DEL PIN "ECHO" EL PULSO ES PROPORCIONAL A LA DISTANCIA MEDIDA tiempo = pulseIn(pinecho, HIGH); // LA VELOCIDAD DEL SONIDO ES DE 340 M/S O 29 MICROSEGUNDOS POR CENTIMETRO // DIVIDIMOS EL TIEMPO DEL PULSO ENTRE 58, TIEMPO QUE TARDA RECORRER IDA Y VUELTA UN cENTIMETRO LA ONDA SONORA distancia = tiempo / 58; // ENVIAR EL RESULTADO AL MONITOR SERIAL Serial.print(distancia); Serial.println(" cm"); delay(200); // ENCENDER SERVO CUANDO SE CUMPLA CON CIERTA DISTANCIA if (distancia <=16 && distancia >= 8 && leerSensor) { if(leerSensor){ leerSensor = false; } // Desplazamos a la posición 0º servoMotor.write(180); delay(2000); // Desplazamos a la posición 160º servoMotor.write(0); // Esperamos 3 segundo delay(2000); // Desplazamos a la posición 0º servoMotor.write(180); delay(2000); // Desplazamos a la posición 160º servoMotor.write(0); // Esperamos 3 segundo delay(2000); } } |
Calibración
Para la calibración abrimos el Monitor serial de Arduino, y vemos los valores que está leyendo el sensor; caracterizas el sensor, mirando los valores al acercar un objeto, y así sabes cuales valores son los necesarios para que abra la tapa del dispensador con el servo motor, al acercarse tu mascota.
Ensamble Final
Para finalizar ajustamos con tornillos el arduino a la base del dispensador
Conectamos el sensor, ya sea el Ultrasonido o el infrarrojo, pasando los cables hacia la base de la caja por el lado de la rampa del dispensador. Ten en cuenta los cables y contecta al arduino como explicamos anteriormente.
Haz el mismo procedimiento con los cables del motor, ten en cuenta que no se enreden con la T del eje rotatorio
Hagamos de Colombia un país más innovador
Últimos comentarios