ㅇ 일 자 : 2026년 5월 12일(화)
ㅇ 내 용 : 아두이노(Arduino)입문 및 실습
** 예제 : LED 신호등 만들기 (검색 및 찾아보기)
1. 하드웨어 구성(회로)
가. 먼저 아두이노 보드에 LED 3개를 각각 다른 핀에 연결해야 한다.
나. Red LED: 디지털 13번 핀 (기본 LED_BUILTIN 대용)
다. Yellow LED: 디지털 12번 핀
라. Green LED: 디지털 11번 핀
** 각 LED에는 220Ω ~ 330Ω 저항을 연결하여 과전류를 방지해야 한다.
2. 코드 수정 방향
가. LED_BUILTIN 하나만 제어하던 방식에서, 3개의 핀을 각각 정의, 순차적으로 HIGH/LOW 신호를 주는 방식으로 수정한다.
나. 핀 모드 선언 추가: setup() 함수 안에서 사용할 모든 핀을 pinMode(핀번호, OUTPUT);으로 선언해야 한다.
다. 상태 관리: 특정 색상의 불이 켜질 때, 이전에 켜져 있던 다른 색상의 불을 LOW로 꺼주는 과정이 포함되어야 신호등처럼 동작
라. 지연 시간(delay) 조절: 실제 신호등처럼 초록색과 빨간색은 길게, 노란색은 짧게 설정
| // 첫번째 방법(단계별) // 사용할 LED가 연결된 아두이노 디지털 핀 번호 설정 int red = 13; // 빨간색 LED: 13번 핀 int yellow = 12; // 노란색 LED: 12번 핀 int green = 11; // 초록색 LED: 11번 핀 void setup() { // 각 핀을 '출력(OUTPUT)' 모드로 설정하여 전기를 보낼 준비를 합니다. pinMode(red, OUTPUT); pinMode(yellow, OUTPUT); pinMode(green, OUTPUT); } void loop() { // --- 1단계: 빨간불 점등 --- digitalWrite(red, HIGH); // 빨간 LED 켜기 digitalWrite(yellow, LOW); // 노란 LED 끄기 digitalWrite(green, LOW); // 초록 LED 끄기 delay(3000); // 3초(3000ms) 동안 현재 상태 유지 // --- 2단계: 노란불 점등 --- digitalWrite(red, LOW); // 빨간 LED 끄기 digitalWrite(yellow, HIGH); // 노란 LED 켜기 digitalWrite(green, LOW); // 초록 LED 끄기 delay(1000); // 1초(1000ms) 동안 현재 상태 유지 // --- 3단계: 초록불 점등 --- digitalWrite(red, LOW); // 빨간 LED 끄기 digitalWrite(yellow, LOW); // 노란 LED 끄기 digitalWrite(green, HIGH); // 초록 LED 켜기 delay(3000); // 3초(3000ms) 동안 현재 상태 유지 // loop 함수가 끝나면 다시 처음(1단계)으로 돌아가 무한 반복합니다. } |
![]() |
| // 두번째 방법 (조건문) // 신호등의 현재 상태를 저장하는 변수 // 0: 빨간불(Stop), 1: 노란불(Wait), 2: 초록불(Go) int state = 0; void loop() { // [상태 0] 빨간불 점등 모드 if (state == 0) { digitalWrite(red, HIGH); // 빨간 LED 켜기 digitalWrite(yellow, LOW); // 노란 LED 끄기 digitalWrite(green, LOW); // 초록 LED 끄기 delay(3000); // 3초 동안 대기 state = 1; // 다음 상태(노란불)로 변경 } // [상태 1] 노란불 점등 모드 else if (state == 1) { digitalWrite(red, LOW); // 빨간 LED 끄기 digitalWrite(yellow, HIGH); // 노란 LED 켜기 digitalWrite(green, LOW); // 초록 LED 끄기 delay(1000); // 1초 동안 대기 (주의 신호이므로 짧게) state = 2; // 다음 상태(초록불)로 변경 } // [상태 2] 초록불 점등 모드 else if (state == 2) { digitalWrite(red, LOW); // 빨간 LED 끄기 digitalWrite(yellow, LOW); // 노란 LED 끄기 digitalWrite(green, HIGH); // 초록 LED 켜기 delay(3000); // 3초 동안 대기 state = 0; // 다시 처음 상태(빨간불)로 순환 } } |
![]() |

** 참고 : 사용 함수 코드

3. 학습 후기
아두노이 우선 용어부터 생소하고 낯설은 단어, 그러나 교재를 참고하고, 교육내용을 토대로 회로를 연결해서 화면에 불이 깜빡임을 확인했다. 그러나 "C언어 코드" 작성은 비전공자에겐 생소하기도 하고, 사용하는 주석기호도 달라서 검색해서 찾아보고 참고도 해 보았다. 새로운 것을 접할때 마다 느끼는 것이지만 진로탐색을 다시한번 고민하게 된다. 이제는 코드 해석이 좀더 익숙해졌고, 이해도가 높아졌다면 외우지 않은 코드들은 작성하기 난감해서 검색하고 찾아보게 된다.
소스코드는 계속 반복해 보는 수 밖에 없다.
개발과정에는 개발자, 디자이너, PM, 기획자 등 다양한 직군이 있음에 무엇이 적성에 맞는지, 급변하는 AI시대에 개발자에게는 공부해야 할 부분이 아주 많음을 다시한번 느끼게 된다.
'학습 로그 > Aduino' 카테고리의 다른 글
| D+34 [아두이노] Aduino '전자키보드 만들기' 실습 (0) | 2026.05.26 |
|---|---|
| D+31 [아두이노] Aduino 환경에서 조건문, 함수 활용한 제어 실습 (0) | 2026.05.20 |
| D+30 [아두이노] 시뮬레이터+키트 를 활용한 "실습" (0) | 2026.05.19 |
| D+29 [아두이노] PIR 센서로 현관등 만들기 (0) | 2026.05.18 |

