Page 199 - เอกสารประกอบการสอนวิชาไมโครคอนโทรลเลอร์เบื้องต้น
P. 199

เอกสารประกอบการสอนวิชาไมโครคอนโทรลเลอร์เบื้องต้น    15
























                        รูปที่ 4.4 การต่อวงจร RC อินติเกรเตอร์ เพื่อแก้ไขปัญหาสัญญาณรบกวนจากการกดสวิตช์

                       หรือถ้าแก้โดยใช้ไมโครคอนโทรลเลอร์ จะสามารถแก้ไขได้ด้วยกระบวนการทางซอฟต์แวร์ โดยเขียน

               โปรแกรมให้ตรวจจับการเปลี่ยนแปลงระดับลอจิกของสวิตช์ ถ้าพบว่ามีการเริ่มกดสวิตช์ ก็คือระดับลอจิกเปลี่ยน
               จาก “1” เป็น “0” โปรแกรมจะหน่วงเวลารอจนเลยช่วงเวลาเกิดเบาซ์ของสวิตช์ เมื่อเลยเวลาแล้วให้ท าการอ่านค่า

               สถานะของสวิตช์อีกครั้งถ้ายังคงเป็น “0” แสดงว่ากดสวิตช์สมบูรณ์แล้ว

                       ระยะเวลาที่ต้องหน่วงเวลาหาได้จากการใช้ออสซิลโลสโคปวัดระดับสัญญาณ หรือใช้การทดลองป้อนค่า

               หน่วงเวลาแล้วปรับค่าจนกระทั่งได้ค่าที่แก้ปัญหาการเบาวซ์ของสวิตช์ได้อย่างสมบูรณ์  ในโปรแกรมทดลองที่ 4.5

               ได้ทดลองโดยใช้ค่าของการหน่วงเวลาเท่ากับ 10 มิลลิวินาที ซึ่งสามารถเปลี่ยนได้ที่บรรทัด

               #define Debounce 10
                       โปรแกรมที่ 4.5

                       ไฟล์ DebounceSW.ino  โปรแกรมภาษา C  ของ Arduino  อ่านค่าสวิตช์เพื่อควบคุม LED  แบบมีการ

               แก้สัญญาณรบกวนจากการกดสวิตช์หรือดีเบาซ์

                              /*

                              * Read input from push button for control status of LED.

                              * Change operation of push button to togle switch.
                              * File : DebouncedSW.ino */

                              #define IN_PIN 7 // the number of the input pin

                              #define OUT_PIN 11 // the number of the output pin

                              #define Debounce 10 // debounce time = 10 ms

                              int state = HIGH; // the current state of the output pin
                              int reading; // the current reading from the input pin

                              int previous = HIGH; // the previous reading from the input pin




               หน่วยที่ 4 ฟังก์ชั่นพื้นฐานของ Arduino และการควบคุมหลอดไฟ LED                                 เรียบเรียงโดยครูทันพงษ์  ภู่รักษ์
   194   195   196   197   198   199   200   201   202   203   204