플밍

아두이노 기초강좌 - 3. 아두이노 Hello World? 본문

프로그래밍/아두이노

아두이노 기초강좌 - 3. 아두이노 Hello World?

너구리안주 2015. 7. 17. 00:24


본 강좌는 지인의 사이트에서 허락받고 퍼온 강좌입니다.

다른곳으로 불펌하시면 곤란합니다.

그리고 제가 아두이노를 그리 잘 알지는 못합니다.

저한테 물어보시는것도 곤란.... ^^

#ads_1

이 전에 프로그래밍을 한번이라도 배워 본 사람이라면 항상 첫예제는 Hollo World 라는거 아시죠?

아두이노에서 이 Hello World에 상응하는 예제는 LED 를 껐다 켰다 하는 것입니다.

 

아두이노에는 내장된 LED가 몇개가 있는데요.  그 중 테스트를 한다거나 상태를 체크하기 위해 사용하는 LED가 13핀에 연결되어 있습니다.

아래 그림에서 빨간색 네모상자 안에 있는 녀석이 바로 그것입니다.

 




 

 

별도의 부품은 필요가 없이 바로 코딩을 해 봅시다

 

 

 

 #define PIN 13

 

 

 void setup() {

   pinMode(PIN, OUTPUT); 

 }

 

 

 void loop() {  

   digitalWrite(PIN, HIGH);

   delay(1000);

  

   digitalWrite(PIN, LOW);

   delay(1000);  

 }

 

 

 

입력을 다 했으면 바로 업로드 해봅시다

 

 버튼을 눌러 주세요. (컴파일 + 업로드)

 

 




 

IDE 하단에 위와 같이 나오면 업로드가 완료된 것입니다.

 

이제 이글 제일 상단의 보드사진에서 빨간색 네모박스에 해당하는 LED를 보세요

깜빡~ 깜빡~ 하죠?

 

여러분은 아두이노 프로그래밍 절차를 모두 해본겁니다.

정말로 간단하지 않나요?

 

AVR 프로그램을 조금이라도 해본 분이라면 아실테지만 원래는 여기까지 하는것도 알아야 될 것들이 많고 ISP니 포니프러그니 하면서 업로드하는것도 상당히 까다롭죠.  근데 아두이노에서는 모든게 패키지로 준비되어 있고 프로그램도 웬만한건 내부적으로 이미 구현이 되어 있어 그냥 함수사용하듯이 사용하기만 하면 됩니다.

 

그럼 소스코드를 한번 살펴봅시다.

 

먼저 아셔야 할것은 아두이노에서는 두가지 함수가 기본적으로 있어야 합니다.

바로 setup() 과 loop() 가 그것입니다.

 

setup() 은 아두이노가 처음 동작할때 준비해야 할 것들을 기재하는 곳입니다.

그리고 loop() 는 원하는 동작을 코딩하는 곳이죠.

setup()은 한번만 수행되고 그뒤부터는 계속 loop()를 무한으로 반복 호출합니다.

 

 

 

 

#define PIN 13  //13 번을 PIN이라는 글자로 별칭을 줍니다

 

//최초 아두이노가 켜지고 한번만 수행합니다.

void setup() {

  pinMode(PIN, OUTPUT);  //PIN(13번) 에 해당하는 핀을 출력모드로 하겠다고 알립니다.

}

 

아두이노 보드 양쪽에는 핀소켓이 달려있습니다.  다른 장치와 통신하기 위한 통로라고 생각하면 됩니다.

아두이노 UNO 기준으로 0~13번까지 있는쪽이 Digital 핀이고 그 반대쪽이 Analog 핀들입니다.

각각의 핀들은 입력모드와 출력모드로 세팅할 수가 있는데요 지금은 LED쪽으로 출력을 해야 하므로 출력모드인 OUTPUT을 설정하였습니다.

즉, 13번핀을 출력모드로 설정한다는 뜻입니다.

#ads_2

 

 

 

 

//무한루프로 실제 수행할 동작을 코딩하는 함수

void loop() {

  

  digitalWrite(PIN, HIGH); //13번 핀으로 HIGH(1)를 디지털로 출력

  delay(1000); //1초(1000밀리세컨드) 동안 대기해라

  

  digitalWrite(PIN, LOW); //13번 핀으로 LOW(0)을 디지털로 출력

  delay(1000); //1초(1000밀리세컨드) 동안 대기해라

  

}

 

디지털 핀으로 뭔가를 입력을 받을 때에는 digitalRead() 함수를 사용합니다.

반대로 디지털 출력을 할때는 digitalWrite() 를 사용합니다.  여기서는 출력이니까 digitalWrite를 사용하였습니다.

 

아날로그 핀으로 입력을 할때에는 analogRead() 함수를 씁니다.

반대로 아날로그 출력을 할때에는 analogWrite() 를 쓰는데 이건 실제론 PWM이라는 기술을 씁니다.  이 부분은 후에 알아봅시다.

 

그리고 HIGH 와 LOW 는 1과 0의 별칭을 준것에 불과합니다.

1 = 5v = 불켜짐, 0 = 0v = 불꺼짐

이런뜻이죠.

 

delay() 함수는 다음 문장을 수행하기 전에 잠시 대기하라는 뜻입니다.

밀리세컨드 단위로 설정하여야 하며 여기서는 1초를 대기하라는 뜻으로 1000을 입력하였습니다.

 

자 이렇게 아두이노 버전 Hello World! 도 끝났네요. 

#ads_3

Comments