กลับไปหน้ารวมไฟล์
automatic-night-light-arduino.md

โปรเจกต์ไฟกลางคืนอัตโนมัติ

การตอบสนองต่อสภาพแวดล้อม: ไฟกลางคืนอัตโนมัติ

ไฟกลางคืนอัตโนมัติ เป็นโปรเจกต์เริ่มต้นสุดคลาสสิกสำหรับหุ่นยนต์ที่ตอบสนองต่อสิ่งแวดล้อม สอนหลักการพื้นฐานของการรับ analog input (สถานะสิ่งแวดล้อม) เพื่อกระตุ้น digital threshold (การทำงาน) ทำหน้าที่เป็น dawn-to-dusk sensor พื้นฐาน

button_led_basic_interaction_1772681969235.png

การแปลง Analog เป็น Digital (ADC)

Arduino "มองเห็น" แสงผ่าน LDR (Light Dependent Resistor)

  1. The Voltage Divider: คุณต้องจับคู่ LDR กับ fixed resistor (เช่น 10k-ohm) ในวงจร เมื่อแสงเปลี่ยน ความต้านทานของ LDR จะเปลี่ยน ซึ่งจะทำให้ voltage ที่เข้าสู่ Arduino pin A0 เปลี่ยนไปด้วย
  2. The Read: ฟังก์ชัน analogRead(A0) จะรับ voltage 0-5V นั้น และแปลงเป็นตัวเลขระหว่าง 0 ถึง 1023
    • แสงสว่าง = 900
    • มืดสนิท = 150

เกณฑ์การควบคุม

แทนที่จะใช้สมการที่ซับซ้อน คุณสามารถสร้างขอบเขต logical threshold ที่เรียบง่าย:

int lightThreshold = 400; // ปรับค่านี้ตามสภาพห้องของคุณ

if (analogRead(A0) < lightThreshold) {
  digitalWrite(ledPin, HIGH); // เปิดไฟเมื่อมืด
} else {
  digitalWrite(ledPin, LOW); // ปิดไฟเมื่อสว่าง
}

การเพิ่มการเฟดที่นุ่มนวล

เพื่อให้ได้สัมผัสที่พิเศษยิ่งขึ้น แทนที่จะเปิดไฟทันที (digitalWrite) คุณสามารถใช้ฟังก์ชัน map() ได้ คุณสามารถเชื่อมโยงระดับความมืดโดยตรงไปยัง analogWrite(PWM) pin เมื่อพระอาทิตย์ค่อยๆ ตกดิน LED จะค่อยๆ สว่างขึ้นเรื่อยๆ ในการเปลี่ยนผ่านที่ราบรื่นอย่างสมบูรณ์แบบ!

ข้อกำหนดฮาร์ดแวร์พื้นฐาน

  • Arduino Uno/Nano: ตัวควบคุมหลัก (logic gate)
  • LDR (Photoresistor).
  • 10k-ohm Resistor: จำเป็นสำหรับ the voltage divider
  • LED หรือ small 5V Relay module.

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

title: "Automatic Night Light Project"
description: "Your first automation! Build a simple, intelligent dawn-to-dusk light that automatically turns on high-power LEDs only when the room gets dark."
category: "Basic Electronics"
difficulty: "Easy"