나무모에 미러 (일반/밝은 화면)
최근 수정 시각 : 2025-10-26 21:44:12

Arduino/문법


파일:상위 문서 아이콘.svg   상위 문서: Arduino
파일:관련 문서 아이콘.svg   관련 문서: Arduino/소프트웨어 개발 환경
#!if 문서명2 != null
, [[C(프로그래밍 언어)/문법]]
#!if 문서명3 != null
, [[C++/문법]]
#!if 문서명4 != null
, [[]]
#!if 문서명5 != null
, [[]]
#!if 문서명6 != null
, [[]]

프로그래밍 언어 문법
{{{#!folding [ 펼치기 · 접기 ]
{{{#!wiki style="margin: 0 -10px -5px; word-break: keep-all"
프로그래밍 언어 문법
C(포인터 · 구조체 · size_t) · C++(이름공간 · 클래스 · 특성 · 상수 표현식 · 람다 표현식 · 템플릿/제약조건/메타 프로그래밍) · C# · Java · Python(함수 · 모듈) · Kotlin · MATLAB · SQL · PHP · JavaScript(표준 내장 객체, this) · Haskell(모나드) ·
마크업 언어 문법
HTML · CSS
개념과 용어
함수(인라인 함수 · 고차 함수 · 콜백 함수 · 람다식) · 리터럴 · 문자열 · 식별자(예약어) · 상속 · 예외 · 조건문 · 반복문 · 비트 연산 · 참조에 의한 호출 · eval · 네임스페이스 · 호이스팅
기타
#! · == · === · deprecated · GOTO · NaN · null · undefined · S-표현식 · 배커스-나우르 표기법 · 콰인(프로그래밍)
}}}}}}
프로그래밍 언어 목록 · 분류 · 문법 · 예제

1. 개요2. 기본3. 편집 지침4. 기본 문법
4.1. 자료형4.2. 함수
5. 스케치
5.1. setup() 함수5.2. loop() 함수
6. 라이브러리
6.1. <Arduino.h> (기본 라이브러리)
6.1.1. 제공 함수6.1.2. 제공 매크로6.1.3. 제공 클래스
6.2. <SoftwareSerial.h>6.3. <Wire.h>6.4. <SPI.h>6.5. <EEPROM.h>
7. 관련 문서

1. 개요

Arduino 문법을 설명한 문서.

2. 기본

Arduino 프로그래밍에는 C++ 언어가 사용되지만, I/O에 <cstdio><iostream> 등 C/C++ 기본 입출력 라이브러리를 거의 사용하지 않고 <Arduino.h> 라이브러리에서 제공하는 각종 함수 및 객체 위주로 코드를 작성한다는 특징이 있다. 아두이노 IDE에서 프로그램 컴파일 및 업로드 시 해당 헤더 파일은 기본적으로 포함되므로, 코드 상단에 명시적으로 포함할 필요는 없다.

이는 Arduino Uno R3 등 기본형 보드의 경우 메모리 용량이 작고 프로세서 성능도 높지 않은 8비트 시스템이어서 printf 같은 기본적인 함수조차 감당하기 어렵기 때문이다. (일반적으로 stdio의 경우 4KB 크기의 버퍼를 사용하는데, 아두이노 우노 R3의 RAM 용량은 단 2KB이다.)

3. 편집 지침

소스 코드로 예시를 들 때
\#!syntax cpp (소스코드)
문법을 활용하여 소스코드를 써주시기 바랍니다.

예시(입력):
{{{#!syntax cpp
void setup() {
    Serial.begin(9600);
    Serial.println("Hello, World!");
}

void loop() {
    
}
}}}

예시(출력):
#!syntax cpp
void setup() {
    Serial.begin(9600);
    Serial.println("Hello, World!");
}

void loop() {

}

4. 기본 문법

일반적인 C언어 및 C++ 코드와의 차이점 위주로 서술한다.

4.1. 자료형

파일:상세 내용 아이콘.svg   자세한 내용은 C(프로그래밍 언어)/문법 문서
#!if (문단 == null) == (앵커 == null)
를
#!if 문단 != null & 앵커 == null
의 [[C(프로그래밍 언어)/문법#s-|]]번 문단을
#!if 문단 == null & 앵커 != null
의 [[C(프로그래밍 언어)/문법#|]] 부분을
참고하십시오.
각 자료형의 크기는 sizeof 연산자를 사용하여 확인할 수 있다.
정수 자료형
자료형 C 표준 AVR ARM
bool 1 비트 (1 비트) (1 비트)
byte - 1 바이트 1 바이트
char[1] ≥1 바이트 ≥1 바이트 ≥1 바이트
short ≥2 바이트 2 바이트 2 바이트
int ≥2 바이트 2 바이트 4 바이트
long ≥4 바이트 4 바이트 4 바이트
long long ≥8 바이트 8 바이트 8 바이트
* (포인터) - 2 바이트 4 바이트

[1] 문자를 저장하는 용도로만 사용 권장, 정확히 1 바이트가 필요한 경우 byte 자료형 사용
부동소수점 자료형
자료형 C 표준 AVR ARM
float - 4 바이트 4 바이트
double[2] - 4 바이트 8 바이트

[2] 부동소수점 자료형의 경우 정수 자료형과 달리 C 표준에 각 자료형의 최소 크기가 규정되어 있지 않다.
이외에도 기본 헤더 파일인 <Arduino.h>를 통해 다음과 같은 class 자료형을 지원한다:

4.2. 함수

5. 스케치

스케치는 Arduino 시스템 상에서 프로그램에 대응하는 개념이다.

Arduino 시스템은 일반적으로 C/C++ 프로그램이 실행되는 컴퓨터와는 달리 별도의 OS가 없는 마이크로컨트롤러 시스템이기 때문에, main() 함수를 사용하지 않고 setup()loop() 함수를 사용한다.

스케치를 컴파일해서 실행이 시작되면 맨 처음 setup() 함수가 한 번 실행되며, 그 뒤로 loop() 함수가 무한히 반복하여 실행된다.
#!syntax cpp
void setup() {
    // put your setup code here, to run once:
}

void loop() {
    // put your main code here, to run repeatedly:
}

5.1. setup() 함수

스케치에서 맨 처음으로 실행되는 함수로, 스케치에서 사용할 각종 요소들을 초기화하는 역할을 한다.

5.2. loop() 함수

setup() 함수 실행 이후 무한 반복으로 실행되는 함수로, 여러 번 반복하고 싶은 동작을 작성한다.

6. 라이브러리

6.1. <Arduino.h> (기본 라이브러리)

아두이노 스케치 컴파일시 자동으로 포함되는 기본 라이브러리이다.

6.1.1. 제공 함수

입/출력 관련 함수
시간 및 제어 관련 함수
수학 함수
기타 매크로 함수

6.1.2. 제공 매크로

6.1.3. 제공 클래스

6.2. <SoftwareSerial.h>

기본 UART 포트 외에 추가로 UART 통신이 필요한 경우 디지털 핀을 RX 및 TX로 사용할 수 있는 기능을 제공하는 라이브러리이다.

6.3. <Wire.h>

I2C 통신을 위한 라이브러리이다.

6.4. <SPI.h>

SPI 통신을 위한 라이브러리이다.

6.5. <EEPROM.h>

아두이노 내장 EEPROM을 읽고 쓰기 위해 사용하는 라이브러리이다.

7. 관련 문서