본문으로 바로가기






프로그래밍 기초


아두이노 프로그래밍을 하기 위해서는 기초적인 C/C++문법이 필요하다.

아두이노는 비전공자를 위해 개발된 보드이기때문에 자체적으로 제공하는 무수한 함수들이 있다. 그러므로 아주 기초적인 문법 사항만 익힌다면, 아두이노 스케치를 작성하는데 큰 어려움이 없을 것이다.



전처리


컴파일하기 이전에 미리 처리되는 문장으로서 선행처리기라고도 한다.

일반적으로 소스 프로그램을 변경하기 쉽고 컴파일하기 용이하게 만들기 위해서 사용된다. 예를 들어 다른 파일의 내용을 소스 파일에 삽입하거나, 텍스트에서 토큰을 바꾸거나 할 때 기존 소스 코드를 건드리지 않기 때문에 코드를 변경하는데 용이하게 사용된다.

대표적인 전처리문으로는 #include, #define, #error, #if 등이 있다.


setup() 함수


데이터를 초기화(설정)하는 부분이다.

setup() 함수 안에 명령문은 처음 시작할 때 한번만 실행하므로 보통 아두이노 하드웨어 설정, 스케치 변수 초기화, 변수 선언등을 명령어로 작성한다.


loop() 함수


전원이 들어오는 동안은 무한대로 반복하며 명령문을 실행하는 함수이다.

loop() 함수 안에 명령문은 코드적으로 멈추거나 전원을 해제하지 않는 이상은 처음부터 끝까지 실행되는 함수이므로 아두이노의 실질적인 동작을 제어하는 코드는 이 loop() 함수안에 작성하게 된다.



주석(Comment)


주석안에 있는 문장은 컴파일시에 컴퓨터가 무시하는 문장이다. 사람만이 읽을 수 있으며 코드의 설명을 달아 놓을 때 사용한다. 

코드가 길고 복잡해지면 차후에 본인이 무슨 코드를 작성했는지조차 모르게 되는 경우가 빈번하다. 주석을 달아놓으면 시간이 많이 지났다 하더라도 설명이 달려있기 때문에 코드를 이해하기가 수월해진다. 주석이 잘 달려있는 프로그램은 다른 사람이 보더라도 이해하기가 좋기때문에 주석은 프로그램의 생명이라해도 과언이 아니다.

/* */ : 범위를 지정하여 주석 처리를 할 수있다.

//     : 한줄만 주석 처리를 할 수있다.


;(세미콜론)


문장의 끝을 알리는 문자이다. 문장의 끝은 항상 ;(세미콜론)으로 마무리를 지어준다.



pinMode(핀, 입력 or 출력);


핀 모드는 입출력 핀(0~13번)의 핀 하나하나를 입력으로 사용할 것인지 출력으로 사용할 것인지 컴파일러에게 알려주는 함수이다.

ex) pinMode(13, OUTPUT);

해석 -> 13번 핀을 출력으로 사용한다.


digitalWrite(핀, 상태값);


입출력 핀(0~13번)이 출력으로 정의 되었을 때, 설정한 핀에 상태값을 출력하는 함수이다.

ex) digitalWrite(13, HIGH);

해석 -> 13번 핀을 HIGH상태로 만들어라.


  디지털 

  2진수   

  출력전압   

  HIGH 

  1   

  5V   

   LOW  

  0   

  0V   

< Active HIGH일 때 >


delay(시간);


일정 시간만큼 시간을 지연시키는 함수이다.

시간에 들어갈 값은 ms단위이며, 1/1000초이다. 따라서 1초를 표현할 때는 delay(1000);으로 0.5초를 표현할 때는 delay(500)으로 표현한다.

ex) digitalWrite(13, HIGH); 

    delay(10000);

해석 -> 13번 핀을 HIGH상태로 만들고, 10초간 대기







댓글을 달아 주세요

  1. 초보자 2016.08.31 18:54 신고

    정말 이해가 잘되네요. 좋은 강의에요

  2. 초보자2 2017.09.08 15:40 신고

    다른 것을 이해가 쉽게 해주셨는데 void가 무엇을 뜻하는지 알 수 있을까요?

    • 로봇박사 2017.10.08 20:35 신고

      함수의 반환형이 void이면 함수가 끝날 때 아무것도 반환하지 않는다 라고 인타넷에 나오네요?

  3. 2018.05.12 22:52

    비밀댓글입니다

  4. 초보자 2018.05.24 16:04 신고

    제가 python, php만 해보고 C는 해보질 않아서 그런데요 Loop가 계속돌면 보통 응답없음이 뜨지 않나요?
    c언어 너무 어려운거 같아요 ㅜ

티스토리 툴바