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

การแปลง Analog เป็น Digital (ADC)
Arduino "มองเห็น" แสงผ่าน LDR (Light Dependent Resistor)
- The Voltage Divider: คุณต้องจับคู่ LDR กับ fixed resistor (เช่น 10k-ohm) ในวงจร เมื่อแสงเปลี่ยน ความต้านทานของ LDR จะเปลี่ยน ซึ่งจะทำให้ voltage ที่เข้าสู่ Arduino pin A0 เปลี่ยนไปด้วย
- 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.