<목표>
- digitalWrite() 명령어를 이용하여 아두이노에 기본적으로 내장되어있는 LED를 점등하고 소등시킬 수 있다.
<준비물>
- 아두이노(나노, 우노, 메가), 시리얼 통신 케이블
<배선도>
없음
<코드>
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
코드는 아두이노 - 파일 - 예제 - 01.Basics - Blink 의 예제 파일과 동일 합니다.
예제파일을 쓰셔도 되고, 위의 코드를 복사하여 붙여넣으셔도 됩니다.
<아두이노에 업로드 하는 방법>
보드로는 자신이 사용하는 아두이노 보드를 선택합니다.
그 다음으로는 포트를 선택해야 합니다.
이 과정은 컴퓨터마다 다 다르게 뜨는데요, 저의 경우에는 COM12 에 아두이노 우노로 잡힌것이 확인되었습니다.
아두이노가 안뜨고 보통 COM3, COM4 이렇게 뜨실 수도 있습니다. 그거 선택하시면 됩니다.
프로그래머는 AVRISP mkll 로 선택되어 있는지 확인 합니다.
키보드에서 Ctrl+u 를 누르셔도 되고, 아두이노의 화살표를 눌러도 됩니다.
업로드가 완료되면 완료되었다고 뜨고, 아닌경우에 오류 메세지를 보여줍니다.
오류가 뜨면 다시 하면 업로드를 해보시거나, 처음부터 다시 따라해 보시기 바랍니다.
<실행 결과>
아두이노의 내장 LED가 1초 마다 점등과 소등을 반복하는 것을 확인할 수 있다.
그리고 아두이노 코드를 해석하자면
pinMode( pin_number , mode ) : pin_number에 해당하는 핀에 설정을 해주는 명령어, mode로는 INPUT(입력) 과 OUTPUT(출력)을 사용할 수 있다.
digitalWrite( pin_number , state ) : pin_number에 해당하는 핀에 전압을 설정하는 명령어, 전압을 가하거나(HIGH) 전압을 걸지 않게(LOW)할 수 있다.
delay( time ) : time에 해당하는 시간(단위 : ms)동안 멈추는 명령어, 코드가 진행하다가 delay 명령어에서 멈춰서 다음 코드로 넘어가지 못하게 한다. 1초를 멈추게 하려면 delay(1000) 을 사용한다.
즉, 코드의 내용을 보면
setup 부분에서
LED_BUILTIN에 해당하는 핀을 출력으로 사용하고
loop 부분에서
LED_BUILTIN에 해당하는 핀에 5V를 인가하고, 1초를 대기한 후에 전압을 걸지 않고, 또 1초를 대기한다.
그래서 1초마다 led 가 켜지고 꺼지게 하는 것을 반복할 수 있다.
여기서 핵심은 digitalWrite()를 이용하여 아두이노 각 핀에 5V를 걸어줄 수도 있고, 0V로 걸어줄 수 있다는 것이다.
물론 이전에 digitalWrite()로 전압을 인가하려면 pinMode()를 사용하여 해당 핀을 OUTPUT(출력)으로 설정을 해주어야 한다.
※ 궁금하시거나 질문사항이 있으시면 댓글로 작성해주시면 답변해 드릴 수 있는 부분에서 친절히 답변드리겠습니다!
'코딩 > 아두이노' 카테고리의 다른 글
[아두이노 강좌] 예제로 배우는 아두이노 #6 , 스위치 버튼으로 led 제어하기 (0) | 2020.03.25 |
---|---|
[아두이노 강좌] 예제로 배우는 아두이노 #5 analogWrite( ), 아두이노로 pwm 출력하기 (0) | 2020.03.25 |
[아두이노 강좌] 예제로 배우는 아두이노 #4 ReadAnalogVoltage, 아두이노로 전압측정하기 (2) | 2020.03.25 |
[아두이노 강좌] 예제로 배우는 아두이노 #3 analogRead()사용법 (0) | 2020.03.25 |
[아두이노 강좌] 예제로 배우는 아두이노 #2 digitalRead() 사용법, 버튼 상태 읽기 (0) | 2020.03.25 |
댓글