🤖 2025년 아두이노 예제코드 완벽 가이드
아두이노란? 🤔
아두이노(Arduino)는 오픈소스 하드웨어와 소프트웨어를 기반으로 한 마이크로컨트롤러 플랫폼입니다. 초보자부터 전문가까지 누구나 쉽게 전자회로와 프로그래밍을 배울 수 있도록 설계되어 있습니다.
💡 TIP: 아두이노는 센서, 모터, LED 등 다양한 부품과 연동이 쉬워 메이커, 학생, 취미 개발자에게 인기가 많아요!
아두이노 예제코드 Top 10 🏆
아두이노를 처음 시작하는 분들을 위해, 2025년 기준 가장 많이 활용되는 예제코드 10가지를 선정했습니다.
순위 | 예제명 | 주요 기능 | 난이도 |
---|---|---|---|
1 | LED 깜빡이기 | LED On/Off 반복 | ★☆☆☆☆ |
2 | 버튼 입력 | 버튼 누름 감지 | ★☆☆☆☆ |
3 | 서보 모터 제어 | 각도 조절 | ★★☆☆☆ |
4 | 온도센서 읽기 | 온도값 시리얼 출력 | ★★☆☆☆ |
5 | 조도센서 활용 | 밝기 측정 | ★★☆☆☆ |
6 | 부저 소리내기 | 소리 출력 | ★☆☆☆☆ |
7 | 시리얼 통신 | PC와 데이터 송수신 | ★★☆☆☆ |
8 | LCD 출력 | 문자/숫자 표시 | ★★★☆☆ |
9 | 초음파 거리 측정 | 거리값 측정 | ★★★☆☆ |
10 | 블루투스 통신 | 무선 데이터 송수신 | ★★★★☆ |
1. LED 깜빡이기 예제코드 💡
아두이노의 가장 기본이 되는 예제입니다. LED를 1초 간격으로 켜고 끄는 코드입니다.
cpp
// LED 깜빡이기 예제
int ledPin = 13; // 아두이노 보드 내장 LED 핀
void setup() {
pinMode(ledPin, OUTPUT); // LED 핀을 출력으로 설정
}
void loop() {
digitalWrite(ledPin, HIGH); // LED 켜기
delay(1000); // 1초 대기
digitalWrite(ledPin, LOW); // LED 끄기
delay(1000); // 1초 대기
}
2. 버튼 입력 예제코드 🔘
버튼을 누르면 LED가 켜지는 간단한 예제입니다.
cpp
// 버튼 입력 예제
int buttonPin = 2; // 버튼 연결 핀
int ledPin = 13; // LED 핀
void setup() {
pinMode(buttonPin, INPUT);
pinMode(ledPin, OUTPUT);
}
void loop() {
int buttonState = digitalRead(buttonPin);
if (buttonState == HIGH) {
digitalWrite(ledPin, HIGH); // 버튼 누르면 LED 켜기
} else {
digitalWrite(ledPin, LOW); // 버튼 안 누르면 LED 끄기
}
}
3. 서보 모터 제어 예제코드 ⚙️
서보 모터의 각도를 0도에서 180도까지 움직이는 예제입니다.
cpp
#include <Servo.h>
Servo myServo;
void setup() {
myServo.attach(9); // 서보 신호선 9번 핀에 연결
}
void loop() {
for (int angle = 0; angle <= 180; angle += 1) {
myServo.write(angle);
delay(15);
}
for (int angle = 180; angle >= 0; angle -= 1) {
myServo.write(angle);
delay(15);
}
}
4. 온도센서 읽기 예제코드 🌡️
아두이노와 LM35 온도센서를 연결하여 온도값을 시리얼 모니터에 출력합니다.
cpp
int tempPin = A0; // LM35 센서 연결 핀
void setup() {
Serial.begin(9600);
}
void loop() {
int reading = analogRead(tempPin);
float voltage = reading * 5.0 / 1024.0;
float temperatureC = voltage * 100;
Serial.print("온도: ");
Serial.print(temperatureC);
Serial.println(" °C");
delay(1000);
}
5. 조도센서(LDR) 활용 예제코드 🌞
조도센서로 주변 밝기를 측정하여 시리얼 모니터에 출력합니다.
cpp
int ldrPin = A0;
void setup() {
Serial.begin(9600);
}
void loop() {
int ldrValue = analogRead(ldrPin);
Serial.print("조도값: ");
Serial.println(ldrValue);
delay(500);
}
6. 부저 소리내기 예제코드 🎵
피에조 부저를 이용해 소리를 내는 예제입니다.
cpp
int buzzerPin = 8;
void setup() {
pinMode(buzzerPin, OUTPUT);
}
void loop() {
tone(buzzerPin, 1000); // 1000Hz 소리 출력
delay(500);
noTone(buzzerPin); // 소리 끄기
delay(500);
}
7. 시리얼 통신 예제코드 🖥️
아두이노와 PC 간에 데이터를 주고받는 기본 예제입니다.
cpp
void setup() {
Serial.begin(9600); // 시리얼 통신 시작
}
void loop() {
if (Serial.available() > 0) {
char data = Serial.read();
Serial.print("입력받은 문자: ");
Serial.println(data);
}
}
8. LCD 출력 예제코드 🖨️
16×2 LCD에 “Hello, Arduino!”를 출력하는 예제입니다.
cpp
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
lcd.begin(16, 2);
lcd.print("Hello, Arduino!");
}
void loop() {
// 추가 동작 없음
}
9. 초음파 거리 측정 예제코드 📏
초음파 센서(HC-SR04)로 거리를 측정하는 예제입니다.
cpp
#define trigPin 9
#define echoPin 10
void setup() {
Serial.begin(9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
long duration = pulseIn(echoPin, HIGH);
float distance = duration * 0.034 / 2;
Serial.print("거리: ");
Serial.print(distance);
Serial.println(" cm");
delay(500);
}
10. 블루투스 통신 예제코드 📶
HC-06 블루투스 모듈을 통해 스마트폰과 데이터를 주고받는 예제입니다.
cpp
void setup() {
Serial.begin(9600); // 블루투스 모듈과 통신
}
void loop() {
if (Serial.available()) {
char data = Serial.read();
Serial.print("받은 데이터: ");
Serial.println(data);
}
}
아두이노 예제코드 비교표 📝
예제명 | 주요 부품 | 난이도 | 활용도 |
---|---|---|---|
LED 깜빡이기 | LED | ★☆☆☆☆ | ★★★★★ |
버튼 입력 | 버튼, LED | ★☆☆☆☆ | ★★★★☆ |
서보 모터 제어 | 서보 모터 | ★★☆☆☆ | ★★★★☆ |
온도센서 읽기 | LM35 | ★★☆☆☆ | ★★★☆☆ |
조도센서 활용 | LDR | ★★☆☆☆ | ★★★☆☆ |
부저 소리내기 | 피에조 부저 | ★☆☆☆☆ | ★★★☆☆ |
시리얼 통신 | 없음 | ★★☆☆☆ | ★ |