#include <Adafruit_NeoPixel.h>
int power = 34;
int starter = 35;
int relay_main = 23;
int power_status = 0;
int lastButtonState = 0;
bool systemState = false;
#define LED_PIN 4
#define LED_COUNT 16
Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);
void setup() {
Serial.begin(115200);
Serial.println("Hello, ESP32!");
pinMode(power, INPUT);
pinMode(relay_main, OUTPUT);
digitalWrite(relay_main, LOW);
pinMode(starter, INPUT);
strip.begin();
strip.show();
//task for motor
xTaskCreatePinnedToCore(
motormechTask, // Task function
"MotorMechTask", // Name of the task
10000, // Stack size
NULL, // Parameters
1, // Priority
NULL, // Task handle
0 // Core ID (0 or 1)
);
}
void loop() {
power_status = digitalRead(power);
if (power_status == LOW && lastButtonState == HIGH) {
systemState = !systemState;
digitalWrite(relay_main, systemState ? HIGH : LOW);
Serial.println(systemState ? "System ON" : "System OFF");
delay(300);
}
lastButtonState = power_status;
delay(10);
}
void motormechTask(void *pvParameters) {
while (true) {
// Loop through each LED and light them up one by one
for (int i = 0; i < LED_COUNT; i++) {
strip.clear();
strip.setPixelColor(i, strip.Color(255, 0, 0));
strip.show();
delay(100);
}
}
}