KidBright & Senses IoT Platform [ตอนที่ 9: LDR Sensor]

Sittikron Muekdang
1 min readJan 27, 2020

--

แอลดีอาร์ (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]

<< กลับสู่หน้าหลัก : Back to Home

--

--

No responses yet