728x90
반응형
아두이노(Arduino)를 활용하여 LED를 제어하는 방법 중 하나는 시리얼 통신을 이용하는 것입니다. 이 방식은 컴퓨터와 아두이노 간의 데이터 전달을 통해 LED를 제어할 수 있도록 해줍니다. 본 글에서는 아두이노에서 시리얼 입력을 받아 LED를 ON/OFF하는 기본적인 회로 및 소스 코드를 설명해 보겠습니다.
1. 프로젝트 개요
이 프로젝트에서는 사용자가 키보드 입력(숫자 1~4)을 통해 특정 LED를 3초간 켜고 자동으로 끄는 기능을 구현합니다.
2. 필요한 부품
- 아두이노 보드 (Uno, Mega 등)
- LED 4개
- 저항 4개 (220Ω)
- 점퍼 와이어
- 브레드보드
3. 회로 구성 방법
회로 연결 방법
- LED 연결:
- 각 LED의 양극(긴 다리, +)을 아두이노의 디지털 핀(8,9,10,11번 핀)에 연결합니다.
- 각 LED의 음극(짧은 다리, -)을 저항을 거쳐 GND(접지)에 연결합니다.
- 시리얼 통신 설정:
- 아두이노의 USB 케이블을 통해 컴퓨터와 연결하여 시리얼 모니터를 사용합니다.
- 사용자는 아두이노 시리얼 모니터에서 1, 2, 3, 4를 입력하여 특정 LED를 켜고 끌 수 있습니다.
회로도 예시
[LED1] --- [저항] --- (핀 8)
[LED2] --- [저항] --- (핀 9)
[LED3] --- [저항] --- (핀 10)
[LED4] --- [저항] --- (핀 11)
|
(GND)
> 위의 연결을 통해 각 LED를 아두이노 핀으로 제어할 수 있습니다.
4. 소스 코드 설명
다음은 아두이노 코드입니다. 사용자가 숫자를 입력하면 해당 LED가 켜지고, 3초 후 자동으로 꺼집니다.
int pinLED[4] = {8, 9, 10, 11}; // LED를 제어할 핀 배열
int k;
void setup() {
Serial.begin(9600); // 시리얼 통신 속도 설정
for (k = 0; k < 4; k++) {
pinMode(pinLED[k], OUTPUT); // 각 핀을 출력 모드로 설정
}
Serial.println("Enter 1, 2, 3, 4!"); // 사용자에게 입력을 안내
}
void loop() {
if (Serial.available()) { // 입력이 들어왔을 때만 실행
char select = Serial.read(); // 입력 값을 읽음
Serial.print("Select Number=");
Serial.println(select); // 입력 값 출력
switch (select) {
case '1':
digitalWrite(pinLED[0], HIGH); // LED 켜기
delay(3000); // 3초 대기
digitalWrite(pinLED[0], LOW); // LED 끄기
break;
case '2':
digitalWrite(pinLED[1], HIGH);
delay(3000);
digitalWrite(pinLED[1], LOW);
break;
case '3':
digitalWrite(pinLED[2], HIGH);
delay(3000);
digitalWrite(pinLED[2], LOW);
break;
case '4':
digitalWrite(pinLED[3], HIGH);
delay(3000);
digitalWrite(pinLED[3], LOW);
break;
default:
for (k = 0; k < 4; k++) {
digitalWrite(pinLED[k], LOW); // 입력이 잘못된 경우 모든 LED 끄기
}
break;
}
}
}
코드 설명
- Serial.begin(9600); → 컴퓨터와 아두이노 간의 통신 속도를 설정합니다.
- Serial.available() → 새로운 입력이 있는지 확인합니다.
- Serial.read(); → 사용자가 입력한 값을 가져옵니다.
- switch-case 문을 사용하여 입력값(1~4)에 따라 특정 LED를 켜고 3초 후 꺼집니다.
- digitalWrite(pin, HIGH); → 해당 핀의 LED를 켭니다.
- digitalWrite(pin, LOW); → LED를 끕니다.
- delay(3000); → LED가 켜진 후 3초 동안 유지됩니다.
5. 실행 결과
(1) 아두이노 시리얼 모니터에서 숫자 입력
Enter 1, 2, 3, 4!
Select Number=2
(2) 해당 LED가 3초 동안 켜졌다가 자동으로 꺼짐
💡 사용자가 '2'를 입력하면 2번 LED가 3초 동안 켜지고 꺼지는 방식으로 작동합니다.
6. 마무리
이번 프로젝트에서는 아두이노의 시리얼 통신을 활용하여 LED를 제어하는 방법을 살펴보았습니다. 이 코드를 응용하면 다양한 센서 및 액추에이터(모터 등)를 연동하여 더 복잡한 기능도 구현 가능합니다! 😊
다음 프로젝트는 센서와 LED를 연계하는 방식으로 발전시켜 볼 수도 있겠네요. 더 궁금한 점이 있으면 언제든지 알려주세요! 🚀
728x90
반응형
'아두이노' 카테고리의 다른 글
아두이노 메가를 활용한 퀴즈 대회용 빨리 누르기 시스템 제작하기 🎉 (0) | 2025.05.10 |
---|---|
🔌 아두이노 인터럽트 기반 LED 타이머 프로젝트 (0) | 2025.05.08 |
🚀 Arduino로 미니 레트로 게임 콘솔 DIY! (0) | 2025.05.07 |
아두이노 LED & 스위치 제어: 풀업과 풀다운 방식의 비교 (0) | 2025.05.01 |
LCD 알람 시계 만들기: 아두이노 프로젝트 (0) | 2025.04.30 |