Paso 2: Programar el Arduino
1-se necesita incluir la biblioteca de IR en Arduino (este es el link)2 º-ponga en el código (adjunto)
3-use el botón #1 para abrir el servo y el botón #2 para cerrarla
Aquí está el código-
#include < Servo.h >
#include < Ultrasonic.h >
#include "IRremote.h"
#define TRIGGER_PIN 12 / / activar el sensor de ultrasonidos
#define ECHO_PIN 13 / / sensor ultrasónico eco
#define distancia 20 / / en centímetros
#define espera 5000 / / en milisegundos así que esto es de 5 segundos.
#define SERVO_PIN 9
#define CLOSE_POS 90 / / servo cierre/posición
#define OPEN_POS 180 / / posición del servo en abierto y la espalda
/ *---(Declarar constantes)---* /
receptor de int = 11; Pin 1 del receptor de IR para pin digital de Arduino 11
/ *---(Declarar objetos)---* /
Irrecv(receiver) de IRrecv; Crear instancia de 'irrecv'
resultados de la decode_results; Crear instancia de 'decode_results'
/ *---(Declarar Variables)---* /
Ultrasónico ultrasónico (TRIGGER_PIN, ECHO_PIN);
Servo myservo; crear objeto servo para controlar el servo PEZ
void setup()
{
Serial.Begin(9600);
myservo.Attach(SERVO_PIN); se fija el servo a la clavija
myservo.Write(CLOSE_POS); Gire servo a la posición de cierre o hasta
Serial.println ("datos brutos del receptor de infrarrojos + botón Decode prueba");
irrecv.enableIRIn(); Inicio del receptor
}
void loop()
{
¿Si (irrecv.decode (y resultados)) / / hemos recibimos una señal de IR?
{
Serial.println (results.value, hexagonal); UN comentario para ver valores crudos
translateIR();
irrecv.resume(); recibir el siguiente valor
}
}
flotador cmMsec, inMsec;
microsec largo = ultrasonic.timing();
//
cmMsec = ultrasonic.convert (microsec, Ultrasonic::CM);
inMsec = ultrasonic.convert (microsec, Ultrasonic::IN);
//
Esto es para la depuración
Serial.Print ("MS:");
Serial.Print(microsec);
Serial.Print (", CM:");
Serial.Print(cmMsec);
Serial.Print (", en:");
Serial.println(inMsec);
Delay(1000);
//
void setup() / *---(configuración: funciona una vez)---* /
//
/ / Serial.begin(9600);
Serial.println ("datos brutos del receptor de infrarrojos + botón Decode prueba");
irrecv.enableIRIn(); Inicio del receptor
//
} / *--(configuración final)---* /
//
void loop() / *---(bucle: funcionamientos constantemente)---* /
// {
¿Si (irrecv.decode (y resultados)) / / hemos recibimos una señal de IR?
//
// {
Serial.println (results.value, hexagonal); UN comentario para ver valores crudos
translateIR();
irrecv.resume(); recibir el siguiente valor
// }
} / *--(bucle principal de la final)--* /
/ *---(Declarar funciones escritas por el usuario)---* /
void translateIR() / / actúa basado en el código de IR que recibió
Descripción de códigos infrarrojos de MP3 de coche
{
Switch(Results.Value)
{
caso 0xFF30CF:
Serial.println ("1");
myservo.Write(OPEN_POS); Dile servo para ir a abrir y la espalda
rotura;
caso 0xFF18E7:
Serial.println ("2");
myservo.Write(CLOSE_POS); Dile servo para ir a cerrar o hasta
rotura;
por defecto:
Serial.println ("otro botón");
}
Delay(500);
}
myservo.Write(CLOSE_POS); Dile servo para ir a cerrar o hasta
Delay(15); espera 15ms para el servo a la posición
//
//
//
myservo.Write(OPEN_POS); Dile servo para ir a abrir y la espalda
Delay(Waiting); espera en algún momento para permitir la apropiación de la pelotilla de caramelo
//
//
//}