Arduino

2. NodeMCU(ESP8266) 아두이노 LED Blink

미스터로즈 2019. 4. 1. 20:02

1. LED On/Off 프로그래밍 코드(스케치) 

void setup() {
pinMode(D5, OUTPUT); 
}

void loop() { 
digitalWrite(D5, HIGH);
delay(1000); 
digitalWrite(D5, LOW);
delay(1000);
}

 

함수에 관한 정리는

setup() { }

중괄호 안에 있는 코드는 한 번만 실행됨. pinMode()함수와 같이 한 번만 사용하는 함수를 주로 넣음.

loop() { }

중괄호 안의 코드는 아두이노의 전원이 꺼질 때까지 실행됨. 괄호의 끝에 도달하면 다시 처음으로 되돌아감.

pinMode([핀번호], [모드]);

아두이노의 입출력 핀의 역할을 정함. 모드로는 주로 OUTPUT, INPUT을 사용.

digitalWrite([핀번호], [상태]);

출력핀에 디지털 신호를 보냄. 상태는 HIGH, LOW이며 HIGH는 5V, LOW는 0V가 출력됨.

delay([시간]);

설정한 시간만큼 잠시 프로그램을 정지함. ms단위이며 가급적이면 사용하지 않는 것이 좋음.

http://naver.varofla.com/221275685537 링크를 참고 

실습 1 1초에 한번씩 깜빡거린다.
pinMode 과 digitalWrite 에서 LED_BUILTIN를 OUTPUT을 D5로 수정해준다. 반복되는 코드에서는 digitalWrite(D5,HIGH); 로 불이 들어온 상태로 만들고 delay(1000); 코드를 통해서 1초간 딜레이를 시켜준다. digitalWrite(D5,LOW); 로 불이 커진 상태로 만들어 주고 다시 1초간 딜레이를 시켜주면 1초주기로 꺼지고 켜지고를 반복한다.

실습결과 : https://www.youtube.com/watch?v=BIf0OQK7OGk

실습2
위의 실습과 달라진 점은 for문을 추가해서 i의 값에 따라서 불이 켜지고 꺼지는 주기에 대한 수정을 추가해준 실습이다.

 

void setup() {
pinMode(D5, OUTPUT);

}
void loop() {
for (int i = 0; i < 10; ++i)
{
digitalWrite(D5, HIGH);
delay(20 * i);
digitalWrite(D5, LOW);
delay(20 * i);
}
}

실습결과 : https://www.youtube.com/watch?v=gSZtDA4XFBc

밝기를 어떻게 조절할 수 있나요?

 

void setup() {
pinMode(D5, OUTPUT);

}
void loop() {
for (int i = 0; i < 256; ++i)
{
analogWrite(D5, i);
delay(20 * i);
}
}

 

LED에 대한 밝기는 digitalWrite(D5,HIGH); 대신에 analogWrite(D5,밝기값); 을 넣어서 밝기를 바꾸는 방법을 찾았습니다. 여기서 밝기 값 0 ~ 255 사이의 값을 가지게 됩니다. High -> 255 Low -> 0