LED 기본예제 소스(1초 단위로 LED 깜박이기)
void setup() {
pinMode(13, OUTPUT);
}
void loop() {
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
}
릴레이효과 소스
unsigned long previousMillis = 0;
const long interval = 1000;
void loop() {
unsigned long currentMillis = millis();
if(currentMillis - previousMillis >= delayTime){
previousMillis = currentMillis;
원하는 동작;
}
}
두 코딩을 합치면
int led = 13; //Red LED 핀번호
unsigned long previousMillis = 0; //이전시간
const long delayTime = 1000; //1초(1000) 대기시간
boolean ledState = false; //LED 현재상태
void setup() {
pinMode(led, OUTPUT); //13번 핀을 출력모드로 사용.
}
void loop() {
unsigned long currentMillis = millis(); //현재시간값 가져옴
if(currentMillis - previousMillis >= delayTime){ //1000초 시간이 흘렀는지 체크
previousMillis = currentMillis; //1초가 지나 참임으로 1초 지난 현재시간을 이전시간에 저장
ledState=!ledState; //1초 if문이 참이니깐 1초 단위로 ledState 값을 반전시키면 1초 단위로 참/거짓됨.
digitalWrite(led, ledState); //참(5V) or 거짓(0V)
}
}
10초간 릴레이가 ON 되고 5초간 OFF 되는 프로그램
사실 소스는 별거 없다. 어떤 센서를 이용하여 어떤 상황에서 전원을 ON/OFF를 할지가 가장 중요하다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
//KY019 5V 릴레이 모듈
int relay = 10; //릴레이에 5V 신호를 보낼 핀설정
void setup ()
{
pinMode (relay, OUTPUT); // relay를 output으로 설정한다.
}
void loop ()
{
digitalWrite (relay, HIGH); // 릴레이 ON
delay (10000); //10초 delay
digitalWrite (relay, LOW); // 릴레이 OFF
delay (5000); //5초 delay
}
|
cs |
'Arduino' 카테고리의 다른 글
dtostrf(), sprintf() (1) | 2023.01.26 |
---|---|
String 클래스 (0) | 2022.03.13 |
Serial 내부 라이브러리 (0) | 2022.03.13 |
Arduino and Visual Basic Part 3: Controlling an Arduino (0) | 2022.03.13 |
Arduino and Visual Basic Part 2: Receiving Data From the Arduino (0) | 2022.03.13 |