// Task delays (simulating time slices)
const unsigned long TASK1_DELAY = 500;
const unsigned long TASK2_DELAY = 1000;
const unsigned long TASK3_DELAY = 200;
unsigned long previousMillis1 = 0;
unsigned long previousMillis2 = 0;
unsigned long previousMillis3 = 0;
// Pin definitions
const int ledPin = 13;
const int buttonPin = 7;
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT_PULLUP);
Serial.begin(9600);
}
void loop() {
unsigned long currentMillis = millis();
// Task 1: Blink LED
if (currentMillis - previousMillis1 >= TASK1_DELAY) {
previousMillis1 = currentMillis;
digitalWrite(ledPin, !digitalRead(ledPin));
Serial.println("Task 1: LED toggled");
}
// Task 2: Print message
if (currentMillis - previousMillis2 >= TASK2_DELAY) {
previousMillis2 = currentMillis;
Serial.println("Task 2: Hello from Arduino");
}
// Task 3: Read button state
if (currentMillis - previousMillis3 >= TASK3_DELAY) {
previousMillis3 = currentMillis;
int buttonState = digitalRead(buttonPin);
Serial.print("Task 3: Button state = ");
Serial.println(buttonState == LOW ? "PRESSED" : "RELEASED");
}
}