LDR (Light Dependent Resistor) — เซ็นเซอร์วัดแสง
LDR คือตัวต้านทานที่ค่าความต้านทานเปลี่ยนแปลงตามปริมาณแสง — ยิ่งมีแสงมาก ค่าความต้านทานยิ่งน้อย ยิ่งมืด ค่าความต้านทานยิ่งมาก
วงจร Voltage Divider
5V
|
[10k Resistor]
|
+--- Arduino A0
|
[LDR]
|
GND
เมื่อมีแสง → LDR ต้านทานต่ำ → ค่า Analog สูง
เมื่อมืด → LDR ต้านทานสูง → ค่า Analog ต่ำ
Source Code — เปิดไฟอัตโนมัติ
const int LDR_PIN = A0;
const int RELAY_LIGHT = 7;
int lightThreshold = 400; // ค่ากลางๆ เช้า/ค่ำ
void setup() {
pinMode(RELAY_LIGHT, OUTPUT);
digitalWrite(RELAY_LIGHT, HIGH); // ปิดไฟตอนเริ่ม
Serial.begin(9600);
}
void loop() {
int light = analogRead(LDR_PIN);
Serial.print("Light Level: "); Serial.println(light);
if (light < lightThreshold) {
// มืด → เปิดไฟ
digitalWrite(RELAY_LIGHT, LOW);
Serial.println("🌙 มืดแล้ว — เปิดไฟ");
} else {
// สว่าง → ปิดไฟ
digitalWrite(RELAY_LIGHT, HIGH);
Serial.println("☀️ สว่างแล้ว — ปิดไฟ");
}
delay(5000); // ตรวจสอบทุก 5 วินาที
}
ปรับปรุงด้วย Hysteresis (กันกระพริบ)
ปัญหาของ LDR คือค่าอาจแกว่งใกล้ Threshold ทำให้ไฟกระพริบ ต้องเพิ่ม Hysteresis:
int lightOn = 300; // เปิดไฟเมื่อต่ำกว่า 300
int lightOff = 500; // ปิดไฟเมื่อสูงกว่า 500
bool lightOn = false;
void loop() {
int light = analogRead(LDR_PIN);
if (!lightOn && light < lightOn) {
digitalWrite(RELAY_LIGHT, LOW);
lightOn = true;
} else if (lightOn && light > lightOff) {
digitalWrite(RELAY_LIGHT, HIGH);
lightOn = false;
}
delay(1000);
}
ปรับปรุงด้วยค่าเฉลี่ย (Averaging)
อ่านค่า 10 ครั้งแล้วเฉลี่ย เพื่อลดสัญญาณรบกวน:
int readLight() {
long sum = 0;
for (int i = 0; i < 10; i++) {
sum += analogRead(LDR_PIN);
delay(10);
}
return sum / 10;
}
Tip: ติดตั้ง LDR หันไปทางหน้าต่างหรือแหล่งแสงธรรมชาติ ไม่ให้ถูกเงาของตัวตู้ควบคุมบัง
💰 ราคาประมาณการ
| อุปกรณ์ | ราคา |
|---|---|
| Soil Moisture YL-69 | ~20-40 บาท |
| Capacitive Moisture v1.2 | ~50-90 บาท |
| LDR + 10k Resistor | ~5-10 บาท |
| DHT22 | ~80-120 บาท |
| PIR HC-SR501 | ~30-60 บาท |
| Rain Sensor YL-83 | ~25-45 บาท |
| Flow Sensor YF-S201 | ~60-100 บาท |
🔋 ทางเลือกใช้แบตเตอรี่
เซ็นเซอร์ทั้งหมดใช้ไฟ 5V ซึ่ง Arduino จ่ายให้ได้โดยตรง ถ้าใช้แบตเตอรี่ 12V + Buck Converter → 5V เซ็นเซอร์จะทำงานปกติ
สำหรับระบบนอกบ้านที่ไม่มีปลั๊กไฟ ใช้ Solar Cell 10W + แบต 12V 7Ah (~1,000-1,500 บาท) จ่ายไฟทั้งระบบได้ 24 ชม.
⚠️ หมายเหตุ: เนื้อหานี้ค้นคว้าและเรียบเรียงโดย Hermes AI — ข้อมูลทางเทคนิคควรตรวจสอบก่อนนำไปใช้งานจริง