IoT 해킹의 첫걸음, 아두이노 DIY로 LED를 제어해 보세요! 부품 준비부터 회로 연결, 코드 작성과 업로드까지. 내 손으로 직접 만드는 첫 IoT 장치, 지금 바로 시작합니다.
✨ 드디어 시작된 진짜 실습!
안녕하세요! 지난 2편에서 개발 환경 설정을 무사히 마치신 여러분, 진심으로 축하합니다! 이제 여러분의 생각(코드)으로 현실의 사물을 움직이게 할 모든 준비가 끝났습니다.
오늘은 가장 간단한 코드로 책상 위의 작은 불빛을 제어하며, "내가 코딩으로 무언가를 해냈다!"는 짜릿한 성취감을 맛보는 시간을 갖겠습니다.
💡 원리 이해하기: 컴퓨터는 어떻게 불을 켤까?
LED를 켜고 끄는 원리는 방 스위치를 켜고 끄는 것과 똑같습니다. 아두이노는 특정 핀(금속 다리)에 전기를 보내거나(HIGH) 끊는(LOW) 방식으로 신호를 제어합니다. 이 간단한 원리를 이용해 LED를 1초 간격으로 켜고 끄는, 즉 '깜빡이는' 동작을 만들어 보겠습니다.

🛠️ 회로 구성하기: 생각의 길을 만들자
아래 회로도를 보고 부품들을 차례대로 연결해 보세요. 전기는 (+)극에서 나와 (-)극으로 흐르는 길을 만들어줘야만 작동합니다.
- LED의 긴 다리(+)와 짧은 다리(-)를 확인하세요.
- 브레드보드에 빨강, 노랑, 파랑 LED를 나란히 꽂습니다.
- 각 LED의 짧은 다리(-)를 브레드보드의 파란색 (-) 라인에 검은색 점퍼선으로 연결합니다.
- 각 LED의 긴 다리(+)와 저항을 연결합니다.
- 저항의 반대편과 아두이노 핀을 연결합니다.
- 빨강 LED ↔ A0 (디지털 14번)
- 노랑 LED ↔ A1 (디지털 15번)
- 파랑 LED ↔ A2 (디지털 16번)
- 브레드보드의 파란색 (-) 라인과 아두이노의 GND 핀을 검은색 점퍼선으로 연결합니다.

잠깐! 14번 핀은 어디에 있나요? 🤔
아두이노 우노 보드에는 디지털 핀이 13번까지만 표시되어 있습니다. 하지만 걱정 마세요! 아날로그(Analog) 핀인 A0~A5는 각각 디지털 핀 14~19번으로 사용할 수 있습니다. 저희는 A0(14), A1(15), A2(16) 핀을 사용하겠습니다.
💡LED란?LED는 '발광 다이오드(Light Emitting Diode)'의 약자로, 전류가 흐를 때 빛을 방출하는 반도체 소자입니다. 전기 에너지를 빛 에너지로 직접 변환하기 때문에 에너지 효율이 매우 높고 저소비전력이며, 빠른 응답 속도를 가집니다. LED는 다양한 파장의 빛을 낼 수 있으며, 백색 LED의 개발로 제4의 조명 광원으로 주목받고 있고, 가로등, 신호등, 디스플레이 등 다양한 분야에서 활용됩니다.🔌 작동 원리
![]() 🔌 주요 특징 및 장점
🔌활용 분야
|
💻 코드로 생명 불어넣기 (아두이노 IDE)
아두이노 IDE를 열고, 아래 코드를 그대로 입력한 뒤 왼쪽 상단의 화살표(→) 모양 '업로드' 버튼을 눌러보세요.
// LED를 1초 간격으로 깜빡이는 코드
// Basic-01.LED.ino
// 3개의 LED를 1초 간격으로 순차적으로 깜빡이는 코드
void setup() {
// 각 핀을 '출력용'으로 설정합니다.
pinMode(14, OUTPUT); // 14번 핀 (A0): 빨강 LED
pinMode(15, OUTPUT); // 15번 핀 (A1): 노랑 LED
pinMode(16, OUTPUT); // 16번 핀 (A2): 파랑 LED
}
void loop() {
// loop 함수 안의 코드는 무한히 반복됩니다.
digitalWrite(14, HIGH); // 빨강 LED 켜기
delay(1000); // 1초 기다리기
digitalWrite(14, LOW); // 빨강 LED 끄기
delay(1000); // 1초 기다리기
digitalWrite(15, HIGH); // 노랑 LED 켜기
delay(1000);
digitalWrite(15, LOW); // 노랑 LED 끄기
delay(1000);
digitalWrite(16, HIGH); // 파랑 LED 켜기
delay(1000);
digitalWrite(16, LOW); // 파랑 LED 끄기
delay(1000);
}
- setup() 함수는 전원이 켜질 때 딱 한 번만 실행되며, 주로 핀의 용도(입력/출력)를 정하는 등 초기 설정을 담당합니다.
- loop() 함수는 setup()이 끝난 후 무한히 반복 실행되며, 실제 동작을 담당합니다.
- digitalWrite() 함수는 해당 핀에 전기를 보내거나(HIGH 또는 1) 끊는(LOW 또는 0) 역할을 합니다.
- delay() 함수는 지정된 시간(1000 = 1초) 동안 잠시 동작을 멈춥니다.
🎉 첫 성공을 축하합니다!
업로드가 완료되고, 여러분이 만든 회로의 LED가 빨강-노랑-파랑 순서로 예쁘게 깜빡이고 있다면 대성공입니다!
여러분은 방금 여러분의 생각(코드)으로 현실의 사물(LED)을 제어하는, IoT의 가장 기본적이고 핵심적인 원리를 완벽하게 마스터했습니다. 이 작은 성공의 경험이 앞으로 여러분을 더 흥미로운 IoT 보안의 세계로 이끌어 줄 것입니다.
#응용실습으로 LED 3개를 동시에 제어하여 교통 신호등을 만들어보세요.
