아두이노 - 조도 센서 | Arduino - Light Sensor

이 튜토리얼에서 우리는 다음을 배울 것입니다:

만약 모듈 형태의 조도 센서를 찾고 있다면, 이 아두이노 - LDR 조도 센서 모듈 튜토리얼을 확인해주세요.

준비물

1×Arduino Uno Amazon
1×USB 2.0 cable type A/B 쿠팡 | Amazon
1×Light Sensor Amazon
1×10 kΩ resistor Amazon
1×Breadboard 쿠팡 | Amazon
1×Jumper Wires Amazon
1×(Optional) 9V Power Adapter for Arduino Amazon
1×(Recommended) Screw Terminal Block Shield for Arduino Uno 쿠팡 | Amazon
1×(Optional) Transparent Acrylic Enclosure For Arduino Uno Amazon
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.

조도 센서에 관하여

이 튜토리얼에서 사용된 광 센서는 광저항기로, 빛에 의존하는 저항기 또는 광전지라고도 불립니다.

빛을 감지하는 것뿐만 아니라 주변 광원의 밝기/조도를 측정하는 데에도 사용됩니다.

핀아웃

포토레지스터는 두 개의 핀을 가지고 있습니다. 이것은 종류의 저항기이기 때문에, 이 핀들을 구별할 필요가 없습니다. 그것들은 대칭입니다.

Light Sensor Pinout

작동 원리

광저항기의 표면이 노출되는 빛이 많을수록 저항이 작아집니다. 따라서 광저항기의 저항을 측정함으로써 주변 빛의 밝기를 알 수 있습니다.

How Light Sensor Works

WARNING

광 센서 값은 광의 강도 추세를 대략적으로 반영할 뿐이며, 정확한 광속을 나타내는 것은 아닙니다. 따라서, 고정밀도를 요구하지 않는 응용 프로그램에서만 사용해야 합니다.

아두이노 - 조도 센서

아두이노 우노의 A0에서 A5 핀은 아날로그 입력으로 작동할 수 있습니다. 아날로그 입력 핀은 전압(0v에서 VCC 사이)을 정수 값(0에서 1023 사이)으로 변환하는데, 이를 ADC 값 또는 아날로그 값이라고 부릅니다.

포토레지스터의 핀을 아날로그 입력 핀에 연결함으로써, analogRead() 함수를 사용하여 핀에서 아날로그 값을 읽을 수 있고, 그런 다음 우리는 상대적으로 조명 수준을 알 수 있습니다.

선연결

Arduino Light Sensor Wiring Diagram

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

아두이노 코드

아래 코드는 포토셀에서 값을 읽고 빛의 수준을 질적으로 결정합니다.

/* * 이 Arduino 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino/arduino-light-sensor */ void setup() { // 9600비트 속도로 직렬 통신을 초기화합니다: Serial.begin(9600); } void loop() { // 아날로그 핀 A0에서 입력을 읽습니다 (값은 0에서 1023 사이) int analogValue = analogRead(A0); Serial.print("Analog reading: "); Serial.print(analogValue); // 원시 아날로그 읽기 값 // 질적으로 결정된 몇 가지 임계값이 있습니다 if (analogValue < 10) { Serial.println(" - Dark"); } else if (analogValue < 200) { Serial.println(" - Dim"); } else if (analogValue < 500) { Serial.println(" - Light"); } else if (analogValue < 800) { Serial.println(" - Bright"); } else { Serial.println(" - Very bright"); } delay(500); }

사용 방법

  • 위의 코드를 복사하고 Arduino IDE로 열기
  • Arduino IDE에서 Upload 버튼을 클릭하여 코드를 Arduino에 업로드
  • 시리얼 모니터 열기
  • 센서에 빛을 비추기
  • 시리얼 모니터에서 결과 확인:
COM6
Send
Analog reading: 163 - Dim Analog reading: 152 - Dim Analog reading: 187 - Dim Analog reading: 188 - Dim Analog reading: 957 - Very bright Analog reading: 972 - Very bright Analog reading: 981 - Very bright
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

광 센서 및 LED

아래 코드는 어두울 때 LED를 켜고, 그렇지 않으면 LED를 끕니다.

/* * 이 Arduino 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino/arduino-light-sensor */ // 상수는 변하지 않습니다. const int LIGHT_SENSOR_PIN = A0; // 광센서의 핀에 연결된 아두이노 핀 const int LED_PIN = 3; // LED의 핀에 연결된 아두이노 핀 const int ANALOG_THRESHOLD = 500; // 변수는 변할 것입니다. int analogValue; void setup() { pinMode(LED_PIN, OUTPUT); // 아두이노 핀을 출력 모드로 설정 } void loop() { analogValue = analogRead(LIGHT_SENSOR_PIN); // 아날로그 핀에서 입력을 읽음 if(analogValue < ANALOG_THRESHOLD) digitalWrite(LED_PIN, HIGH); // LED 켜기 else digitalWrite(LED_PIN, LOW); // LED 끄기 }

위 코드에 대한 배선도:

Arduino Light Sensor LED Wiring Diagram

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

동영상

비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.

스스로에게 도전하세요

당신의 방이 어두워지면 자동으로 불을 켭니다. 힌트: Arduino - Relay를 참조하세요.

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!