jueves, 4 de febrero de 2010

Sensor Piezoeléctrico

A continuación mostraremos un pequeño ejemplo para utilizar un sensor piezoeléctrico.
Este tipo de sensores detectan golpes, vibraciones, etc. Nos servirá cuando nuestro robot este en contacto con otro objeto o simplemente para detectar que se golpea la superficie sobre la que se encuentra colocado el sensor.



El programa encenderá el LED a cada golpe que reciba el sensor. Cambiaremos el color para ir contabilizando los golpes.

Implementaremos el sistema de la siguiente manera

+ 1º pin LED tricolor al pin 11 (digital)
- 2º pin LED tricolor al pin a ground
+ 3º pin LED tricolor al pin 10 (digital)
+ 4º pin LED tricolor al pin 9 (digital)

+ Piezo a través de resistencia (33O-990 Ohmios) al pin 0 (analógico)
- Piezo a ground






//Encenderemos el LED, rojo, verde o azul mientras que el sensor reciba señal de golpe.
//Por el monitor serie imprimiremos Golpe! cada vez que el piezo reciba señal.

const int rojo=11;
const int verde=10;
const int azul=9;

const int knockSensor=0;
const int umbral=50;

int sensorReading=0;
int aux=0;

void setup()
{
pinMode(knockSensor, INPUT);
pinMode(rojo, OUTPUT);
pinMode(verde, OUTPUT);
pinMode(azul, OUTPUT);
Serial.begin(9600);
}

void loop()
{
sensorReading=analogRead(knockSensor);
if (sensorReading<=umbral)
{
Serial.println("Golpe!");
if(aux%3==0)
{
analogWrite(rojo,0);
analogWrite(verde,0);
analogWrite(azul,1);
}
if(aux%3==1)
{
analogWrite(rojo,1);
analogWrite(verde,0);
analogWrite(azul,0);
}
if(aux%3==2)
{
analogWrite(rojo,0);
analogWrite(verde,1);
analogWrite(azul,0);
}
delay(200);
}
else
{
analogWrite(rojo,0);
analogWrite(verde,0);
analogWrite(azul,0);
aux+=1;
}
}

No hay comentarios:

Publicar un comentario