ตรวจจับแรงกดอย่างง่ายกับ Force sensor
<อ้างอิงจากวารสาร The Prototype Electronics ฉบับที่ 40>
ลักษณะการทำงานของตัวตรวจจับแรงกด
รูปที่ 1 ลักษณะโครงสร้างของตัวตรวจจับแรงกด FSR
ตัวตรวจจับแรงกดหรือ force sensor มีหลายประเภท สำหรับงานในระดับนักเล่นนักทดลองที่นำมาเสนอนี้เป็นตัวตรวจจับแรงกดแบบค่า ความต้านทานหรือ Force Sensing Resistor (FSR) ที่ใช้เทคโนโลยีฟิล์มโพลีเมอร์แบบหนา (Polymer Thick Film) โดยแรงดันไฟฟ้าที่ตกคร่อมตัวตรวจจับจะลดลง เมื่อมีแรงกดมากระทำบนแผ่นตรวจจับ มีโครงสร้างของตัวตรวจจับแสดงในรูปที่ 1 ประกอบด้วยแผ่นสารกึ่งตัวนำแบบอ่อนที่เป็นตัวกำหนดค่าความต้านทานไฟฟ้าประกบ เข้ากับแผ่นขั้วไฟฟ้าแบบอ่อน โดยมีแผ่นฉนวนแบบอ่อนคั่นกลาง ทำให้เกิดค่าความต้านทานไฟฟ้าขึ้นระหว่างขาต่อใช้งาน เมื่อมีการกดลงบนแผ่นขั้วนำไฟฟ้า จะทำให้เกิดการสัมผัสระหว่างสารกึ่งตัวนำกับขั้วไฟฟ้า ส่งผลให้ค่าความต้านทานไฟฟ้าเกิดการเปลี่ยนแปลง ดังแสดงกระบวนการทำงานในรูปที่ 2
รูปที่ 2 การทำงานของตัวตรวจจับแรงกด FSR
ดัง นั้นตัวตรวจจับแรงกดแบบนี้จึงเหมาะกับการใช้งานที่ต้องการรับรู้ว่า มีการกดเกิดขึ้นหรือไม่ เนื่องจากค่าที่ได้จากตัวตรวจจับเป็นการเปลี่ยนแปลงของค่าความต้านทานไฟฟ้า ที่สัมพันธ์กับพื้นที่ของการกด
ตัวตรวจจับแรงกด FSR ที่มีจำหน่ายหลักๆ มี 3 ขนาดดังรูปที่ 3
รูปที่ 3 แสดงตัวตรวจจับแรงกด FSR ที่มีจำหน่ายในประเทศไทย (www.inex.co.th )
การต่อวงจรเพื่อใช้งานกับบอร์ด Unicon
ใน การใช้งานตัวตรวจจับแรงกดทั้ง 3 ขนาดจะเหมือนกัน มีเพียงผลการทำงานที่แตกต่างกันตามพื้นที่และความสามารถในการรับแรงกด (ดูข้อมูลในรูปที่ 3 ประกอบ) สำหรับการอ่านค่าจากตัวตรวจจับแบบนี้จึงต้องต่อใช้งานในแบบวงจรแบ่งแรงดัน โดยต่อร่วมกับตัวต้านทานอีก 1 ตัว ดังรูปที่ 4 แล้วต่อสัญญาณจากตัวตรวจจับ FSR เข้าที่อินพุตอะนาลอกของบอร์ด Unicon ตามรูปที่ 5 ซึ่งมีการใช้บอร์ด JCON-PORT4 มาช่วยในการเปลี่ยนขั้วต่อสัญญาณ
รูปที่ 4 วงจรเชื่อมต่อเพื่อใช้งานตัวตรวจจับแรงกด FSR กับบอร์ด Unicon
รูปที่ 5 ตัวอย่างการเชื่อมต่ออุปกรณ์จริงเพื่อใช้งานตัวตรวจจับแรงกด FSR กับบอร์ด Unicon
เขียนโค้ด
โค้ด ตัวอย่างสำหรับอ่านค่าของตัวตรวจจับแรงกด FSR แสดงในโปรแกรมที่ 1 อันเป็นการอ่านค่าจากอินพุตอะนาลอกขา 20 หรือ A2 ที่ต่อกับตัวตรวจจับแรงกด FSR จากนั้นนำค่าที่ได้มาแสดงผลที่จอ GLCD-XT ที่ติดตั้งบนบอร์ด Unicon
#include <unicon.h> int val; void setup(){ glcdClear(); } void loop(){ val=analog(2); glcd(0,0,"%d ",val); sleep(100); } |
โปรแกรมที่ 1 ไฟล์ Unicon_Force_Sensor.ino สำหรับอ่านค่าจากตัวตรวจจับแรงกด FSR ของบอร์ด Unicon
ทดสอบกันจะจะ
ใน การทดสอบเมื่อยังไม่ได้กดลงบนตัวตรวจจับ ค่าที่วัดได้จะมีค่าเป็น 1023 เมื่อลองกดลงบนแผ่นตรวจจับเบาๆ ค่าที่อ่านได้จะลดลง จากการทดสอบเมื่อกดลงเบาๆ ค่าจะลดลงเหลือประมาณ 300 ถึง 400 เมื่อออกแรงกดเพิ่มขึ้น ค่าที่อ่านได้จะลดลง
รูปที่ 6 ทดสอบกดตัวตรวจจับแรงกด FSR เบาๆ ดูค่าที่อ่านได้บนจอ GLCD-XT ของบอร์ด Unicon
นอกจากนี้พื้นที่ที่รับแรงกดมีผลกับค่าที่อ่านได้ด้วย ที่บริเวณกึ่งกลางของแผ่นตรวจจับจะให้การตอบสนองต่อการกดได้ดีที่สุด ถ้ากดที่ริมขอบและที่มุมของแผ่นตรวจจับ แม้ว่าจะกดด้วยแรงเท่าๆ กัน การตอบสนองจะน้อยกว่า นั่นคือ ค่าที่ได้จะลดลงเพียงเล็กน้อย ดังนั้นการนำไปใช้งานควรเลือกขนาดให้เหมาะสมกับพื้นที่ใช้งาน
(7.1) เมื่อกดที่กึ่งกลาง ได้ค่าประมาณ 340 (7.2) กดที่ขอบบนด้วยแรงพอๆ กัน ได้ค่าประมาณ 635 (7.3) กดที่มุมล่างด้วยแรงพอๆ กัน ได้ค่าประมาณ 722 |
รูปที่ 7 แสดงผลการทำงานของตัวตรวจจับแรงกดรูปสี่เหลี่ยมเมื่อกดลงบนแผ่นตรวจจับที่ตำแหน่งต่างๆ
รูปที่ 8 แสดงผลการทำงานของตัวตรวจจับแรงกดแบบกลมเมื่อกดลงบนแผ่นตรวจจับที่ตำแหน่งต่างๆ
(8.1) เมื่อกดที่กึ่งกลาง ได้ค่าประมาณ 319
(8.2) กดที่ขอบด้วยแรงพอๆ กัน ได้ค่าประมาณ 748
การประยุกต์ใช้งาน
ในการนำตัวตรวจจับแรงกด SFR ไปใช้งานจะนิยมเป็นปุ่มกดแทนสวิตช์แบบเดิมๆ เพราะตัวตรวจจับแรงกดแบบนี้มีขนาดบาง จึงนำไปติดตั้งได้เรียบเนียนไปกับพื้นผิวได้ดี นำไปใช้เป็นปุ่มกดคล้ายปุ่มแบบสัมผัสได้