ES32 Arduino
ES32 Arduino
h>
#define SensorUP A2
#define SensorDOWN A3
#define NUM_LEDS 61
#define DATA_PIN 8
CRGB leds[NUM_LEDS];
int S2 = 0, S3 = 0;
int Flag = 0;
int i = 0, j = 0, k = 0;
int x = 0, y = NUM_LEDS - 1;
enum state {WAIT, DIMM_UP_ON, DIMM_DOWN_ON, DELAY, DIMM_UP_OFF, DIMM_DOWN_OFF} state_up, state_down;
void sensorInicioEscalera()
S2 = digitalRead(SensorUP);
S3 = digitalRead(SensorDOWN);
state_up = DIMM_UP_ON;
Serial.println("state_up=DIMM_UP_ON");
S2 = 1;
state_down = DIMM_DOWN_ON;
Serial.println("state_down=DIMM_DOWN_ON");
S3 = 1;
Serial.print("A2:");
Serial.print(S2);
Serial.println(S3);
void Configuracion_Timer()
void setup()
Configuracion_Timer();
pinMode(LED_BUILTIN, OUTPUT);
pinMode(SensorUP, INPUT);
pinMode(SensorDOWN, INPUT);
Serial.begin(BAUDRATE);
FastLED.setBrightness(64);
startMillisD = currentMillis;
Serial.println("ES32 - Inicio");
startMillisA = millis();
void loop()
if (Flag == 0)
{
if (startMillisB - startMillisA > delay_start_up)
FastLED.clear();
FastLED.show();
S2=0;S3=0;
Flag = 1;
startMillisB = millis();
else
currentMillis = millis();
startMillisD = currentMillis;
sensorInicioEscalera();
if (state_up == DIMM_UP_ON)
escalera_inicio_UP();
escalera_inicio_DOWN();
ISR(TIMER1_COMPA_vect)
TCNT1 = 0; //First, set the timer back to 0 so it resets for next interrupt
void escalera_inicio_DOWN()
pausa = 4000;
if (state_up == DIMM_UP_ON)
delay(delay_ms);
FastLED.show();
S2 = digitalRead(SensorUP);
state_up = DIMM_UP_ON;
j = i;
pausa = pausa * 2;
state_down = DELAY;
if (state_up == DIMM_UP_ON)
state_up = DELAY;
//delay(pausa);
EVERY_N_MILLISECONDS(1)
pausa--;
S2 = digitalRead(SensorUP);
S3 = digitalRead(SensorDOWN);
if (S2 == 1 || S3 == 1) {
pausa = 8000;
S2 = 0;
S3 = 0;
Serial.println("------------- Inicio Nuevo Pausa -----------------");
if (pausa == 0)
state_down = DIMM_DOWN_OFF;
if (state_up == DELAY)
state_up = DIMM_UP_OFF;
if (state_up == DIMM_UP_OFF)
delay(delay_ms);
FastLED.show();
if (enable_up == false)
S2 = digitalRead(SensorUP);
if (enable_down == false)
S3 = digitalRead(SensorDOWN);
if (S2 == 1) {
S2 = 0;
enable_up = true;
if (S3 == 1) {
S3 = 0;
enable_down = true;
if (enable_up == true) {
state_up = DIMM_UP_ON;
enable_up = false;
state_down = DIMM_DOWN_ON;
enable_down = false;
void escalera_inicio_UP()
if (state_up == DIMM_UP_ON)
pausa = 4000;
if (state_down == DIMM_DOWN_ON)
delay(delay_ms);
FastLED.show();
S3 = digitalRead(SensorDOWN);
state_down = DIMM_DOWN_ON;
j = i;
pausa = pausa * 2;
state_up = DELAY;
if (state_down == DIMM_DOWN_ON)
state_down = DELAY;
//delay(pausa);
EVERY_N_MILLISECONDS(1)
pausa--;
S2 = digitalRead(SensorUP);
S3 = digitalRead(SensorDOWN);
if (S2 == 1 || S3 == 1) {
pausa = 8000;
S2 = 0;
S3 = 0;
if (pausa == 0)
state_up = DIMM_UP_OFF;
if (state_down == DELAY)
state_down = DIMM_DOWN_OFF;
if (state_down == DIMM_DOWN_OFF)
delay(delay_ms);
FastLED.show();
if (enable_up == false)
S2 = digitalRead(SensorUP);
if (enable_down == false)
S3 = digitalRead(SensorDOWN);
if (S2 == 1) {
S2 = 0;
enable_up = true;
if (S3 == 1) {
S3 = 0;
enable_down = true;
if (enable_up == true) {
state_up = DIMM_UP_ON;
enable_up = false;
if (enable_down == true) {
state_down = DIMM_DOWN_ON;
enable_down = false;