lunes, 19 de abril de 2010

URM V3.2 Ultrasonic Sensor

En el siguiente ejemplo vamos a utilizar un sensor de ultrasonidos, el URM V3.2



Este sensor nos devuelve la distancia a la que se encuentra un objeto.
Encenderemos un LED rojo cuando un objeto se encuentre muy próximo, un LED azul cuando se encuentre a una distancia media, y un LED verde cuando el objeto se encuentre lejano.
Este sensor tiene un rango de 5-5000 cm

El circuito lo implementaremos de la siguiente manera:

URM V3.2 Ultrasonic Sensor
--------------------------
pin 7 URM --> pin 9 arduino
pin 6 URM --> pin 10 arduino
pin 4 URM --> pin 11 arduino
pin 2 URM --> ground arduino
pin 1 URM --> pin 12 arduino

URM V3.2



URM.pde


//Comprobamos la distancia de un objeto al sensor URM V3.2
//Utilizaremos un LED tricolor para representar la distancia de un objeto al sensor
int ultraData = 11;
int ultraTrigger = 10;
int ultraEnable=9;
int ultraPower=12;
int val = 0;
int ultraValue = 0;
int timecount = 0;

const int rojo=2;
const int verde=3;
const int azul=4;

void setup()
{
Serial.begin(9600);
pinMode(ultraPower, OUTPUT);
pinMode(ultraEnable, OUTPUT);
pinMode(rojo, OUTPUT);
pinMode(verde, OUTPUT);
pinMode(azul, OUTPUT);
digitalWrite(ultraPower, HIGH);
digitalWrite(ultraEnable, HIGH);
delay(200);
}

void loop()
{
ultraValue = 0;
timecount = 0;
val = 0;
pinMode(ultraTrigger, OUTPUT);
digitalWrite(ultraTrigger, HIGH);
delayMicroseconds(500);
digitalWrite(ultraTrigger, LOW);
delayMicroseconds(200);
digitalWrite(ultraTrigger, HIGH);
delayMicroseconds(200);
pinMode(ultraData, INPUT);

do
{
val=digitalRead(ultraData);
}while(val==HIGH);

do
{
val=digitalRead(ultraData);
timecount++;
delayMicroseconds(50);
}while(val==LOW);

ultraValue=timecount;
Serial.println(ultraValue);

if(ultraValue<40)
{
analogWrite(rojo, 50);
}
else
{
digitalWrite(rojo, LOW);
}
if(ultraValue>=40 && ultraValue<100)
{
analogWrite(azul, 50);
}
else
{
digitalWrite(azul, LOW);
}
if(ultraValue>=100)
{
analogWrite(verde, 50);
}
else
{
digitalWrite(verde, LOW);
}
Serial.flush();
delay(50);
}

No hay comentarios:

Publicar un comentario