LDR กับเกณฑ์ที่ไม่สั่น
เซนเซอร์แสงให้ค่าที่ขยับตลอดเวลา ถ้าใช้เกณฑ์เดียวตัดสิน ไฟจะกะพริบถี่ ๆ ตรงขอบ วิธีแก้เรียกว่าฮิสเทอรีซิส
ในบทนี้คุณจะ
- ต่อ LDR เป็นตัวแบ่งแรงดันกับตัวต้านทานคงที่
- อธิบายปัญหาการสั่นที่เกณฑ์
- ใช้สองเกณฑ์แทนหนึ่งเกณฑ์
1. ความต้านทานที่เปลี่ยนตามแสง
LDR ไม่ได้ให้แรงดันออกมาเอง มันเปลี่ยนความต้านทาน ต้องต่อคู่กับตัวต้านทานคงที่เป็นตัวแบ่งแรงดันก่อน แล้ววัดที่จุดกลาง ค่าที่ ADC อ่านได้จึงเปลี่ยนตามแสง
2. เกณฑ์เดียวทำให้ไฟกะพริบ
ถ้าตั้งว่า "ต่ำกว่า 500 ให้เปิดไฟ" แล้วค่าจริงแกว่งอยู่รอบ 500 ไฟจะเปิดปิดถี่มาก เพราะการเปิดไฟเองอาจทำให้ค่าเปลี่ยนกลับ กลายเป็นวงจรป้อนกลับที่ไม่พึงประสงค์
3. ใช้สองเกณฑ์
เปิดไฟเมื่อต่ำกว่า 400 และปิดเมื่อสูงกว่า 600 ช่วงระหว่างสองค่านี้ไม่ทำอะไรเลย ระบบจึงต้องเปลี่ยนแปลงพอสมควรก่อนจะสลับสถานะ เทคนิคนี้เรียกว่าฮิสเทอรีซิส และใช้กับเทอร์โมสตัทเหมือนกัน
4. ตัวเลขของคุณเป็นของคุณ ไม่ใช่ของคนอื่น
เลข 400 กับ 600 ข้างบนไม่ใช่ค่าที่ลอกไปใช้ได้ ADC ให้ตัวเลข 0 ถึง 1023 ไม่ใช่ลักซ์ และตัวเลขนั้นขยับตามตัวต้านทานคงที่ที่เลือก ตาม LDR ตัวที่ได้มา ตามแรงดันไฟเลี้ยง และตามทิศที่เซนเซอร์หันไป การคาลิเบรตคือการไปนั่งวัดในห้องจริง อ่านค่าตอนที่อยากให้ไฟติด อ่านค่าตอนที่อยากให้ไฟดับ แล้ววางสองเกณฑ์ไว้ในช่องว่างระหว่างนั้น จดค่าที่วัดได้ไว้ข้างโค้ดด้วย เพราะคนที่มาอ่านทีหลัง รวมถึงตัวคุณเองอีกเดือนหนึ่ง แยกไม่ออกว่า 400 มาจากการวัดหรือการเดา
ตรวจความเข้าใจ
ทำไมการใช้เกณฑ์เดียวถึงทำให้ระบบสั่น
ลงมือทำ
เปิดไฟเมื่อมืดและปิดเมื่อสว่าง โดยไม่กะพริบตรงจุดเปลี่ยน แล้วพิมพ์การตัดสินใจออกมาด้วยคำว่า LAMP
เริ่มแล็บใน StudioStudio จะเปิดวงจรเริ่มต้นของบทนี้ พร้อมคำใบ้ เฉลย และการตรวจคำตอบจากค่าที่วัดได้