Está en la página 1de 4

MATERIALES

CANTIDAD OBJETO VALOR


1 ARDUINO UNO 35000
1 CARGADOR ARDUINO 5000
1 SENSOR ULTRASONICO 20000
1 SERVOMOTOR 20000
6 CABLES MACHO 600
6 CABLES HEMBRA 600
2 PLACAS DE CARTON 10000
OTROS 10000
TOTAL 101200

ESQUEMA DE CONEXIÓN DISPOSITIVOS ELECTRONICOS DISPENSADOR DE COMIDA

PROGRAMACION DEL DISPENSADOR AUTOMATIZADO DE COMIDA PARA PERRO

LA APLICACIÓN QUE SIRVE PARA PROGRAMAR SE LLAMA ARDUINO IDE

// Incluímos la librería para poder controlar el servo sin esta libreria no podemos hacer funcionar el
servo

#include <Servo.h>
// DECLARACION DE VARIABLES PARA PINES. EL PIN 8 Y 9 SON PINES QUE VAN CONECTADOS AL
SENSOR ULTRASONICO Y EL PIN 13 NOS SIRVE PARA VERIFICAR QUE EL PROGRAMA ESTA
CORRIENDO

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 ESPECIFICACIONES MINIMAS PARA QUE FUNCIONE


CORRECTAMENTE EL ARDUINO UNO

Serial.begin(9600);// ES LA VELOCIDAD DE LA TARJETA 9600 BITS POR SEGUNDO

// CONFIGURAR PINES DE ENTRADA Y SALIDA QUE VAN CONECTADOS AL SERVO MOTOR

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 MICROSEGUNDOS 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);

También podría gustarte