domingo, 14 de febrero de 2010

Sensores IR III

En el siguiente programa tenemos 3 sensores infrarojos, y cada uno de ellos tiene control sobre dos LEDs. Cuando pasemos un objeto por delante de los sensores IR se encenderán los LEDs correspondientes.

El sistema lo implementaremos así:

Conectamos el emisor IR al pin 2
Conectamos el receptor IR a la entrada del pin analogico 3
Conectamos +5V al emisor IR
Conectamos -Ground al receptor

Conectamos el emisor IR al pin 3
Conectamos el receptor IR a la entrada del pin analogico 2
Conectamos +5V al emisor IR
Conectamos -Ground al receptor

Conectamos el emisor IR al pin 4
Conectamos el receptor IR a la entrada del pin analogico 1
Conectamos +5V al emisor IR
Conectamos -Ground al receptor

Conectamos pin 9 a los lados positivos de dos LEDs
Conectamos pin 10 a los lados positivos de dos LEDs
Conectamos pin 11 a los lados positivos de dos LEDs
Conectamos lado negativo de todos los LEDs a -Ground






const int sensorInfrarojo1=3;
const int sensorInfrarojo2=2;
const int sensorInfrarojo3=1;

const int pinLed1=9;
const int pinLed2=10;
const int pinLed3=11;

const int emisor1=2;
const int emisor2=3;
const int emisor3=4;

int sensorValorA=0;
int sensorValorB=0;
int sensorValorC=0;

void setup()
{
Serial.begin(9600);
pinMode(sensorInfrarojo1, INPUT);
pinMode(sensorInfrarojo2, INPUT);
pinMode(sensorInfrarojo3, INPUT);
pinMode(pinLed2, OUTPUT);
pinMode(pinLed3, OUTPUT);
pinMode(pinLed1, OUTPUT);
pinMode(emisor1, OUTPUT);
pinMode(emisor2, OUTPUT);
pinMode(emisor3, OUTPUT);
digitalWrite(emisor1, HIGH);//El emisor del sensor IR ha de estar siempre activo
digitalWrite(emisor2, HIGH);//El emisor del sensor IR ha de estar siempre activo
digitalWrite(emisor3, HIGH);//El emisor del sensor IR ha de estar siempre activo
}
//Los valores para calibrar la distancia del sensor IR dependen de cada sensor, siendo todos del mismo modelo cambian sus valores
//Segun trabajemos con luz natural o no las calibraciones son diferentes por la contaminacion de cualquier fuente de luz en el IR.
void loop()
{
sensorValorA=analogRead(sensorInfrarojo1);
sensorValorB=analogRead(sensorInfrarojo2);
sensorValorC=analogRead(sensorInfrarojo3);
Serial.print("1.- ");
Serial.print(sensorValorA);//Sacamos por el monitor serie los valores que recibimos del sensor IR
Serial.print("\n");//Hemos llegado a la conclusion que 912 es el valor crítico para el sensor con luz ambiente
Serial.print("2.- ");
Serial.print(sensorValorB);//Sacamos por el monitor serie los valores que recibimos del sensor IR
Serial.print("\n");//Hemos llegado a la conclusion que 895 es el valor crítico para el sensor con luz ambiente
Serial.print("3.- ");
Serial.print(sensorValorC);//Sacamos por el monitor serie los valores que recibimos del sensor IR
Serial.print("\n");//Hemos llegado a la conclusion que 877 es el valor crítico para el sensor con luz ambiente

if((sensorValorC)<877)
{
digitalWrite(pinLed3, HIGH);
}
else
{
digitalWrite(pinLed3, LOW);
}
if((sensorValorA)<912)
{
digitalWrite(pinLed1, HIGH);
}
else
{
digitalWrite(pinLed1, LOW);
}
if((sensorValorB)<895)
{
digitalWrite(pinLed2, HIGH);
}
else
{
digitalWrite(pinLed2, LOW);
}
}

No hay comentarios:

Publicar un comentario