아두이노 우노 R4 빛 센서가 서보 모터를 작동시킵니다
이 튜토리얼에서는 아두이노 UNO R4를 사용하여 광 센서 또는 광 센서 모듈에서 읽은 값을 기반으로 서보 모터를 제어하는 방법을 배웁니다. 구체적으로, 아두이노 UNO R4는 광 센서로부터 값을 읽어들입니다.
- 빛 센서의 값이 일정 수준을 초과하면, Arduino UNO R4는 서보 모터를 90도로 회전시킵니다.
- 빛 센서의 값이 그 수준 이하이면, Arduino UNO R4는 서보 모터를 0도로 다시 이동시킵니다.

준비물
1 | × | 아두이노 우노 R4 와이파이 | 쿠팡 | 아마존 | |
1 | × | (또는) 아두이노 우노 R4 미니마 | 쿠팡 | 아마존 | |
1 | × | USB 케이블 타입-A to 타입-C (USB-A PC용) | 쿠팡 | 아마존 | |
1 | × | USB 케이블 타입-C to 타입-C (USB-C PC용) | 아마존 | |
1 | × | 조도 센서 | 아마존 | |
1 | × | 10 kΩ Resistor | 아마존 | |
1 | × | 서보 모터 | 쿠팡 | 아마존 | |
1 | × | 점퍼케이블 | 쿠팡 | 아마존 | |
1 | × | (추천) 아두이노 우노 R4용 스크루 터미널 블록 쉴드 | 쿠팡 | 아마존 | |
1 | × | (추천) 아두이노 우노 R4용 브레드보드 쉴드 | 쿠팡 | 아마존 | |
1 | × | (추천) 아두이노 우노 R4용 케이스 | 쿠팡 | 아마존 | |
1 | × | (추천) 아두이노 우노 R4용 전원 분배기 | 쿠팡 | 아마존 | |
1 | × | (추천) 아두이노 우노용 프로토타이핑 베이스 플레이트 & 브레드보드 키트 | 아마존 |
공개: 이 포스팅 에 제공된 일부 링크는 아마존 제휴 링크입니다. 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
LDR 광 센서는 매우 저렴하지만, 배선 시 저항이 필요하여 설정이 복잡해질 수 있습니다. 배선을 간소화하려면 대안으로 LDR 광 센서 모듈을 사용할 수 있습니다.
서보 모터와 광 센서에 대하여
서보 모터와 광 센서(연결, 기능 및 프로그래밍)에 익숙하지 않다면, 자세한 내용을 알아보기 위해 아래 튜토리얼을 참고하세요.
선연결
- Arduino Uno R4, 서보 모터 및 라이트 센서(아날로그) 간의 배선도

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
- 아두이노 우노 R4, 서보 모터 및 디지털 광 센서 모듈 간의 배선도

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
Arduino Uno R4와 기타 부품에 전원을 공급하는 가장 효과적인 방법을 확인하시려면, 아래 링크를 참조하세요: 아두이노 우노 R4 전원 공급 방법.
아두이노 UNO R4 코드 - 아날로그 임계값
- LDR 광 센서의 값을 읽어 서보 모터를 제어하는 Arduino Uno R4 코드
/*
* 이 아두이노 우노 R4 코드는 newbiely.kr 에서 개발되었습니다
* 이 아두이노 우노 R4 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다.
* 상세한 지침 및 연결도에 대해서는 다음을 방문하세요:
* https://newbiely.kr/tutorials/arduino-uno-r4/arduino-uno-r4-light-sensor-controls-servo-motor
*/
#include <Servo.h>
#define LIGHT_SENSOR_PIN A0 // Arduino Uno R4 pin connected to light sensor's pin
#define SERVO_PIN 9 // Arduino Uno R4 pin connected to Servo Motor's pin
#define ANALOG_THRESHOLD 500
Servo servo; // create servo object to control a servo
void setup() {
servo.attach(SERVO_PIN); // attaches the servo on pin 9 to the servo object
servo.write(0);
}
void loop() {
int analogValue = analogRead(LIGHT_SENSOR_PIN); // read the input on analog pin
if (analogValue > ANALOG_THRESHOLD)
servo.write(90); // rotate servo motor to 90 degree
else
servo.write(0); // rotate servo motor to 0 degree
}
- LDR 광 센서의 값을 읽고 서보 모터를 제어하는 Arduino Uno R4 코드
/*
* 이 아두이노 우노 R4 코드는 newbiely.kr 에서 개발되었습니다
* 이 아두이노 우노 R4 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다.
* 상세한 지침 및 연결도에 대해서는 다음을 방문하세요:
* https://newbiely.kr/tutorials/arduino-uno-r4/arduino-uno-r4-light-sensor-controls-servo-motor
*/
#include <Servo.h>
#define LIGHT_SENSOR_PIN 11 // Arduino Uno R4 pin connected to light sensor's pin
#define SERVO_PIN 9 // Arduino Uno R4 pin connected to Servo Motor's pin
Servo servo; // create servo object to control a servo
void setup() {
Serial.begin(9600); // initialize serial communication
pinMode(LIGHT_SENSOR_PIN, INPUT); // initialize the Arduino Uno R4's pin as an input
servo.attach(SERVO_PIN); // attaches the servo on pin 9 to the servo object
servo.write(0);
}
void loop() {
int light_state = digitalRead(LIGHT_SENSOR_PIN);
if (light_state == HIGH) {
Serial.println("The light is NOT present");
servo.write(90); // rotate servo motor to 90 degree
} else {
Serial.println("The light is present");
servo.write(0); // rotate servo motor to 0 degree
}
}
자세한 사용 방법
다음 지침을 한 단계씩 따르십시오:
- 아두이노 Uno R4 WiFi/Minima를 처음 사용한다면, 아두이노 우노 R4 - 소프트웨어 설치을 참조하세요.
- 제공된 회로도에 따라 부품들을 연결하세요.
- USB 케이블을 사용하여 아두이노 Uno R4 보드를 컴퓨터에 연결하세요.
- 컴퓨터에서 Arduino IDE를 실행하세요.
- 적절한 아두이노 Uno R4 보드(예: Arduino Uno R4 WiFi)와 COM 포트를 선택하세요.
- 위 코드를 복사하여 Arduino IDE에 붙여넣으세요.
- Arduino IDE에서 Upload 버튼을 클릭하여 코드를 아두이노 Uno R4에 전송하세요.
- 조도 센서를 켜세요.
- 서보 모터의 움직임을 관찰하세요.
동영상
비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.