안녕하세요! 😊 저번엔 서보모터를 제어하며 IoT의 기초적인 움직임을 경험했습니다. 오늘은 컴퓨터로 시리얼 번호를 입력받아 LED를 켜고 끄는 기능을 만들어보았습니다. 이번 실습을 통해 컴퓨터로 아두이노를 조종할 수 있었습니다.
0. 준비물
- 아두이노 보드
- 브레드 보드
- LED
- 330Ω 저항
- 점프선
- USB 케이블
1. LED와 아두이노 연결하기
우선 연결하기 전에 앞서 LED에 대해 알려 드리자면 다음 사진과 같이 긴 다리와 짧은 다리로 구분됩니다.
- 긴다리 (+): 전원 공급 핀
- 짧은 다리 (-): 접지 핀
좀 더 구별하기 쉽게, 저는 긴 다리를 살짝 구부려 사용했습니다.
LED를 사용할 때는 5V 전압을 그대로 연결하면 손상이 갈 수 있으니 330Ω 저항을 사용해 전류를 제한했습니다.
- LED 연결
- 긴 다리 (+): 저항을 통해 아두이노의 **디지털 핀 9번 (~9)**에 연결.
- 짧은 다리 (-): 점프선을 사용해 아두이노의 GND에 연결.
- 전체 연결 상태
- LED 긴 다리 (+)
- 브레드보드 15번 열 / c
- 빨간 점프선: 15번 열 / a → 아두이노 ~9 (디지털 핀 9번)
- LED 짧은 다리 (-)
- 브레드보드 13번 열 / c
- 330Ω 저항: 13번 열 / d → 3번 열 / d
- 초록 점프선: 3번 열 / a → 아두이노 GND
- LED 긴 다리 (+)
2. 아두이노 IDE 세팅
- 시리얼 통신 초기화
- 시리얼 통신을 설정하려면 Serial.begin(9600)을 사용
- 지티털 핀 출력 모드 설정
- LED가 연결된 핀 (이번엔 ~9)을 출력 모드로 설정
3. 코드 작성
아두이노와 컴퓨터 간에 시리얼 통신을 통해 데이터를 주고받으며 LED를 제어하는 코드를 작성했습니다.
코드는 다음과 같습니다
int bluePin = 9; // LED 핀 번호
void setup() {
pinMode(bluePin, OUTPUT); // LED 핀을 출력 모드로 설정
Serial.begin(9600); // 시리얼 통신 초기화 (속도: 9600bps)
Serial.println("LED 제어 프로그램 시작! '1' 또는 '0'를 입력하세요.");
}
void loop() {
if (Serial.available()) { // 시리얼 입력이 있다면
String input = Serial.readString(); // 입력 값을 문자열로 읽기
input.trim(); // 공백 제거
if (input == "1") {
digitalWrite(bluePin, HIGH); // LED 켜기
Serial.println("LED가 켜졌습니다.");
} else if (input == "0") {
digitalWrite(bluePin, LOW); // LED 끄기
Serial.println("LED가 꺼졌습니다.");
} else {
Serial.println("잘못된 입력입니다. '1' 또는 '0'를 입력하세요.");
}
}
}
4. 동작 확인 👀
시리얼 모니터에 "0" 또는 "1" 을 입력합니다.
입력한 명령에 따라 LED가 켜지고 꺼지는 모습을 확인할 수 있습니다.
5. 느낀 점
지금까지는 기존에 미리 세팅해뒀던 코드를 아두이노에 업로드해 loop로 반복 동작하는 기능이었지만,
이번엔 처음으로 실시간 입력값에 맞춰 아두이노를 조종할 수 있었습니다.
처음으로 컴퓨터를 통해 아두이노와 대화(?)를 주고 받는 느낌을 받았고 정말 신기했습니다.
6. 다음 목표
다음에는 블루투스를 아두이노에 연결해 핸드폰으로 아두이노에 시리얼 번호를 보내고 그 시리얼 번호로 아두이노를 조종하는 기능을 추가해보려고 합니다.
728x90
'IoT > 드론' 카테고리의 다른 글
[IoT/드론] 초보자 아두이노 드론 만들기: 2일차 서보모터 제어 (0) | 2025.01.12 |
---|---|
[IoT/드론] 초보자 아두이노 드론 만들기: 1일차 Blink (0) | 2025.01.08 |