ระบบเปิดไฟอัตโนมัติด้วย LDR

Microcontroller เด่น

จุดประสงค์

  1. นักเรียนสามารถต่อวงจรในการใช้ LDR ควบคุม LED ได้
  2. นักเรียนสามารถเขียนโปรแกรมเพื่อใช้ LDR ควบคุม LED ได้
  3. นักเรียนสามารถนำความรู้ที่ได้ไปใช้ในการแก้ปัญหาในชีวิตประจำวันได้

เครื่องมือและอุปกรณ์ในการต่อวงจร LDR ควบคุม LED

บอร์ดทดลอง Breadboard 

Protoboard หรือ Breadboard คือบอร์ดทดลอง สำหรับต่อวงจรไฟฟ้าและอิเล็กทรอนิกส์ต่างๆโดยไม่ต้องบัดกรีวงจร ซึ่งมีประโยชน์มากทั้งสำหรับผู้เริ่มต้นและผู้ที่ต้องการทดลองต่อวงจรใหม่ๆ โดย Protoboard นั้นมีหลายขนาดด้วยกัน ตั้งแต่ 170 รู , 830 รู จนถึง 1,660 รูเลยทีเดียว

LED

LED หรือ ไดโอดเปล่งแสง (Light Emitting Diode) คืออุปกรณ์ไฟฟ้าแบบ Passive ที่เมื่อมีกระแสไหลผ่านแล้วจะเปล่งแสงออกมา ด้วยการที่เป็นไดโอด จึงยอมให้กระแสไหลผ่านทางเดียวคือจากขั้ว + ไปยังขั้ว – ถ้าต่อกลับทิศ ไฟจะไม่ติด (เป็นคุณสมบัติของไดโอด)

Arduino Uno R3

 Arduino อ่านว่า (อา-ดู-อิ-โน่ หรือ อาดุยโน่) เป็นบอร์ดไมโครคอนโทรเลอร์ตระกูล AVR ที่มีการพัฒนาแบบ Open Sourceคือมีการเปิดเผยข้อมูลทั้งด้าน Hardware และ Software ตัว บอร์ด Arduino ถูกออกแบบมาให้ใช้งานได้ง่าย ดังนั้นจึงเหมาะสำหรับผู้เริ่มต้นศึกษา ทั้งนี้ผู้ใช้งานยังสามารถดัดแปลง เพิ่มเติม พัฒนาต่อยอดทั้งตัวบอร์ด หรือโปรแกรมต่อได้อีกด้วย

Resistor ตัวต้านทาน

มีหน้าที่ในการจำกัดปริมาณแรงดันและกระแสไฟฟ้าในวงจร เพื่อให้ LOAD อื่น ๆ ที่ต่อเข้ากับมันได้รับแรงดันและกระแสที่เหมาะสม

LDR ตัวต้านทานปรับค่าได้ตามแสง LDR  แอลดีอาร์ (LDR) หรือชื่อเต็ม ๆ คือ Light Dependent Resistor หรือตัวต้านทานที่แปรค่าตามแสง คือ ตัวต้านทานชนิดที่เปลี่ยนสภาพความนำไฟฟ้า (Conductance) ได้เมื่อมีแสงมาตกกระทบ ทำจากวัสดุสารกึ่งตัวนำที่ไวต่อแสง บางครั้งเราเรียก LDR เซนเซอร์ชนิดนี้ว่าโฟโตรีซีสเตอร์ (Photoresistor) หรือ โฟโตคอนดัคเตอร์ (Photoconductor) โมดูลนี้ให้สัญญาณเอาต์พุตได้ ทั้งแบบแอนะล็อกที่ช่อง (A0) ซึ่งมีค่าระหว่าง 0 – 1023 และแบบดิจิทัลที่ช่อง (D0) ค่า 0 กับ 1 โดยสามารถปรับระดับแรงดันที่นำเปรียบเทียบได้โดยการหมุนตัวต้านทานปรับค่าได้ (VR) บนบอร์ด และจะต้องป้อนใช้ไฟเลี้ยง 3.3-5V ให้กับวงจร ซึ่งบนบอร์ดจะมีแอลอีดีแสดงสัญญาณไฟเลี้ยง (PWR LED) และระดับสัญญาณที่เปรียบเทียบ (D0 LED) ด้วย

คำสั่งในการควบคุม LED ด้วย LDR

void setup()
{
pinMode(13, OUTPUT); //กำหนดให้ pin 13 เป็น pin แสดงผล
pinMode(A5, INPUT); //กำหนดให้ pin A5 เป็น pin รับข้อมูลแบบอนาลอก
Serial.begin(9600);
Serial.flush();
while(Serial.available()>0)Serial.read();
}
void loop()
{
if ((analogRead(A5) > 800)) { //รับค่าระดับแสดงและตรวจสอบกับระดับแสง 800
digitalWrite(13, LOW); //สั่งให้ pin 13 ปิดไฟหรือส่งข้อมูล 0
delay(1000); //สั่งให้ทำงาน 1 วินาที
}
else {
digitalWrite(13, HIGH); //สั่งให้ pin 13 เปิดไฟหรือส่งข้อมูล 1
delay(1000); //สั่งให้ทำงาน 1 วินาที
}
Serial.println(analogRead(A5)); //สั่งแสดงระดับแสง
}

Arduino Block

การต่อวงจร LDR ควบคุม LED