Con un botón podremos ir cambiando el color que generará el LED
El circuito lo implementaremos de la siguiente forma:
+ 1º pin LED tricolor al pin 9 (digital)
- 2º pin LED tricolor al pin a ground
+ 3º pin LED tricolor al pin 10 (digital)
+ 4º pin LED tricolor al pin 11 (digital)
+ Botón al pin 2 (digital)
+ 5V al lado positivo del botón
- Boton a ground
+ Sensor luz al pin 0 (analógico)
+ Sensor luz al +5V
- Sensor luz a ground
const int rojo=9;
const int verde=10;
const int azul=11;
const int boton=2;
int contadorBoton=0;
int state=0;
int lastState=0;
const int sensorLuz=0;
int sensorValor=0;
int sensorMax=0;
int sensorMin=1026;
void setup()
{
pinMode(boton,INPUT);
pinMode(sensorLuz,INPUT);
pinMode(rojo,OUTPUT);
pinMode(verde,OUTPUT);
pinMode(azul,OUTPUT);
digitalWrite(13, HIGH);//Durante los 5 primeros segundos encendemos el LED de la placa mientras hace operaciones
while(millis()<5000)//Da valores maximos y minimos a al sensor de luz
{
sensorValor=analogRead(sensorLuz);
if(sensorValor>sensorMax)
{
sensorMax=sensorValor;
}
if (sensorValor
sensorMin=sensorValor;
}
}
digitalWrite(13, LOW);//Apagamos el LED de la placa
}
void loop()
{
state=digitalRead(boton);
if(state!=lastState)
{
if(state==HIGH)
{
contadorBoton++;
}
lastState=state;
}
sensorValor=analogRead(sensorLuz);
sensorValor=map(sensorValor, sensorMin, sensorMax, 0, 255);
sensorValor=constrain(sensorValor, 0, 255);
if(contadorBoton%5==1)
{
analogWrite(rojo, sensorValor);
analogWrite(verde, 0);
analogWrite(azul, 0);
}
if(contadorBoton%5==2)
{
analogWrite(rojo, 0);
analogWrite(verde, 0);
analogWrite(azul, sensorValor);
}
if(contadorBoton%5==3)
{
analogWrite(rojo, 0);
analogWrite(verde, 12);
analogWrite(azul, sensorValor);
}
if(contadorBoton%5==4)
{
analogWrite(rojo, 0);
analogWrite(verde, sensorValor);
analogWrite(azul, 0);
}
if(contadorBoton%5==0)
{
analogWrite(rojo, sensorValor/2);
analogWrite(verde, sensorValor);
analogWrite(azul, sensorValor);
}
}
No hay comentarios:
Publicar un comentario