LED의 긴 다리가 아두이노의 13번 핀과 연결하도록 하고 짧은 다리와 같은 라인에 저항의 한 다리를 연결합니다. 그리고 저항의 나머지 다리는 접지(Gnd)와 연결되도록 구성합니다. 여기서 LED의 긴 다리에 아두이노의 5V 핀이 아닌 13번 핀을 연결한 이유는 뭘까요? 5V 핀에 연결하면 LED는 정상적으로 점등됩니다. 그러나 이번 시간에는 LED를 1초씩 점등, 소등을 반복하는 제어를 하기 위해 13번 핀에 연결하였습니다.
회로가 정상적으로 구현되었다면 이제 프로그래밍을 할 차례입니다. 아두이노 IDE를 실행시켜 다음과 같이 입력합니다.
void setup() {
// put your setup code here, to run once:
pinMode(13, OUTPUT); //13번 핀을 출력용으로 사용
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(13, HIGH); //13번 핀에 HIGH 신호 인가
delay(1000); //1초 동안 회로 멈춤
digitalWrite(13, LOW); //13번 핀에 LOW 신호 인가
delay(1000);
}
아두이노 IDE를 실행시키면 기본적으로 두 개의 함수가 있습니다. setup, loop 함수인데 setup은 프로그램이 실행될 때 한 번만 실행이 되기 때문에 일반적으로 세팅과 관련된 내용을 작성합니다. loop 함수는 계속 반복 실행되는 함수입니다. 이 함수 안에 우리가 원하는 제어를 할 수 있도록 프로그램을 작성하면 됩니다.
위 코드에서 //는 '주석'이라고 하고 코드에 대한 설명을 의미합니다. 프로그램 실행에는 영향을 미치지 않고 다른 사람들이 코드를 쉽게 이해할 수 있도록 설명을 추가한 것입니다.
setup 함수 안에는 13번 핀에 대한 설정을 하였습니다. pinMode함수 안에는 해당 핀 번호와 입력 또는 출력을 작성해야 합니다. 즉, PinMode(핀 번호, INPUT 또는 OUTPUT); 형태로 작성합니다.
핀은 입력(INPUT) 또는 출력(OUTPUT)으로 사용할 수 있는데 핀을 통해 외부로부터 데이터 등을 읽어올때는 해당 핀을 INPUT으로 사용해야 하고 핀을 통해 외부로 신호를 보낼때는 OUTPUT으로 사용해야 합니다. 여기서는13번 핀에서 LED로 신호를 보내는 용으로 사용할 것이기 때문에 OUTPUT으로 설정했습니다.
loop 함수 안에는 1초씩 LED를 점등, 소등할 수 있도록 프로그램을 작성하면 됩니다. 신호에는 digital과 analog 신호가 있고 해당 신호를 Write와 Read를 할 수 있습니다. 다시 말하면 4가지 형태의 함수를 사용할 수 있습니다. digitalWrite, digitalRead, analogWrite, analogRead 입니다. 아두이노에서 digital 신호는 이산적인 값으로 0, 1의 값을 가지고 analog 신호는 연속적인 값으로 0 ~ 255의 값을 가집니다. Write는 신호를 보낸다는 의미이고 Read는 신호를 읽어온다는 의미를 가집니다.
digitalWrite(13, HIGH); 는 13번에서 HIGH(5V) 신호를 보내겠다는 의미입니다.
delay(1000); 는 1초 동안 회로를 멈춘다는 의미입니다. delay 함수 안에는 단위가 밀리초(ms)이기 때문에 1000은 1초를 의미합니다. 두 개의 코드를 다시 정리하면 13번 핀으로 5V를 1초 동안 제공하시오 라는 의미를 가집니다. 이 때 LED는 1초 동안 점등이 됩니다.
반대로 LED를 소등하려면 어떻게 해야할까요? 전류를 흘려보내지 않으면 됩니다. 다시 말하면 LOW(0V)를 제공하는 겁니다.
digitalWrite(13, LOW);
delay(1000);
두 개의 코드는 1초 동안 0V 신호를 제공하는 것을 의미하므로 LED는 1초 동안 소등하게 됩니다.
위와 같이 구현한 후 업로드를 누르면 프로그램이 이상이 없으면 아두이노로 업로딩하게 되고 1초 동안 LED는 점등, 소등을 반복하게 됩니다. delay 함수안의 숫자를 100, 2000으로 했을 때 결과가 어떻게 나오는지 직접 해보시면 더욱 이해가 빠를 것입니다. 프로그램 결과는 아래 동영상을 살펴보시면 됩니다.
혹시 직접 하시다가 안되는 부분이 있거나 이해가 되지 않으시면 댓글을 남겨주시면 제가 답변을 드리도록 하겠습니다. 선생님은 이제 아두이노의 첫 걸음을 시작하였습니다. 앞으로 더욱 재미있고 흥미있는 경험을 안겨줄거라고 생각합니다. 즐거운 주말 보내세요^^
댓글(0)
이모티콘