Arduino

아두이노 스레드(Threads) LED와 Sensor

작성자 임베디드코리아 작성일26-05-18 14:41 조회92회 댓글0건
---<* Thread_LED-Sensor.ino  *>-----------------------------------------
#include <Thread.h>
#include <ThreadController.h>

// 스레드 및 컨트롤러 객체 생성
Thread ledThread = Thread();
Thread sensorThread = Thread();
ThreadController control = ThreadController();

int Sensor_Pin = 5;
int LED_Pin = 13;

void setup() {
  pinMode(LED_Pin, OUTPUT);
  pinMode(Sensor_Pin, INPUT);
  Serial.begin(9600);
 
  // 1번 작업: LED 켜고 끄기
  ledThread.onRun(blinkLED);
  ledThread.setInterval(1000); // 1초(1000ms) 주기
 
  // 2번 작업: 센서 값 읽기
  sensorThread.onRun(readSensor);
  sensorThread.setInterval(500); // 0.5초(500ms) 주기
 
  // 컨트롤러에 작업 등록
  control.add(&ledThread);
  control.add(&sensorThread);

}

void loop() {
  // 등록된 작업들을 주기마다 실행
  control.run();

}

// 1번 작업 함수
void blinkLED() {
  static bool state = false;
  state = !state;
  digitalWrite(LED_Pin, state);
}

// 2번 작업 함수
void readSensor() {
  // 센서 읽기 코드 작성
  Serial.print("센서 확인 : ");
  int buttonState = digitalRead(Sensor_Pin);
  Serial.println(buttonState);
}
--------------------------------------------------------------------------------