กลับไปหน้ารวมไฟล์
light-detecting-c4734b.md

การตรวจจับแสง

Optoelectronics 101: ทำความเข้าใจ LDR

Light Dependent Resistor (LDR) หรือ photoresistor เป็นหนึ่งในเซ็นเซอร์พื้นฐานที่สุดในชุดอุปกรณ์ของนักสร้าง โปรเจกต์นี้จะแสดงวิธีการเชื่อมต่อ LDR เข้ากับ Arduino Uno เพื่อแปลงความเข้มของแสงทางกายภาพให้เป็นสตรีมข้อมูลดิจิทัล ซึ่งทำหน้าที่เป็นองค์ประกอบพื้นฐานสำหรับไฟถนน "Smart City" และระบบกันแดดอัตโนมัติภายในบ้าน

ฟิสิกส์ของ Photo-Resistivity

โดยพื้นฐานแล้ว LDR คืออุปกรณ์สารกึ่งตัวนำที่มีค่าความต้านทานเปลี่ยนแปลงไปตามจำนวนโฟตอนที่ตกกระทบ:

  • ความต้านทานสูง (ความมืด): ในความมืดสนิท LDR อาจมีความต้านทานอยู่ในช่วง Mega-ohm ซึ่งจะป้องกันไม่ให้กระแสไฟฟ้าไหลผ่านวงจร
  • ความต้านทานต่ำ (ความสว่าง): เมื่อความเข้มของแสงเพิ่มขึ้น อิเล็กตรอนจำนวนมากขึ้นจะถูกปลดปล่อยออกมาภายในวัสดุสารกึ่งตัวนำ ทำให้ความต้านทานลดลงเหลือเพียงไม่กี่ร้อย Ohms
  • วงจร Voltage Divider: เนื่องจาก analog pins ของ Arduino วัดค่า voltage แทนที่จะเป็น resistance LDR จึงถูกจับคู่กับ fixed resistor (มักจะเป็น 10k) เพื่อสร้างวงจร voltage divider สิ่งนี้ช่วยให้มั่นใจได้ว่าการเปลี่ยนผ่านระหว่างแสงและความมืดจะสร้างสัญญาณ 0-5V ที่สามารถวัดได้

การปรับแต่ง Analog Input

แม้ว่าค่า analog ดิบจะอยู่ในช่วง 0 ถึง 1023 แต่สภาพแวดล้อมจริงไม่ค่อยถึงค่าสุดขีดเหล่านี้:

  1. การปรับเทียบความไว (Sensitivity Calibration): LDR modules หลายตัวมี potentiometer (trimmer) ทางกายภาพ ซึ่งช่วยให้ผู้ใช้สามารถตั้งค่า hardware threshold ได้อย่างมีประสิทธิภาพ โดยเลือกระดับ "Lux" ที่ digital output (หากมี) จะถูกกระตุ้น
  2. การทำ Software Mapping: ใน Arduino IDE ฟังก์ชัน map() สามารถใช้เพื่อแปลงค่าที่อ่านได้จากเซ็นเซอร์ดิบให้เป็นเปอร์เซ็นต์ (ความสว่าง 0% ถึง 100%) หรือเพื่อควบคุมความสว่างของ LED ผ่าน PWM
  3. การกรองข้อมูล (Data Filtering): เพื่อป้องกัน "การกะพริบ" ที่เกิดจากเงาที่พาดผ่านหรือการเปลี่ยนแปลงของบรรยากาศเล็กน้อย โปรเจกต์นี้ใช้ moving average หรือ delay() อย่างง่ายเพื่อทำให้ค่าที่อ่านได้คงที่

การใช้งานในโลกแห่งความเป็นจริง

วงจรตรวจจับแสงที่เรียบง่ายนี้เป็นรากฐานสำหรับ:

  • ประตูเล้าไก่อัตโนมัติ: เพื่อให้ฝูงสัตว์ปลอดภัยเมื่อพระอาทิตย์ตก
  • Solar Trackers: การจัดตำแหน่งแผงโซลาร์เซลล์ให้ติดตามวิถีโคจรของดวงอาทิตย์
  • Daylight Harvesting: การหรี่ไฟในอาคารเมื่อแสงแดดธรรมชาติเพียงพอเพื่อประหยัดพลังงาน

การอ่านค่า analog ของ LDR sensor module เพื่อตรวจจับความเข้มของแสง

ทำได้ง่ายดายเหมือนกับ

เมื่อมีแสง ค่าความต้านทานของ LDR จะต่ำลงตามความเข้มของแสง

ยิ่งความเข้มของแสงมากเท่าไหร่ ค่าความต้านทานของ LDR ก็จะยิ่งต่ำลงเท่านั้น

ปุ่ม potentiometer บน module สามารถปรับเพื่อเปลี่ยนความไวของ LDR ต่อแสงได้ ซึ่งให้ระดับการปรับที่กว้าง

ข้อมูล Frontmatter ดั้งเดิม

title: "Light Detecting"
description: "Through this project we'll be able to read analog value from LDR ( Light Dependant Resistor ) in order to detect the intensity of light"
author: "Fouad_Roboticist"
category: ""
tags:
  - "weather"
  - "smart appliance"
  - "home automation"
  - "data collection"
  - "internet of things"
views: 5661
likes: 0
price: 99
difficulty: "Easy"
components:
  - "1x Premium Female/Male Extension Jumper Wires, 40 x 6\" (150mm)"
  - "1x PHOTOSENSTITIVE LIGHT SENSOR (ANALOG)"
  - "1x Arduino UNO"
tools: []
apps:
  - "1x Arduino IDE"
downloadableFiles:
  - "https://projects.arduinocontent.cc/6894c631-b11a-4383-b5be-0e69746c2cbb.ino"
documentationLinks: []
passwordHash: "7d0c14c3e72b74c1cd165f2783e5a26b9ea6bcb8f360bbb1398457e0d0abdc37"
encryptedPayload: "U2FsdGVkX18Ge3joyunqBQSXZmAR0KrQYUyFanG7yEXRkrsg5AdtXXlcN2dHDBWmEZDId7AmegvdlROFR6b6Bctf/bLhmaQ9tJqwdhrnP1k="
seoDescription: "Learn how to read analog values from an LDR to detect light intensity in this project."
videoLinks: []
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/light-detecting-c4734b_cover.jpg"
lang: "th"