5.4.4 Proyecto 2.2. Lámpara de mesa
1. Descripción
Para una lámpara de mesa simple y común, al pulsar el botón se encenderá; al pulsarlo de nuevo, la lámpara se apagará.
2. Código de prueba
Cuenta las veces que se pulsa el botón y toma el resto al dividir por 2; obtendrás 0 o 1 como los dos estados.
#define btn1 16
#define led_y 12
int btn_count = 0; // Counter for button presses
void setup()
{
Serial.begin(9600);
pinMode(btn1, INPUT);
pinMode(led_y, OUTPUT);
}
void loop()
{
boolean btn1_val = digitalRead(btn1);
if(btn1_val == 0) // If button is pressed
{
delay(10); // 10ms delay for debouncing
if(btn1_val == 0) // Confirm button is still pressed
{
boolean btn_state = 1;
while(btn_state == 1) // Loop until button is released
{
boolean btn_val = digitalRead(btn1);
if(btn_val == 1) // If button is released
{
btn_count++; // Increment press counter
Serial.println(btn_count);
btn_state = 0; // Exit loop
}
}
}
boolean value = btn_count % 2; // Modulo operation (0 or 1)
if(value == 1)
{
digitalWrite(led_y, HIGH); // Turn LED on
}
else
{
digitalWrite(led_y, LOW); // Turn LED off
}
}
}
3. Resultado de la prueba
Abre el monitor serial e imprime el número de pulsaciones del botón; al pulsarlo una vez, el LED se encenderá; al pulsarlo de nuevo, se apagará.
