กลับไปหน้ารวมไฟล์
arduino-light-senser-using-ldr-ce214a.md

Arduino Light Senser Using LDR

Introduction and Project Concept: Automatic Light On-Off System with Arduino

สวัสดีครับ นักประดิษฐ์และวิศวกรทุกท่าน! วันนี้ผมจะพาทุกท่านไปสร้างระบบ "Smart Light Sensor" โดยใช้บอร์ดควบคุม Arduino แนวคิดหลักของโปรเจกต์นี้คือการออกแบบระบบที่สามารถตอบสนองต่อสภาพแวดล้อมจริงได้ โดยที่ LED จะติดสว่างโดยอัตโนมัติเมื่อตรวจพบว่าความเข้มของแสงในห้องลดลง (เข้าสู่สภาวะมืด) เราสามารถนำหลักการนี้ไปประยุกต์ใช้เพื่อสร้างระบบไฟสำรองฉุกเฉิน หรือระบบไฟหน้าบ้านอัตโนมัติเพื่อประหยัดพลังงานได้

นี่คือโปรเจกต์ที่ผสานรวมอุปกรณ์ทางกายภาพ (Hardware) และการประมวลผลด้วยซอฟต์แวร์เข้าด้วยกันอย่างลงตัว ซึ่งเหมาะสำหรับผู้เริ่มต้นให้เข้าใจได้ง่าย

Image


Step 1: Hardware Preparation

ในการสร้างระบบนี้ เราต้องใช้อุปกรณ์อิเล็กทรอนิกส์เฉพาะบางอย่าง โดยเฉพาะสำหรับรับค่า Analog Signal

Image

รายการอุปกรณ์หลัก:

  1. Arduino UNO: บอร์ด microcontroller ที่ทำหน้าที่เป็นสมองหลักในการประมวลผลค่าความเข้มแสง
  2. LDR (Light Dependent Resistor): เซ็นเซอร์วัดแสง หรือที่เรียกว่า "photoresistor" ซึ่งมีความต้านทานลดลงเมื่อมีแสงมาก และเพิ่มขึ้นเมื่ออยู่ในที่มืด
  3. 10K Ohm Resistor: ตัวต้านทานแบบคงที่ขนาด 10 กิโลโอห์ม ใช้ในการสร้างวงจร Voltage Divider เพื่อให้ Arduino สามารถอ่านการเปลี่ยนแปลงเป็นระดับแรงดันไฟฟ้าได้
  4. LED: อุปกรณ์แสดงผลเพื่อจำลองการเปิด-ปิดไฟ
  5. Mini Breadboard: สำหรับเชื่อมต่อวงจรโดยไม่ต้องบัดกรี
  6. Jumper Wires: สำหรับเชื่อมต่อสัญญาณระหว่างอุปกรณ์ต่างๆ
  7. Power Supply (9V Battery with Barrel Jack): (อุปกรณ์เสริม) สำหรับใช้งานในพื้นที่ที่ไม่มีการเชื่อมต่อกับคอมพิวเตอร์

Step 2: The Circuit Design

หัวใจสำคัญของการอ่านค่าจาก LDR คือการเชื่อมต่อแบบ Voltage Divider เนื่องจาก Arduino ไม่สามารถวัดค่าความต้านทานได้โดยตรง แต่สามารถวัด Voltage ผ่านขา Analog Input ได้

Image

รายละเอียดการเชื่อมต่อ:

  • LED: ขา Cathode (ขาลบ/ขาสั้น) เชื่อมต่อกับ GND ของ Arduino ส่วนขา Anode (ขาบวก/ขายาว) เชื่อมต่อกับ Digital Pin 13
  • วงจร LDR และ Voltage Divider:
    • ขาหนึ่งของ LDR เชื่อมต่อกับแหล่งจ่ายไฟ 5V
    • ขาอีกข้างของ LDR เชื่อมต่อกับ Analog Pin A0 และที่จุดเดียวกันนี้ ให้ต่อ 10K Ohm resistor ลง GND
    • ข้อมูลเชิงเทคนิค: เมื่อความเข้มแสงเปลี่ยนไป ความต้านทานของ LDR ก็จะเปลี่ยนตาม ทำให้แรงดันไฟฟ้าที่ตกคร่อม 10K resistor เปลี่ยนแปลงไปตาม (ตามกฎของ Ohm) ค่าแรงดันไฟฟ้านี้เองที่ Arduino จะแปลงเป็นตัวเลขระหว่าง 0 ถึง 1023

