ชื่อโปรเจกต์: การเชื่อมต่อ Photoresistor
คณิตศาสตร์จากสภาพแวดล้อม: การเชื่อมต่อ Photoresistor
Photoresistor (LDR - Light Dependent Resistor) เป็นองค์ประกอบพื้นฐานที่มีความสำคัญเป็นอันดับสองใน embedded hardware (รองจาก LED) มันสอนแนวคิดทางวิศวกรรมหลักของ "Voltage Divider" ซึ่งจำเป็นสำหรับการวัดเซ็นเซอร์ analog แทบทุกชนิดที่มีอยู่ ตั้งแต่ thermistor ไปจนถึง flex-sensor

ปัญหาเกี่ยวกับ Raw Resistance
Arduino analog pin (เช่น A0) จะวัดค่า Voltage (ตั้งแต่ 0 ถึง 5V) มันไม่ได้วัดค่า Resistance
- LDR จะเปลี่ยนค่า resistance ตามปริมาณแสง ในที่มืดสนิท ค่า resistance จะสูงมาก (1 MegOhm) ในแสงแดดจ้า ค่า resistance จะลดลงอย่างมากเหลือ 100 Ohms
- หากคุณเสียบ LDR เข้ากับ 5V และ
A0โดยตรง, pin จะอ่านค่า1023ตลอดทั้งวัน เพราะมันกำลังอ่านค่า raw voltage ที่ไหลผ่าน resistor เท่านั้น
วิธีแก้ปัญหาด้วย Voltage Divider
เนื่องจาก Arduino เข้าใจเฉพาะ voltage เราจึงต้องแปลงค่า resistance ที่เปลี่ยนแปลงไปให้เป็น voltage ที่เปลี่ยนแปลงได้
- คุณสร้างวงจร bridge
- คุณต่อ
5Vเข้ากับขาหนึ่งของ LDR - คุณต่อขาอีกข้างของ LDR เข้ากับทั้ง pin
A0และ10K Ohm fixed resistor - คุณต่อปลายอีกข้างของ 10K resistor เข้ากับ
Ground - ผลลัพธ์ทางฟิสิกส์: เมื่อ LDR เปลี่ยนค่า resistance มันจะ "ต่อสู้" กับ 10K resistor ที่มีค่าคงที่ ความดันทางคณิตศาสตร์ระหว่างพวกมันจะเปลี่ยนไป จุดที่อยู่ ระหว่าง พวกมัน (A0) ตอนนี้จะเกิดการเปลี่ยนแปลง voltage อย่างมาก!
- หากคุณบัง LDR,
analogRead(A0)จะลดลงเหลือ200เมื่อส่องแสงใส่, มันจะขึ้นไปถึง900
การเขียน Control Logic
ตอนนี้แสงทางกายภาพเป็น variable (int lightValue) เราสามารถควบคุมโลกได้
if (lightValue < 400) { digitalWrite(LED_BUILTIN, HIGH); }- คุณเพิ่งประสบความสำเร็จในการออกแบบระบบ logic อัตโนมัติแบบเดียวกับที่ใช้ในไฟถนนทั่วโลก!
ฮาร์ดแวร์พื้นฐานที่จำเป็น
- Arduino Uno/Nano
- Photoresistor / LDR แบบ Cadmium-Sulfide (CdS) หนึ่งตัว
- 10K Ohm Resistor หนึ่งตัว (จำเป็นสำหรับการคำนวณของ voltage divider)