// กำหนดตัวแปรสำหรับแต่ละงาน
unsigned long previousLedMillis = 0;
unsigned long previousSensorMillis = 0;
unsigned long previousSerialMillis = 0;
const long ledInterval = 500; // LED กระพริบทุก 500ms
const long sensorInterval = 2000; // อ่านเซนเซอร์ทุก 2 วินาที
const long serialInterval = 10000; // ส่งข้อมูลทุก 10 วินาที
bool ledState = false;
void setup() {
Serial.begin(9600);
pinMode(LED_BUILTIN, OUTPUT);
pinMode(2, INPUT_PULLUP); // ปุ่มกด
}
void loop() {
unsigned long currentMillis = millis();
// งานที่ 1: LED กระพริบ
if (currentMillis - previousLedMillis >= ledInterval) {
previousLedMillis = currentMillis;
ledState = !ledState;
digitalWrite(LED_BUILTIN, ledState);
}
// งานที่ 2: อ่านเซนเซอร์
if (currentMillis - previousSensorMillis >= sensorInterval) {
previousSensorMillis = currentMillis;
int sensorValue = analogRead(A0);
Serial.print("Sensor: ");
Serial.println(sensorValue);
}
// งานที่ 3: ส่งข้อมูลผ่าน Serial
if (currentMillis - previousSerialMillis >= serialInterval) {
previousSerialMillis = currentMillis;
Serial.println("=== Status Report ===");
}
// งานที่ 4: ตรวจสอบปุ่มกด (ทำงานตลอดเวลา)
if (digitalRead(2) == LOW) {
Serial.println("Button Pressed!");
delay(50); // debounce สั้นๆ ได้
}
}