<< Go Back

                สวิตซ์ (Switch) หรือปุ่มกด (Push Button) เป็นอุปกรณ์พื้นฐานที่ใช้กันทั่วไปในหลายๆโปรเจค เพื่อเชื่อมจุด 2 จุดในวงจรให้ถึงกัน มักใช้เพื่อรับข้อมูลจากผู้ใช้ เช่น เมื่อผู้ใช้กดปุ่มให้อุปกรณ์ที่ต่อพ่วงเริ่มทำงาน หรืออาจจะรับสัญญาณจากกลไกต่างๆ เช่น เมื่อวัตถุเคลื่อนที่มาถึงลิมิตสวิตซ์ (Limit Switch) ให้เครื่องจักรหยุดทำงาน เป็นต้น นอกจากนี้ยังสามารถใช้ความรู้นี้ไปประยุกต์ต่อกับเซ็นเซอร์ (Sensor) บางประเภทได้อีกด้วย
สวิตช์ที่นำมาใช้งานกับไมโครคอนโทรลเลอร์จะเป็นสวิตช์ชนิดกดติดปล่อยดับ เมื่อนำมาใช้งานจำเป็นจะต้องใช้พอร์ตในการเชื่อมต่อ 1 ช่องต่อสวิตช์ 1 ตัว

การต่อใช้งานสวิตช์กับพอร์ตดิจิทัล

อ่านค่าจากพอร์ตแอนาลอกที่ผ่านมาเป็นการเรียนรู้เกี่ยวกับการใช้งานพอร์ตที่รับสัญญาณเข้าที่เป็นแอนาลอก ซึ่งสามารถแยกความแตกต่างได้ 1024 ระดับในช่องรับเพียงช่องเดียว ดังนั้นหากผู้ใช้งานออกแบบวงจรสวิตช์ให้ต่อวงจรที่สามารถให้แรงดันที่แตกต่างกันได้เมื่อกดสวิตช์แต่ละตัว (ใช้วงจรแบ่งแรงดัน) ก็สามารถใช้งานสวิตช์หลายตัวในพอร์ตรับสัญญาณเพียงช่องเดียวได้ ดังรูป

การต่อใช้งานสวิตช์กับพอร์ตแอนาลอก

1. ฟังก์ชันกำหนดโหมดการทำงานให้กับขาพอร์ต สามารถกำหนดได้ทั้งขาดิจิทัลโดยใส่เพียงตัวเลขของขา (0, 1, 2,…13) และขาแอนาลอกที่ต้องการให้ทำงานในโหมดดิจิทัลแต่การใส่ขาต้องใส่ A นำ หน้าซึ่งใช้ได้เฉพาะ A0, A1,…A5 ส่วนขา A6 และ A7 ไม่สามารถใช้งานในโหมดดิจิทัลได้ รูปแบบของฟังก์ชันเป็นดังนี้

pin: หมายเลขขาที่ต้องการเซตโหมด
mode: INPUT, OUTPUT, INPUT_PULLUP

2. ฟังก์ชันส่งค่าลอจิกดิจิทัลไปยังขาพอร์ต ค่า HIGH เป็นการส่งลอจิก 1 และค่า LOW เป็นการส่งลอจิก 0 ออกไปยังขาพอร์ต ซึ่งฟังก์ชันนี้จะทำงานได้ต้องมีการใช้ฟังก์ชัน pinMode ก่อน

pin: หมายเลขขาที่ต้องการเขียนลอจิกออกพอร์ต

3. ฟังก์ชันหน่วงเวลาหรือฟังก์ชันหยุดค้าง การใช้งานสามารถกำหนดตัวเลขของเวลาที่ต้องการหยุดค้างโดยตัวเลขที่ใส่เป็นตัวเลขของเวลาหน่วยเป็นมิลลิวินาที ตัวเลขของเวลาที่ใส่ได้สูงสุดคือ 4,294,967,295 ซึ่งเป็นขนาดของตัวแปร unsigned long

ms: ตัวเลขที่หยุดค้างของเวลาหน่วยมิลลิวินาที (unsigned long)

4. ฟังก์ชันกำหนดความเร็วในการสื่อสารทางพอร์ตอนุกรม

speed: ตัวเลขของอัตราเร็วในการสื่อสารผ่านพอร์ตอนุกรม

5. ฟังก์ชันส่งข้อมูลออกพอร์ต เป็นฟังก์ชันที่ใช้ในการส่งข้อมูลออกทางพอร์ตอนุกรม หรือพิมพ์ข้อมูลออกทางพอร์ตเพื่อแสดงผลที่จอคอมพิวเตอร์เมื่อพิมพ์เสร็จตัวเคอร์เซอร์จะรออยู่ที่ท้ายสิ่งที่พิมพ์นั้น ๆ

6. ฟังก์ชันส่งข้อมูลออกพอร์ต คล้ายกับฟังก์ชัน Serial.print ต่างกันตรงที่เมื่อพิมพ์เสร็จตัวเคอร์เซอร์จะขึ้นมารอยังบรรทัดใหม่ ดังนั้นเมื่อสั่งพิมพ์ครั้งถัดไปข้อมูลที่ปรากฏจะอยู่ที่บรรทัดใหม่ แทนที่จะต่อท้ายเหมือนกับฟังก์ชัน Serial.print

7. ฟังก์ชันอ่านสัญญาณแอนาลอก เป็นฟังก์ชันที่อ่านสัญญาณแอนาลอกที่ปรากฏอยู่ที่ขาพอร์ตแอนาลอกที่ต้องการอ่านนั้น ๆ ค่าที่อ่านได้จะอยู่ในช่วง 0-1023 สำหรับแรงดันของสัญญาณแอนาลอกที่ 0-5V ดังนั้น ต้องใช้ตัวแปรที่เป็น int สำหรับเก็บค่าที่อ่านได้

pin: ขาพอร์ตแอนาลอกที่ต้องการอ่านค่าสัญญาณแอนาลอก

วงจรที่ต่อเข้ากับบอร์ด Arduino ดังรูป

รูปวงจรที่ใช้บอร์ด Arduino ในการทดลอง

การต่อวงจร

รูปการต่อลงบอร์ดทดลอง

การเขียนโปรแกรมด้วยภาษา C เพื่อทดสอบอุปกรณ์
เขียนโปรแกรมอ่านค่าแอนาลอกจากการกดสวิตช์แต่ละตัวโดยแสดงผลที่จอคอมพิวเตอร์ผ่านทางพอร์ตอนุกรม

ผลลัพธ์ที่ได้
เขียนคำสั่งการอ่านค่าแอนาลอกจากวงจรสวิตช์โดยนำเข้ามาเก็บไว้ในตัวแปร adc จากนั้นแสดงค่าแอนาลอกจากการกดสวิตช์ผ่านทางพอร์ตอนุกรม

 

<< Go Back