ตัวอย่างการอ่านค่าความต้านทานปรับค่าได้ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- เนื่องจาก
PIC16F628 ไม่มี AtoD เหมือน PIC รุ่นใหญ่ แต่เราสามารถ ใช้หลักการ ในการ charge,
discharge ของตัวเก็บประจุ (C) และวัดแรงดันที่ตกคร่อม C เมื่อให้ C คายประจุจนหมด และ Charge C ผ่าน ความต้านทาน จนแรงดันที่ตกคร่อม C มีระดับแรงดัน มีค่าเป็น 1 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
หลักการทำงาน | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
รูปที่ 1 หลักการทำงาน ของวิธีการอ่านค่าจาก ความต้านทานปรับค่าได้ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
การทดลองการอ่านค่า ความต้านทานปรับค่าได้ โดยแสดงผลออก | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-R3 200 โอมห์ป้องกันไม่ให้พอร์ตไปต่อกับ แรงดันไฟเลี้ยงโดยตรง | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-รูป A เมื่อให้พอร์ตเป็นเอาต์พุต โดยให้เป็นโลจิก 0 ลัดแรงดันที่ค่อม Cx ลงกราวน์ | Cx | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-หน่วงเวลา 25 us เพื่อรอให้ Cx คายประจุจนหมด | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-รูป B เปลียนสถานะพอร์ตเป็นอินพุต ทำให้พอร์ตมีค่าความต้านทานสูง | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- ให้ตัวแปรเริ่มนับ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-รูป C กระแสจะชาร์จ ทำให้แรงดันตกคร่อม Cx ค่อยๆ สูงขึ้นจนเป็นโลจิก 1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- แสดงผลที่นับได้ ค่าที่นับได้ขึ้นอยู่กับ ค่าความต้านทานของ VR1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
รูปที่
2 การอ่านค่าความต้านทานปรับค่าได้ โดยให้แสดงเวลาผ่านทาง RS232 (soft ware
TX=RA0,RX=RA1) |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- สำหรับทางโปรแกรม เพื่อความรวดเร็ว จะให้เอาต์พุตที่พอร์ตมีโลิก 0 โดยไม่ต้องกลับมาเป็นโลกจิก 1 เพราะเมื่อเปลี่ยนสถานะเป็นเอาต์พุต พอร์ตก็จะปรากฏ เป็นโลจิก 0 ทันที และเมื่อเปลี่ยนสถานะเป็นอินพุต พอร์ตก็จะเปลี่ยน เป็นสถานะ ความต้านทานสูง (High Impedance) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ตัวอย่างโปรแกรม | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ผลการทดลองวงจรในรูปที่
2 การทำงานเมื่อ VR1=10K Cx=0.1 uf โดยกดปุ่ม SW1 และสังเกตุผลจาก Hyperterminal ผ่าน RS232 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
*** Test VR1 *** |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
การทดลองเปลี่ยนค่า VR1 , Cx และจำนวน counter ที่นับได้ เมื่อใช้ Crytal 4MHz | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
แนวทางพัฒนาใช้กับ Keypad หลายๆปุ่มโดยใช้เพียง 1 อินพุต | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
รุปที่ 3 การทดลอง การอ่านค่าจากปุ่ม 8 ปุ่มโดยใช้เพียง
1 อินพุต |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||