KidBright & Senses IoT Platform [ตอนที่ 9: LDR Sensor]
แอลดีอาร์ (LDR : Light Dependent Resistor) คือ ตัวต้านทานชนิดที่ไวต่อแสง กล่าวคือ ตัวความต้านทานนี้สามารถเปลี่ยนสภาพทางความนำไฟฟ้า ได้เมื่อมีแสงมาตกกระทบ การนำไปประยุกต์ใช้ในชีวิตประจำวัน สามารถนำไปเป็นเซนเซอร์ที่ตรวจจับความสว่างของแสงอาทิตย์ได้เช่น ถ้าหากค่าความเข้มของแสงมากกว่าที่กำหนดไว้จะสั่งให้หลอดไฟดับ ในทางตรงกันข้ามถ้าหากความเข้มของแสงต่ำกว่าที่กำหนดไว้จะส่งให้หลอดไฟติดสว่าง ลักษณะการทำงานแบบนี้มักพบได้ทั่วไปตามหลอดไฟส่องสว่างบนท้องถนนนั่นเอง
LDR นั้นได้ถูกออกแบบให้ติดมากับบอร์ด KidBright จำนวน 1 ตัว เราสามารถเขียนโปรแกรมติดต่อ อ่านค่าการกดสวิตซ์ผ่าน GPIO36 ได้เลย โดยไม่ต้องทำการต่อสายวงจรเพิ่มเติม
เขียนโปรแกรมติดต่อกับ LDR และ LED MATRIX
จุดประสงค์ของการทดลอง
1. อ่านค่าความต้านทานจาก LDR ได้
2. แสดงค่าความต้านทานผ่าน LED MATRIX ได้
อธิบายโค้ด
บรรทัดที่ 1–3 เรียกใช้ไลบราลี่ภายนอก
บรรทัดที่ 4 กำหนดค่าหน่วงเวลาในการแสดงผลออกสู่ LED MATRIX
บรรทัดที่ 6 กำหนดพินสำหรับอ่านค่าความต้านทานจาก LDR
บรรทัดที่ 7 กำหนดตัวแปรมารับค่าความต้านทานที่อ่านได้
บรรทัดที่ 8 กำหนดตัวแปรมารับค่าความต้านทานหลังจากที่ได้ทำการ map ช่วงของข้อมูลใหม่
บรรทัดที่ 10 กำหนดตัวแปร matrix มาทำหน้าที่สั่งงาน และ แสดงผลออกสู่ LED MATRIX
บรรทัดที่ 12 ฟังก์ชั่นตั้งค่าทำงาน
บรรทัดที่ 13 กำหนดความเร็วในรับส่งข้อมูลระหว่างบอร์ด KidBright และ คอมพิวเตอร์
บรรทัดที่ 14 กำหนดความละเอียดในการอ่านค่าจาก LDR : 10 หมายถึง 10 บิต
สามารถอ่านค่าได้ตั้งแต่ 0–1023
บรรทัดที่ 16 กำหนดหมายเลขแอดเดรสในการสื่อสารกับ LED MATRIX
บรรทัดที่ 17–20 ตั้งค่าการแสดงผลออกสู่ LED MATRIX
บรรทัดที่ 23 ฟังก์ชั่นการทำงานซ้ำ
บรรทัดที่ 25 อ่านค่าความต้านทานมาเก็บไว้ในตัวแปร
บรรทัดที่ 26 ทำการ map ช่วงของข้อมูลใหม่ จาก 0–1023 เป็น 0–99
บรรทัดที่ 28–29 แสดงข้อมูลที่อ่านได้จาก LDR ออกสู่หน้าจอ
บรรทัดที่ 32 สั่งเคลียร์การแสดงผลบน LED MATRIX
บรรทัดที่ 33 กำหนดตำแหน่งในการแสดงผลบน LED MATRIX
บรรทัดที่ 34 แปลงค่าความต้านทานจาก int เป็น String
บรรทัดที่ 46 แสดงค่าความต้านทานออกสู่หน้าจอ (Serial Monitor)
บรรทัดที่ 47–48 แสดงค่าความต้านทานบน LED MATRIX
บรรทัดที่ 50 หน่วงเวลา 200 มิลลิเซค
KidBright & Senses IoT Platform [ตอนที่ 10: Temp, LDR and Dashboard]