//----------------------------------------------------------
// Variables Globales
int led_estado = 0;
int pote_valor = 0;
//----------------------------------------------------------
// Definición de constantes
#define PIN_LED 2 // GPIO 2 (digital) -> LED
#define PIN_POT 34 // GPIO 34 (analógico) -> POTENCIÓMETRO
#define SERIAL_SPEED 9600 // Velocidad del puerto serie
#define TAM_PILA 1024
#define PRIORIDAD 1
#define TIEMPO_TIMER 5000 // Cada 5 segundo (en milisegundos)
//----------------------------------------------------------
// Handler del timer por HW
void tareaBlinkLed(void *parameter)
{
while(1){
// Realiza la acción cuando se cumple el tiempo determinado
led_estado = !led_estado;
digitalWrite(PIN_LED, led_estado);
vTaskDelay(pdMS_TO_TICKS(TIEMPO_TIMER));
}
}
//----------------------------------------------------------
// Setup
void setup()
{
// Inicia consola serie
Serial.begin(SERIAL_SPEED);
// Configura pin digital como salida -> LED
pinMode(PIN_LED, OUTPUT);
xTaskCreate(tareaBlinkLed,"Tarea_Blink_led",TAM_PILA,NULL,PRIORIDAD,NULL);
}
//----------------------------------------------------------
// Loop
void loop()
{
// Lee constantemente el valor del potenciómetro
pote_valor = analogRead(PIN_POT);
// Solo a modo informativo, muestra el estado del LED
Serial.print("LED: ");
Serial.print(led_estado);
Serial.print(" ");
// Solo a modo informativo, muestra el valor del potenciómetro
Serial.print("POT: ");
Serial.println(pote_valor);
vTaskDelay(pdMS_TO_TICKS(100));
}