blinked_heart — ESP32 simulation

An interactive ESP32 circuit simulation you can run free in your browser on Velxio, by duy-doan107hcmut.

Components

Sketch code

// ESP32 Blink LED
// Blinks the built-in LED (GPIO2) and an external LED (GPIO4)
// Requires arduino-esp32 2.0.17 (IDF 4.4.x) — see docs/ESP32_EMULATION.md

#define LED12 12
#define LED27 27
#define LED25 25
#define LED33 33

#define LED15  15
#define LED4    4
#define LED5    5
#define LED21  21

const int leds[] = {LED33, LED25, LED27, LED12, LED15, LED5, LED21, LED4};
const int ledNum = 8;
bool blinked = true;

void ledTask(void *parameter){
  int step = 0;
  while(1){
    Serial.print("Step: ");
    Serial.println(step);
    
    for (int i = 0; i < ledNum; ++i){
      digitalWrite(leds[i], LOW);
    }

    if (step == 0) {
      for (int i = 0; i < ledNum; ++i){
        digitalWrite(leds[i], HIGH);
      }
    }

    else if (step == 1) {
      for (int i = 0; i < ledNum; ++i){
        digitalWrite(leds[i], LOW);
      }
    }

    else if (step >= 2 && step <= 9){
      int idx = step - 2;
      digitalWrite(leds[idx], HIGH);
    }

    else if (step >= 10 && step <= 17){
      int idx = 17 - step;
      digitalWrite(leds[idx], HIGH);
    }

    else {
      for (int i = 0; i < ledNum; ++i){
        digitalWrite(leds[i], blinked);
      }
      blinked = !blinked;
    }

    step++;
    vTaskDelay(pdMS_TO_TICKS(500));
  }
}

void setup() {
  for (int i = 0; i < ledNum; ++i){
    pinMode(leds[i], OUTPUT);
  }
  Serial.begin(115200);
  xTaskCreate(ledTask, "heartLed", 2048, NULL, 1, NULL);
}

void loop() {
}

More projects by duy-doan107hcmut