아두이노 기초강좌 3 - 프로그래밍 기초

아두이노/강좌

아두이노는 C언어와 유사한 언어를 사용합니다. 다만, 사용하는 함수, 구조 등이 모두 같은것이 아니며 처음 배우는 사용자들도 알기 쉽게 되어있으니 차근차근 따라하시면 쉽다고 느껴질 것입니다.


이제, 아두이노 스케치 프로그램을 실행시켜 보겠습니다.


아두이노 스케치를 처음 실행하면  아래와 같은 소스코드가 담겨있습니다.


void setup() {

  // put your setup code here, to run once:

  // 처음 한번 실행할 설정코드를 여기 넣으시오.

}


void loop() {

  // put your main code here, to run repeatedly:

  // 반복실행할 메인 코드를 여기로 넣으시오.

}


위 소스코드를 보면 setup() 과 loop()라는 함수가 존재하며 각 함수는 { } 로 구성되어있는것을 알 수 있습니다.

void는 다음 강좌에서 설명하도록 하고 여기서는 함수는 반드시 { 로 시작하고 } 로 끝난다는것을 인지하시면 됩니다.


  • 주석( // , /*    */ )

비주얼 스튜디오로 프로그래밍 하신분들은 초록색을 떠올리는 주석입니다.

소스코드에 // 라는것을 볼 수 있는데 이는 주석으로 프로그램이 실행되는 소스로 취급되진 않지만 프로그래밍을 하는 사용자들의 이해를 위한 코드입니다.

한줄만 주석처리하려면 // 를, 주석처리를 시작과 끝으로 설정하려면 /* 과 */를 쓰시면 됩니다.

void setup() {

  // 한줄만 주석처리

 /* 여러줄

    주석처리

    입니다 */

}

- 주의점은 /*를 사용하고 */를 사용하지 않으면 이후의 소스는 모두 다 주석처리되어 제대로 컴파일되지 않습니다.


  • 세미콜론(;)

모든 명령어의 끝은 세미콜론인 ; 로 끝나야 합니다.

한 명령의 끝을 구분짓는 기호로 생각하시면 됩니다. 전문가들도 빠뜨리는 실수를 하기 쉬운데 그만큼 기초적이면서 중요합니다.


void setup()

{

Serial.begin(9600); 

Serial.print("Hello world");

}


void setup()

{

Serial.begin(9600);  Serial.print("Hello world"); 

}


위는 내용상 같은 소스입니다. 한줄에 비슷한 명령어들을 세미콜론(;)으로 구분지어주면 좀더 보기좋게 소스코드를 짤 수 있습니다.


  • setup() 

setup 은 아두이노가 시작되고 처음으로 딱 한번 실행될 코드를 넣는 곳입니다.

주로 통신속도, 핀배열 등을 설정하는곳으로 사용됩니다.

void setup()  // 시작 전 설정

{

Serial.begin(9600); //통신속도를 9600으로 설정

Serial.print("Hello world"); //시리얼로 출력

}


위 코드를 아두이노 스케치에 넣고 시리얼 모니터() 를 켠 다음 업로드를 시켜봅시다.


(짜잔~)



  • loop() 

loop 는 setup() 에 있는 소스들이 실행된 후 반복적으로 실행될 코드를 넣는 곳 입니다.

void setup()  // 시작 전 설정

{

Serial.begin(9600); //통신속도를 9600으로 설정

}


void loop()  // 반복

{

Serial.println("Hello world");  //시리얼로 출력

delay(1000);  //1초간 대기

}


위 코드를 아두이노 스케치에 넣고 시리얼 모니터() 를 켠 다음 업로드를 시켜봅시다.


(따란~)


참조

Serial.begin(속도) - 시리얼통신의 속도를 정의합니다.

Serial.print(내용) - 내용을 시리얼로 출력합니다.

Serial.println(내용) - Serial.print와 똑같으나, 출력 후 개행을 합니다.

delay(ms) - ms만큼 대기합니다. 1000ms = 1초


여기까지 해보셨다면 setup() 과 loop() 앞에 void라는것이 붙은것을 알 수 있습니다. 이는 함수이기 때문입니다.


다음시간에는 함수에 대해서 포스팅 하겠습니다.