ในโครงการนี้เราจะได้รับการพัฒนาวงจรสนุกสนานในการใช้เซ็นเซอร์กองทัพและ Arduino Uno วงจรนี้สร้างเสียงเชิงเส้นที่เกี่ยวข้องกับแรงที่กระทำบนเซ็นเซอร์ เพื่อที่เราจะไปเซ็นเซอร์อินเตอร์เฟซ FORCE กับ Arduino Uno ใน UNO เราจะใช้คุณลักษณะ 8 bit ADC (Analog to Digital Conversion) ในการทำงาน
Force Sensor หรือ Force Sensitive Resistor
เซ็นเซอร์ FORCE เป็นตัวแปลงสัญญาณที่เปลี่ยนความต้านทานเมื่อใช้แรงกดบนพื้นผิว เซ็นเซอร์ FORCE มีให้เลือกหลายขนาดและรูปร่าง เราจะใช้หนึ่งในเวอร์ชันที่ถูกกว่าเพราะเราไม่ต้องการความแม่นยำมากนักFSR400เป็นหนึ่งในเซนเซอร์วัดแรงที่ถูกที่สุดในตลาด ภาพของ FSR400 แสดงดังรูปด้านล่าง พวกเขาเรียกอีกอย่างว่าตัวต้านทานที่ไวต่อแรงหรือ FSRเนื่องจากความต้านทานจะเปลี่ยนไปตามแรงหรือแรงกดที่กระทำ เมื่อความดันถูกนำไปใช้กับตัวต้านทานการตรวจจับแรงนี้ความต้านทานจะลดลงนั่นคือความต้านทานจะแปรผกผันกับแรงที่กระทำ ดังนั้นเมื่อไม่มีการใช้แรงกดความต้านทานของ FSR จะสูงมาก
ตอนนี้สิ่งสำคัญคือต้องสังเกตว่า FSR 400 มีความไวตามแนวยาวแรงหรือน้ำหนักควรจะเน้นที่เขาวงกตที่กลางตาของเซ็นเซอร์ดังแสดงในรูป หากใช้แรงผิดเวลาอุปกรณ์อาจเสียหายอย่างถาวร
สิ่งสำคัญอีกอย่างที่ควรทราบคือเซ็นเซอร์สามารถขับกระแสในช่วงสูงได้ ดังนั้นโปรดคำนึงถึงกระแสการขับขี่ขณะติดตั้ง นอกจากนี้เซ็นเซอร์ยังมีขีด จำกัด ของแรงที่ 10 นิวตัน ดังนั้นเราจึงสามารถใช้น้ำหนักเพียง 1Kg หากน้ำหนักที่สูงกว่า 1Kg ใช้เซ็นเซอร์อาจแสดงการเบี่ยงเบนบางอย่าง ถ้ามันเพิ่มขึ้นมากกว่า 3Kg. เซ็นเซอร์อาจเสียหายอย่างถาวร
อย่างที่บอกไปก่อนหน้านี้เซ็นเซอร์นี้ใช้เพื่อตรวจจับการเปลี่ยนแปลงของความดัน ดังนั้นเมื่อน้ำหนักถูกนำไปใช้ที่ด้านบนของเซ็นเซอร์ FORCE ความต้านทานจะเปลี่ยนไปอย่างมาก ความต้านทานของ FS400 ต่อน้ำหนักแสดงในกราฟด้านล่าง
ดังแสดงในรูปด้านบนความต้านทานระหว่างหน้าสัมผัสทั้งสองของเซ็นเซอร์จะลดลงตามน้ำหนักหรือค่าการนำไฟฟ้าระหว่างสองหน้าสัมผัสของเซ็นเซอร์เพิ่มขึ้น ความต้านทานของตัวนำบริสุทธิ์กำหนดโดย:
ที่ไหน
p- ความต้านทานของตัวนำ
l = ความยาวของตัวนำ
A = พื้นที่ของตัวนำ
ตอนนี้ให้พิจารณาตัวนำที่มีความต้านทาน“ R” ถ้าแรงดันบางส่วนถูกนำไปใช้ที่ด้านบนของตัวนำพื้นที่บนตัวนำจะลดลงและความยาวของตัวนำจะเพิ่มขึ้นเนื่องจากความดัน ดังนั้นโดยสูตรความต้านทานของตัวนำควรเพิ่มขึ้นเนื่องจากความต้านทาน R เป็นสัดส่วนผกผันกับพื้นที่และแปรผันโดยตรงกับความยาว l
ดังนั้นสำหรับตัวนำภายใต้ความกดดันหรือน้ำหนักความต้านทานของตัวนำจึงเพิ่มขึ้น แต่การเปลี่ยนแปลงนี้มีขนาดเล็กเมื่อเทียบกับความต้านทานโดยรวม สำหรับการเปลี่ยนแปลงที่สำคัญตัวนำหลายตัวจะเรียงซ้อนกัน นี่คือสิ่งที่เกิดขึ้นภายในเซนเซอร์จับแรงที่แสดงในรูปด้านบน ในการมองอย่างใกล้ชิดเราจะเห็นเส้นมากมายภายในเซ็นเซอร์ แต่ละเส้นเหล่านี้แสดงถึงตัวนำ ความไวของเซ็นเซอร์อยู่ในหมายเลขตัวนำ
แต่ในกรณีนี้ความต้านทานจะลดลงตามแรงกดเนื่องจากวัสดุที่ใช้ที่นี่ไม่ใช่ตัวนำบริสุทธิ์ FSR นี่คืออุปกรณ์ฟิล์มหนาโพลีเมอร์ที่แข็งแกร่ง (PTF) ดังนั้นสิ่งเหล่านี้จึงไม่ใช่อุปกรณ์วัสดุตัวนำที่บริสุทธิ์ สิ่งเหล่านี้ประกอบด้วยวัสดุที่มีความต้านทานลดลงเมื่อแรงที่กระทำกับพื้นผิวของเซ็นเซอร์เพิ่มขึ้น วัสดุนี้แสดงลักษณะดังแสดงในกราฟของ FSR
การเปลี่ยนแปลงความต้านทานนี้ไม่สามารถทำประโยชน์ได้เว้นแต่เราจะอ่านมัน ตัวควบคุมที่อยู่ในมือสามารถอ่านโอกาสในแรงดันไฟฟ้าเท่านั้นและไม่มีอะไรน้อยไปกว่านั้นสำหรับสิ่งนี้เราจะใช้วงจรแบ่งแรงดันไฟฟ้าซึ่งเราสามารถได้รับการเปลี่ยนแปลงความต้านทานเมื่อแรงดันไฟฟ้าเปลี่ยนแปลง
ตัวแบ่งแรงดันเป็นวงจรต้านทานและแสดงในรูป ในเครือข่ายตัวต้านทานนี้เรามีความต้านทานคงที่หนึ่งตัวและความต้านทานตัวแปรอื่น ๆ ดังแสดงในรูป R1 ที่นี่คือความต้านทานคงที่และ R2 คือเซ็นเซอร์ FORCE ซึ่งทำหน้าที่เป็นตัวต้านทาน จุดกึ่งกลางของสาขาถูกนำไปวัด ด้วยการเปลี่ยนแปลง R2 เรามีการเปลี่ยนแปลงที่ Vout ดังนั้นด้วยนี้เรามีการเปลี่ยนแปลงแรงดันไฟฟ้าที่มีน้ำหนัก
ตอนนี้สิ่งสำคัญที่ควรทราบก็คืออินพุตที่คอนโทรลเลอร์สำหรับการแปลง ADC นั้นต่ำถึง 50µAmp ผลการโหลดของตัวแบ่งแรงดันตามความต้านทานนี้มีความสำคัญเนื่องจากกระแสที่ดึงมาจาก Vout ของตัวแบ่งแรงดันจะเพิ่มเปอร์เซ็นต์ความผิดพลาดที่เพิ่มขึ้นในตอนนี้เราไม่จำเป็นต้องกังวลเกี่ยวกับผลการโหลด
วิธีตรวจสอบ FSR Sensor
สามารถทดสอบตัวต้านทานการตรวจจับแรงได้โดยใช้มัลติมิเตอร์ เชื่อมต่อสองพินของเซ็นเซอร์ FSR เข้ากับมัลติมิเตอร์โดยไม่ต้องใช้แรงใด ๆ และตรวจสอบค่าความต้านทานมันจะสูงมาก จากนั้นใช้แรงบางส่วนกับพื้นผิวและดูการลดลงของค่าความต้านทาน
การใช้งาน FSR Sensor
ตัวต้านทานการตรวจจับแรงส่วนใหญ่จะใช้เพื่อสร้าง "ปุ่ม" ที่ตรวจจับแรงกด มีการใช้งานในหลากหลายสาขาเช่นเซ็นเซอร์ตรวจจับการเข้าพักรถยนต์แผ่นสัมผัสตัวต้านทานปลายนิ้วหุ่นยนต์แขนขาเทียมปุ่มกดระบบเท้าออกเสียงเครื่องดนตรีอิเล็กทรอนิกส์ในตัวอุปกรณ์ทดสอบและวัดค่าชุดพัฒนา OEM และอุปกรณ์อิเล็กทรอนิกส์แบบพกพากีฬา. นอกจากนี้ยังใช้ในระบบ Augmented Reality และเพื่อเพิ่มการโต้ตอบกับอุปกรณ์เคลื่อนที่
ส่วนประกอบที่จำเป็น
ฮาร์ดแวร์: Arduino Uno, แหล่งจ่ายไฟ (5v), ตัวเก็บประจุ 1000 uF, ตัวเก็บประจุ 100nF (3 ชิ้น), ตัวต้านทาน100KΩ, Buzzer, ตัวต้านทาน220Ω, เซ็นเซอร์ FSR400 Force
ซอฟต์แวร์: Atmel studio 6.2 หรือ Aurdino ทุกคืน
แผนภาพวงจรและคำอธิบายการทำงาน
การเชื่อมต่อวงจรสำหรับการเชื่อมต่อForce sensing Resistor กับ Arduinoแสดงในแผนภาพด้านล่าง
แรงดันไฟฟ้าข้ามเซ็นเซอร์ไม่เป็นเส้นตรงอย่างสมบูรณ์ มันจะมีเสียงดัง ในการกรองสัญญาณรบกวนตัวเก็บประจุจะถูกวางไว้บนตัวต้านทานแต่ละตัวในวงจรแบ่งดังแสดงในรูป
ที่นี่เราจะนำแรงดันไฟฟ้าที่ได้มาจากตัวแบ่ง (แรงดันไฟฟ้าซึ่งแสดงถึงน้ำหนักเป็นเส้นตรง) และป้อนเข้าไปในช่อง ADC ช่องใดช่องหนึ่งของ UNO หลังจากการแปลงเราจะนำค่าดิจิทัลนั้น (แทนน้ำหนัก) และเชื่อมโยงกับค่า PWM ในการขับเสียงกริ่ง
ดังนั้นด้วยน้ำหนักเราจึงมีค่า PWM ซึ่งเปลี่ยนอัตราส่วนหน้าที่ขึ้นอยู่กับค่าดิจิทัล ค่าดิจิตอลที่สูงขึ้นอัตราส่วนหน้าที่ของ PWM จะสูงขึ้นดังนั้นสัญญาณรบกวนที่เกิดจากเสียงกริ่งจะสูงขึ้น ดังนั้นเราจึงเกี่ยวข้องน้ำหนักกับเสียง
ก่อนที่จะไปเพิ่มเติมให้พูดคุยเกี่ยวกับ ADC ของ Arduino Uno ARDUINO มีช่อง ADC หกช่องดังแสดงในรูป ในหนึ่งหรือทั้งหมดสามารถใช้เป็นอินพุตสำหรับแรงดันไฟฟ้าแบบอะนาล็อก UNO ADC มีความละเอียด 10 บิต (ดังนั้นค่าจำนวนเต็มตั้งแต่ (0- (2 ^ 10) 1023)) ซึ่งหมายความว่าจะจับคู่แรงดันไฟฟ้าอินพุตระหว่าง 0 ถึง 5 โวลต์เป็นค่าจำนวนเต็มระหว่าง 0 ถึง 1023 ดังนั้นสำหรับทุกๆ (5/1024 = 4.9mV) ต่อหน่วย
ที่นี่เราจะใช้ A0 ของ UNO
เราจำเป็นต้องรู้บางสิ่ง
|
ก่อนอื่นช่อง UNO ADC มีค่าอ้างอิงเริ่มต้นที่ 5V ซึ่งหมายความว่าเราสามารถให้แรงดันไฟฟ้าอินพุตสูงสุด 5V สำหรับการแปลง ADC ที่ช่องอินพุตใดก็ได้ เนื่องจากเซ็นเซอร์บางตัวให้แรงดันไฟฟ้าตั้งแต่ 0-2.5V ด้วยการอ้างอิง 5V เราจึงมีความแม่นยำน้อยกว่าดังนั้นเราจึงมีคำสั่งที่ช่วยให้เราสามารถเปลี่ยนค่าอ้างอิงนี้ได้ ดังนั้นสำหรับการเปลี่ยนค่าอ้างอิงเรามี (“ analogReference ();”) สำหรับตอนนี้เราปล่อยให้เป็น
ตามค่าเริ่มต้นเราจะได้รับความละเอียด ADC สูงสุดของบอร์ดซึ่งเป็น 10 บิตความละเอียดนี้สามารถเปลี่ยนแปลงได้โดยใช้คำสั่ง (“ analogReadResolution (bits);”) การเปลี่ยนแปลงความละเอียดนี้อาจมีประโยชน์ในบางกรณี สำหรับตอนนี้เราปล่อยไว้เป็น
ตอนนี้หากเงื่อนไขข้างต้นถูกตั้งค่าเป็นค่าเริ่มต้นเราสามารถอ่านค่าจาก ADC ของช่อง '0' ได้โดยการเรียกใช้ฟังก์ชัน "analogRead (พิน)" โดยตรงในที่นี้ "พิน" หมายถึงพินที่เราเชื่อมต่อสัญญาณแอนะล็อกในกรณีนี้ จะเป็น“ A0” ค่าจาก ADC สามารถนำมาเป็นจำนวนเต็มเป็น "int SENSORVALUE = analogRead (A0); ” โดยคำสั่งนี้ค่าหลังจาก ADC จะถูกเก็บไว้ในจำนวนเต็ม“ SENSORVALUE”
PWM ของ Arduino Uno สามารถทำได้ที่หมุดใด ๆ ที่มีสัญลักษณ์เป็น“ ~” บนบอร์ด PCB มีช่องสัญญาณ PWM หกช่องใน UNO เราจะใช้ PIN3 ตามวัตถุประสงค์ของเรา
analogWrite (3, VALUE); |
จากเงื่อนไขข้างต้นเราสามารถรับสัญญาณ PWM ได้โดยตรงที่พินที่เกี่ยวข้อง พารามิเตอร์แรกในวงเล็บใช้สำหรับเลือกหมายเลขพินของสัญญาณ PWM พารามิเตอร์ที่สองใช้สำหรับการเขียนอัตราส่วนหน้าที่
ค่า PWM ของ UNO สามารถเปลี่ยนแปลงได้จาก 0 ถึง 255 โดยให้“ 0” ต่ำสุดถึง“ 255” สูงสุด ด้วย 255 เป็นอัตราส่วนหน้าที่เราจะได้รับ 5V ที่ PIN3 หากกำหนดอัตราส่วนหน้าที่เป็น 125 เราจะได้รับ 2.5V ที่ PIN3
ตอนนี้เรามีค่า 0-1024 เป็นเอาต์พุต ADC และ 0-255 เป็นอัตราส่วนหน้าที่ PWM ดังนั้น ADC จึงมีค่าประมาณสี่เท่าของอัตราส่วน PWM ดังนั้นเมื่อหารผล ADC ด้วย 4 เราจะได้อัตราส่วนหน้าที่โดยประมาณ
ด้วยสิ่งนั้นเราจะมีสัญญาณ PWM ซึ่งอัตราส่วนหน้าที่เปลี่ยนไปตามน้ำหนักเชิงเส้น นี้ถูกมอบให้กับกริ่งเรามีกำเนิดเสียงขึ้นอยู่กับน้ำหนัก