ข้อควรระวัง: ตรวจสอบการเชื่อมต่อขั้วบวกและกราวด์ให้ดี เพื่อป้องกัน Short Circuit ซึ่งอาจสร้างความเสียหายให้กับ microcontroller ได้


Step 3: The Code Logic & Calibration

เมื่อ Hardware พร้อมแล้ว ขั้นตอนต่อไปคือการเขียนโค้ดเพื่อควบคุมตรรกะการทำงาน

Image

ตรรกะโปรแกรม:

  1. การรับข้อมูล: เราใช้ฟังก์ชัน analogRead(A0) เพื่อรับค่าความเข้มแสง ซึ่งถูกแปลงเป็นสัญญาณดิจิทัลแบบ 10-bit (ค่า 0-1023)
  2. แสดงผลผ่าน Serial Monitor: ในตอนแรก ให้อัปโหลดโค้ดและเปิด Serial Monitor (Ctrl+Shift+M) เพื่อสังเกตค่าตัวเลขภายใต้สภาพแสงที่แตกต่างกัน
    • เมื่อมีแสงมาก ค่าที่แสดงบน Serial Monitor จะสูง
    • เมื่อคุณบัง LDR ด้วยมือ (จำลองความมืด) ค่าตัวเลขจะลดลง
  3. การปรับเทียบ Threshold: นี่คือส่วนที่สำคัญที่สุด จากข้อมูลใน Serial Monitor ให้สังเกตค่าเมื่อ "เริ่มมืดลง"
    • ตัวอย่าง: หากภายใต้แสงปกติ คุณอ่านค่าได้ 180 และเมื่อมืด คุณอ่านค่าได้น้อยกว่า 150 คุณควรกำหนด Threshold ไว้ที่ประมาณ 100-120 เป็นเกณฑ์สำหรับการเปิดไฟ
  4. การควบคุมเอาต์พุต: ใช้เงื่อนไข if (sensorValue < threshold) หากค่าที่อ่านได้ต่ำกว่า Threshold ที่เราตั้งไว้ ให้ส่งสัญญาณ HIGH ไปยัง Pin 13 เพื่อเปิด LED

คำแนะนำจากวิศวกร: ความเข้มแสงจะแตกต่างกันไปในแต่ละห้อง หากคุณพบว่า LED ติดตลอดเวลาหรือไม่หรี่ลงเลย ให้ปรับตัวเลข 100 ในเงื่อนไข if ของโค้ดให้ตรงกับค่าต่ำสุดจริงที่คุณอ่านได้จากสภาพแวดล้อมนั้น เพื่อความแม่นยำสูงสุดของระบบเซ็นเซอร์ของคุณ

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

title: "Arduino Light Senser Using LDR"
description: "This project uses LDR for a light sensor."
author: "SURYATEJA"
category: ""
tags:
  - "lights"
  - "smart appliances"
  - "internet of things"
views: 5823
likes: 2
price: 870
difficulty: "Easy"
components:
  - "1x Breadboard (generic)"
  - "1x Photo resistor"
  - "1x Arduino UNO"
  - "1x LED (generic)"
tools: []
apps:
  - "1x Arduino IDE"
downloadableFiles: []
documentationLinks: []
passwordHash: "a573e7b2f9e46a0c01ec1812f0fe51162d851469ebea83ee988549704bd4ef7f"
encryptedPayload: "U2FsdGVkX191eNLHDv8ohiRT5Pbu8gS0oN7P3B2iIfChCs+iZ6M7/Y704HT6AULA5oZj9m4K+JpR/MsHJYu7/M6BKsiEFHGvnLppZycZ4vE="
seoDescription: "Learn how to build an Arduino Light Sensor using an LDR to detect light levels in your electronics projects."
videoLinks: []
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/arduino-light-senser-using-ldr-ce214a_cover.jpg"
lang: "th"