Implementaremos el sistema de la siguiente manera
+ Lado positivo sensor de luz a +5V
+ Lado positivo sensor de luz al pin 1 (analógico)
- Lado negativo sensor de luz a ground
+ Lado positivo LED1 y 2 a los pines 9 y 10 (digital)
- Lado negativo LED1 y 2 a ground
+ Lado positivo botón a +5V.
+ Lado positivo botón al pin 7 (digital)
- Lado negativo botón a ground
const int pinLed1=9;
const int pinLed2=10;
int boton=7;
int contadorBoton=0;
int lastState=0;
int state=0;
int sensorLuz=1;
int sensorValor=0;
int sensorMax=0;
int sensorMin=1023;
int ultimoTiempo=0;//Auxiliar para la comprobacion de tiempo
int tiempo=100;//Tiempo que hace cada comprobacion iterativamente
void setup()
{
pinMode(pinLed1, OUTPUT);
pinMode(pinLed2, OUTPUT);
pinMode(boton, INPUT);
pinMode(sensorLuz, INPUT);
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);//Leemos la señal del sensor de LUZ
sensorValor=map(sensorValor, sensorMin, sensorMax, 0, 255);//Se mapea la señal del sensor de Luz, se le da los valores maximos y minimos y el rango
sensorValor=constrain(sensorValor, 0, 255);//Limitamos el valor al rango que queremos 0-255
if(millis()-ultimoTiempo>tiempo)//Cada 'tiempo' controlamos el valor del sensor
{
ultimoTiempo=millis();
if(sensorValor>100)
{
if(((25*contadorBoton)%256)<26)
{
digitalWrite(pinLed1,LOW);
}
else
{
analogWrite(pinLed1, ((25*contadorBoton)%256));
digitalWrite(pinLed2,LOW);
}
}
else
{
if(((25*contadorBoton)%256)<26)
{
digitalWrite(pinLed2,LOW);
}
else
{
analogWrite(pinLed2, ((25*contadorBoton)%256));
digitalWrite(pinLed1,LOW);
}
}
}
}
No hay comentarios:
Publicar un comentario