jueves, 4 de febrero de 2010

Sensor Piezoeléctrico II

Con el siguiente programa cambiaremos el color de un LED tricolor a cada golpe que sea recibido por el sensor piezoeléctrico.
La intensidad del LED será controlada por un botón.

El circuito lo implementaremos de la siguiente forma:

+ 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

+ Boton al pin 2 (digital)
+ 5V al lado positivo del botón
- Boton a Ground







//Cambiaremos de color el LED a cada 'golpe' que reciba el sensor piezo.
//Aumentaremos la intensidad del LED pulsando el botón repetidamente.

const int pinBoton=2;
int contadorBoton=0;
int estadoBoton=0;
int lastEstadoBoton=0;

const int pinPiezo=0;
int umbral=75;
int valorPiezo=0;

int aux=0;

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

void setup()
{
pinMode(pinBoton, INPUT);
pinMode(pinPiezo, INPUT);
pinMode(rojo, OUTPUT);
pinMode(verde, OUTPUT);
pinMode(azul, OUTPUT);
}

void loop()
{
estadoBoton=digitalRead(pinBoton);
if(estadoBoton!=lastEstadoBoton)
{
if(estadoBoton==HIGH)
{
contadorBoton++;
}
lastEstadoBoton=estadoBoton;
}
valorPiezo=analogRead(pinPiezo);
if(valorPiezo<=umbral)
{
aux++;
if(aux%3==0)
{
analogWrite(rojo, ((contadorBoton*25)%125));
analogWrite(verde, 0);
analogWrite(azul, 0);
}
if(aux%3==1)
{
analogWrite(rojo, 0);
analogWrite(verde, ((contadorBoton*25)%125));
analogWrite(azul, 0);
}
if(aux%3==2)
{
analogWrite(rojo, 0);
analogWrite(verde, 0);
analogWrite(azul, ((contadorBoton*25)%125));
}
}
}

No hay comentarios:

Publicar un comentario