아두이노 나노 모션 센서 LED
이 튜토리얼은 Arduino Nano와 모션 센서를 사용하여 LED를 제어하는 방법을 알려줍니다. 자세하게:
- 모션 감지 시 아두이노 나노는 LED를 켭니다
- 모션 감지가 되지 않을 때 아두이노 나노는 LED를 끕니다
이것은 인간의 존재를 감지하면 행동을 유발하는 자동화 과정에 적용될 수 있습니다.
준비물
1 | × | 아두이노 나노 | 쿠팡 | 아마존 | |
1 | × | USB A to Mini-B USB 케이블 | 쿠팡 | 아마존 | |
1 | × | HC-SR501 모션 센서 | 쿠팡 | 아마존 | |
1 | × | LED | 쿠팡 | 아마존 | |
1 | × | 220Ω 저항기 | 아마존 | |
1 | × | 브레드보드 | 쿠팡 | 아마존 | |
1 | × | 점퍼케이블 | 쿠팡 | 아마존 | |
1 | × | (추천) 아두이노 나노용 스크루 터미널 확장 보드 | 쿠팡 | 아마존 | |
1 | × | (추천) 아두이노 나노용 브레이크아웃 확장 보드 | 쿠팡 | 아마존 | |
1 | × | (추천) 아두이노 나노용 전원 분배기 | 쿠팡 | 아마존 |
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.
LED 및 모션 센서에 대하여
LED와 모션 센서(핀 배치, 기능, 프로그래밍 포함)에 익숙하지 않다면, 다음 튜토리얼을 참고하면 도움이 될 것입니다:
선연결

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
Arduino Nano와 기타 부품에 전원을 공급하는 가장 효과적인 방법은 다음 링크를 참조하세요: 아두이노 나노 전원 공급 방법.
초기 설정
Time Delay Adjuster | Screw it in anti-clockwise direction fully. |
Detection Range Adjuster | Screw it in clockwise direction fully. |
Repeat Trigger Selector | Put jumper as shown on the image. |

아두이노 나노 코드
/*
* 이 아두이노 나노 코드는 newbiely.kr 에서 개발되었습니다
* 이 아두이노 나노 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다.
* 상세한 지침 및 연결도에 대해서는 다음을 방문하세요:
* https://newbiely.kr/tutorials/arduino-nano/arduino-nano-motion-sensor-led
*/
#define MOTION_SENSOR_PIN 2 // 모션 센서의 OUTPUT 핀에 연결된 아두이노 나노 핀
#define LED_PIN 7 // LED에 연결된 아두이노 나노 핀
int motion_state = LOW; // 모션 센서 핀의 현재 상태
int prev_motion_state = LOW; // 모션 센서 핀의 이전 상태
void setup() {
Serial.begin(9600); // 시리얼 모니터와 통신하기 위해 시리얼을 초기화합니다.
pinMode(MOTION_SENSOR_PIN, INPUT); // 아두이노 핀을 입력 모드로 설정
pinMode(LED_PIN, OUTPUT); // 아두이노 핀을 출력 모드로 설정
}
void loop() {
prev_motion_state = motion_state; // 이전 상태 저장
motion_state = digitalRead(MOTION_SENSOR_PIN); // 새 상태 읽기
if (prev_motion_state == LOW && motion_state == HIGH) { // 핀 상태 변화: LOW -> HIGH
Serial.println("Motion detected!");
digitalWrite(LED_PIN, HIGH); // 켜기
}
else if (prev_motion_state == HIGH && motion_state == LOW) { // 핀 상태 변화: HIGH -> LOW
Serial.println("Motion stopped!");
digitalWrite(LED_PIN, LOW); // 끄기
}
}
사용 방법
- 아두이노 나노를 USB 케이블을 사용하여 컴퓨터에 연결하세요.
- 아두이노 IDE를 실행하고, 적절한 보드와 포트를 선택하세요.
- 위의 코드를 복사하고 아두이노 IDE에서 열어주세요.
- 아두이노 IDE에서 Upload 버튼을 클릭하여 코드를 아두이노 나노에 업로드하세요.

센서 앞으로 손을 움직이고 LED의 상태 변화를 관찰하세요.
코드 설명
소스 코드의 주석에 포함된 줄별 설명을 확인하세요!
동영상
비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.