Paso 5: Magia pecho (receptor IR) - montar el circuito y el archivo de texto
1. conectar la tierra del Arduino en el bus negativo (-).
2. conectar el + 5V de Arduino para el bus positivo (+).
3. instalar el LED doblando las patillas para que el LED superpone al borde del tablero. Ver la imagen (cables quitados para mayor claridad).
4. Conecte el cable positivo (larga) al Pin13 Digital.
5. Conecte una resistencia de la negativa (corto) del LED.
6. conectar la resistencia al bus negativo.
7. Instale la foto IR LED doblar las patas para que la foto del IR LED superpone al borde de la Junta. Ver la imagen (cables quitados para mayor claridad).
8. Conecte el cable corto de la foto del IR LED al bus positivo.
9. Conecte el cable largo de la foto del IR LED a Pin0 analógico.
10. Conecte una segunda resistencia al IR foto LED y Pin0 analógico.
11. Conecte el resistor para el bus negativo.
Nota: La descripción de la instalación del diodo de la foto de IR es precisa. El diodo funciona evitando que el voltaje a través del conductor positivo. Cuando es presente, el diodo se convierte en un paso temporal y permite voltaje detectado en analógico Pin0.
12. Instale el servo conectando el control naranja (o amarillo) Cable Digital Pin9.
13. Conecte el cable rojo positivo de servo para el bus positivo.
14. Conecte el cable servo negativo marrón (o negro) al negativo bus.
15. conectar el Arduino a un puerto USB de un ordenador con el IDE.
16. compilar y cargar el archivo en el Arduino. Debe mover el servo y la luz del LED.
17. Pruebe el circuito utilizando un dispositivo emisor de IR y abrir al monitor serial USB en el IDE. Brillo que un emisor IR LED en el diodo de la foto de IR y el servo debe moverse mientras se enciende el LED.
17a. Si continúa el servo mover y el ' pos = ' muestra, tensión se detecta en el Pin0 analógico. Verifique el serial monitor muestra '0' que indica que no es presente. Verificar que no se invierte el diodo de la foto de IR cambiando la foto IR diodo conduce. Verifique que los cables negativos y resistor conectado a la tierra del Arduino y no cortocircuito a través de Pin0 analógico. Verificar que el Pin0 analógico no tiene una carga estática y se pega en posición cerrada (alta) quitando el cable y el cable para el Pin0 análogo a un dispositivo ESD de puesta a tierra.
17B. Si el LED no se enciende, verifique que el LED no se invierte y que el positivo se conecta a plomo correcto del LED.
17c. Si el servo no funciona, verifique que los colores de los cables están conectados correctamente.
A continuación texto código de Arduino:
/*
IRdetect en entrada analógica con luz LED y Servo
Lee un pin analógico de entrada en 0, imprime el resultado en el monitor serial
y se mueve un servo. Fije el fotodiodo IR al pin analógico 0 de entrada,
LED a la salida del pin digital 13, fuera pernos a + 5V y tierra.
Conecte cable de servo control amarillo (o naranja) al pin 9, rojo a + 5V,
y negro (o marrón) a la tierra.
*/
Inicializar
#include < Servo.h >
Servo chestservo; Crear el objeto servo para controlar el servo.
int pos = 0; Variable para almacenar la posición del servo.
int led13Pin = 13; Inicializar la variable 13 PIN 13.
Pines de configuración y variables
void setup() {}
Serial.Begin(9600); Configurar la comunicación serial a 9600 bits por segundo.
pinMode(led13Pin,OUTPUT); Configurar led13Pin como un pin de salida.
chestservo.Attach(9); Se fija el servo al pin 9 al objeto servo.
}
Función Loop
void loop() {}
int sensorValue = 0; Inicializar la variable a 0.
sensorValue = analogRead(A0); Define variable como leer entrada en el pin analógico 0.
Serial.println (sensorValue, DEC); Imprimir el valor de leer.
Delay(5); Retardo en mseg entre Lee para la estabilidad.
Si (sensorValue > 2) {/ / si mayor de valor, entonces la luz LED, mover servo,
y salida serial.
Serial.println ("sí alto"); Salida serie.
digitalWrite (led13Pin, HIGH); salida 2 º establece en alto o en.
para (pos = 0; pos < 180; pos += 1) {/ / para circuito va de 0 a 180 grados
en pasos de 1 grado. Se abre el pecho.
Serial.Print ("POS =");
Serial.Print(POS); Valor de salida serial de 'pos'.
chestservo.Write(POS); Servo se mueve a la variable 'pos'.
Delay(25); Retraso en milisegundos para permitir que el servo mover.
//}
para (pos = 180; pos > = 1; pos-= 1) {/ / para circuito va de 180 a 0 grados
en pasos de 1 grado si el servo se coloca en al revés. Se abre el pecho.
Serial.Print ("POS =");
Serial.Print(POS); Valor de salida serial de 'pos'.
chestservo.Write(POS); Servo se mueve a la variable 'pos'.
Delay(25); Retraso en milisegundos para permitir que el servo mover.
}
Serial.println("");
Delay(2400); Retraso en el pecho de MS está abierto.
para (pos = 1; pos < 180; pos += 1) {/ / bucle FOR va de 0 a 180 grados
en pasos de 1 grado si el servo se coloca en al revés. Pecho se cierra.
Serial.Print ("POS =");
Serial.Print(POS); Valor de salida serial de 'pos'.
chestservo.Write(POS); Servo se mueve a la variable 'pos'.
Delay(25); Retraso en milisegundos para permitir que el servo mover.
}
para (pos = 180; pos > = 1; pos-= 1) {/ / bucle FOR va de 180 a 0 grados
en pasos de 1 grado. Pecho se cierra.
Serial.Print ("POS =");
Serial.Print(POS); Valor de salida serial de 'pos'.
chestservo.Write(POS); Servo se mueve a la variable 'pos'.
Delay(25); Retraso en milisegundos para permitir que el servo mover.
//}
Serial.println("");
Delay(200); Retardo en mseg luz.
digitalWrite (led13Pin, bajo); 2 º salida a bajo o apagado.
} else {}
digitalWrite (led13Pin, bajo); Se establece por defecto LED salida LOW o OFF.
int sensorValue = 0; Set entero variable a 0.
} / / Fin de instrucción IF.
} / / Fin del bucle.