/*
Author: Juan M. Gandarias
Date: 03/11/2023
Description: ejemplo_polling_problema1
*/
#define LED_PIN 26 // LED conectado a GPIO26
#define BUTTON_PIN 27 // Botón conectado a GPIO27
#define POT_PIN 4 // Potenciómetro conectado a GPIO04
double t; // Variable para contar tiempo
bool button_state = false; // Variable para guardar el estado del botón
void setup()
{
Serial.begin(115200); // Inicialización puerto serie
pinMode(LED_PIN, OUTPUT); // Configurar LED como output
pinMode(BUTTON_PIN, INPUT_PULLUP); // Configurar botón como input
t = 0.0; // Inicialización tiempo
}
void loop()
{
if (!digitalRead(BUTTON_PIN)) // Si se ha pulsado el botón (recordar que botón OFF = pulsado)
{
if (button_state) // Si el estado anterior era encendido
{
digitalWrite(LED_PIN, LOW); // Apago el LED
}
else // Si el estado anterior era apagado
{
digitalWrite(LED_PIN, HIGH); // Enciendo el LED
}
button_state = !button_state; // Almaceno en button_state que he cambiado de estado
}
// Mandar datos por puerto serie (frecuencia y valor del potenciómetro)
Serial.println("freq: ");
Serial.println(1 / double((millis() - t) / 1e3));
Serial.println("Sensor value: ");
Serial.println(analogRead(POT_PIN));
t = millis();
// Loop cada 50ms => 20Hz
delay(50);
}