// R = (Vfuente – Vled) / I
// Rojo: Min. 1.8V | Typ. 2.0 | Max. 2.2V
// Verde: Min. 3V | Typ. 3.2 | Max. 3.4V
// Azul: Min. 3V | Typ. 3.2 | Max. 3.4V
// R_rojo = (5V - 2.2V) / 20mA = 140 ohms
// R_verde = (5V - 3.4V) / 20mA = 80 ohms
// R_azul = (5V - 3.4V) / 20mA = 80 ohms
const int
PIN_LED_ROJO = 27,
PIN_LED_VERDE = 26,
PIN_LED_AZUL = 25;
unsigned long
tiempoActual = 0,
tiempoLedRojo = 0,
tiempoLedVerde = 0,
tiempoLedAzul = 0;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("Hello, ESP32!");
pinMode(PIN_LED_ROJO, OUTPUT);
pinMode(PIN_LED_VERDE, OUTPUT);
pinMode(PIN_LED_AZUL, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
tiempoActual = millis();
if ((tiempoActual - tiempoLedRojo) >= 1000) {
digitalWrite(PIN_LED_ROJO, HIGH);
digitalWrite(PIN_LED_VERDE, LOW);
digitalWrite(PIN_LED_AZUL, LOW);
tiempoLedRojo = tiempoActual;
}
if ((tiempoActual - tiempoLedVerde) >= 2000) {
digitalWrite(PIN_LED_ROJO, LOW);
digitalWrite(PIN_LED_VERDE, HIGH);
digitalWrite(PIN_LED_AZUL, LOW);
tiempoLedVerde = tiempoActual;
}
if ((tiempoActual - tiempoLedAzul) >= 3000) {
digitalWrite(PIN_LED_ROJO, LOW);
digitalWrite(PIN_LED_VERDE, LOW);
digitalWrite(PIN_LED_AZUL, HIGH);
tiempoLedAzul = tiempoActual;
}
}