//----------------------------------------------------------
// Variables Globales
int led_estado=0;
int pote_valor=0;
unsigned long tiempo_actual;
unsigned long tiempo_anterior;
//----------------------------------------------------------
// Definición de constantes
#define PIN_LED 2 // GPIO 2 (digital) -> LED
#define PIN_POT 34 // gpio 34 (analogico) -> POTENCIOMETRO
#define SERIAL_SPEED 9600 // Consola serie.
#define TIEMPO_MAX_MILIS 3000 // Medio segundo.
//----------------------------------------------------------
// Setup
void setup()
{
// Inicia concola serial
Serial.begin(SERIAL_SPEED);
// Inicia puerto digital -> LED
pinMode( PIN_LED, OUTPUT );
// Inicializa estado de LED.
led_estado = LOW;
// Toma la primera medición del tiempo.
tiempo_anterior=millis();
}
//----------------------------------------------------------
// Loop
void loop()
{
// Toma el tiempo actual.
tiempo_actual=millis();
// Verifica cuanto transcurrido de tiempo
if( (tiempo_actual-tiempo_anterior) >= TIEMPO_MAX_MILIS )
{
// Actualizo el tiempo anterior.
tiempo_anterior = tiempo_actual;
// Realizo la acción cuando se cumple el tiempo determinado
led_estado = !led_estado;
digitalWrite( PIN_LED, led_estado);
// Solo a modo informativo.
// Serial.println(millis());
}
//leo constantemente el valor los demás sensores.
// En este caso leo el potenciometro
pote_valor=analogRead(PIN_POT);
// Solo a modo informativo muestro el estado del LED.
Serial.print("LED: "); Serial.print(led_estado); Serial.print( " " );
// Solo a modo informativo muestro el valor del POTENCIOMETRO.
Serial.print("POT: "); Serial.println(pote_valor);
}
//----------------------------------------------------------