การเชื่อมต่อตัวต้านทานตรวจจับแรง (FSR) กับ Arduino Uno เป็นโครงการยอดนิยมในหมู่ผู้ที่ชื่นชอบอุปกรณ์อิเล็กทรอนิกส์และนักเล่นอดิเรก ตัวต้านทานตรวจจับแรงเป็นเซ็นเซอร์ที่เรียบง่ายแต่มีประสิทธิภาพซึ่งใช้ในการตรวจจับแรงกดดันหรือแรงทางกายภาพ โดยการวัดการเปลี่ยนแปลงของความต้านทานของ FSR เมื่อมีแรงกระทำ จะสามารถกำหนดปริมาณแรงที่กระทำได้ ด้วย Arduino Uno และ FSR คุณสามารถสร้างโครงการที่น่าสนใจต่างๆ ได้มากมาย เช่น เครื่องดนตรีที่ไวต่อแรงกระทำหรือจอแสดงผลแบบโต้ตอบที่ไวต่อการสัมผัส ในโครงการนี้ Arduino Uno จะถูกใช้เพื่ออ่านและตีความค่าความต้านทานจาก FSR เพื่อกำหนดปริมาณแรงกระทำ ซึ่งจากนั้นจะแสดงบนจอภาพแบบอนุกรม
ตัวต้านทานตรวจจับแรง (FSR) คือประเภทของเซ็นเซอร์แรงดันที่เปลี่ยนความต้านทานเมื่อมีแรงกดหรือแรงกระทำ ตัวต้านทานนี้ประกอบด้วยชั้นฟิล์มหนาของโพลิเมอร์ที่วางทับบนวัสดุพื้นผิวที่มีความยืดหยุ่น ซึ่งทับซ้อนด้วยชั้นตัวนำสองชั้นที่คั่นด้วยตัวคั่นบางๆ เมื่อมีแรงกดกระทำกับ FSR ชั้นโพลิเมอร์จะบีบอัดและทำให้ชั้นตัวนำทั้งสองสัมผัสกัน ทำให้ความต้านทานลดลง
คุณจะต้องมีฮาร์ดแวร์ต่อไปนี้เพื่อเชื่อมต่อตัวต้านทานการตรวจจับแรง FSR402 เข้ากับ Arduino
1. กำหนดพินอะนาล็อก A0 เป็นอินพุตเพื่อเชื่อมต่อเซ็นเซอร์แรง
#define FORCE_SENSOR_PIN A0 // the FSR and 10K pulldown are connected to A0
2. ตั้งค่าการสื่อสารแบบอนุกรมและเริ่มการสื่อสารแบบอนุกรมที่อัตราบอดเรท 9600
void setup() {
Serial.begin(9600);
}
3. ในลูป อ่านค่าแอนะล็อกจากเซ็นเซอร์แรงโดยใช้ฟังก์ชัน analogRead()
int analogReading = analogRead(FORCE_SENSOR_PIN);
4. พิมพ์ค่าการอ่านอะนาล็อกของเซ็นเซอร์แรงไปยังมอนิเตอร์แบบอนุกรมโดยใช้ฟังก์ชัน Serial.print()
Serial.print("Force sensor reading = ");
Serial.print(analogReading); // print the raw analog reading
5. ตรวจสอบค่าการอ่านอนาล็อกและพิมพ์ข้อความที่เกี่ยวข้องตามแรงที่ใช้ หากค่าการอ่านอนาล็อกน้อยกว่า 10 ให้พิมพ์ว่า “no pressure” หากอยู่ระหว่าง 10 ถึง 199 ให้พิมพ์ว่า “light touch” หากอยู่ระหว่าง 200 ถึง 499 ให้พิมพ์ว่า “light squeeze” หากอยู่ระหว่าง 500 ถึง 799 ให้พิมพ์ว่า “medium squeeze” หากมากกว่าหรือเท่ากับ 800 ให้พิมพ์ว่า “big squeeze”
if (analogReading < 10) // from 0 to 9
Serial.println(" -> no pressure");
else if (analogReading < 200) // from 10 to 199
Serial.println(" -> light touch");
else if (analogReading < 500) // from 200 to 499
Serial.println(" -> light squeeze");
else if (analogReading < 800) // from 500 to 799
Serial.println(" -> medium squeeze");
else // from 800 to 1023
Serial.println(" -> big squeeze");
6. เพิ่มการหน่วงเวลา 1,000 มิลลิวินาที เพื่อทำให้เอาต์พุตช้าลง
delay(1000);
ดำเนินการเชื่อมต่อตามแผนผังวงจรที่ระบุไว้ด้านล่าง
ขั้นแรก คุณต้องติดตั้งซอฟต์แวร์ Arduino IDE จากเว็บไซต์อย่างเป็นทางการ Arduinoนี่คือคำแนะนำทีละขั้นตอนง่ายๆ เกี่ยวกับ " วิธีติดตั้ง Arduino IDE "
ตอนนี้ให้คัดลอกโค้ดต่อไปนี้และอัปโหลดไปยังซอฟต์แวร์ Arduino IDE
#define FORCE_SENSOR_PIN A0 // the FSR and 10K pulldown are connected to A0
void setup() {
Serial.begin(9600);
}
void loop() {
int analogReading = analogRead(FORCE_SENSOR_PIN);
Serial.print("Force sensor reading = ");
Serial.print(analogReading); // print the raw analog reading
if (analogReading < 10) // from 0 to 9
Serial.println(" -> no pressure");
else if (analogReading < 200) // from 10 to 199
Serial.println(" -> light touch");
else if (analogReading < 500) // from 200 to 499
Serial.println(" -> light squeeze");
else if (analogReading < 800) // from 500 to 799
Serial.println(" -> medium squeeze");
else // from 800 to 1023
Serial.println(" -> big squeeze");
delay(1000);
}
โค้ดนี้จะอ่านและวิเคราะห์สัญญาณแอนะล็อกที่ได้รับจากตัวต้านทานตรวจจับแรง (FSR) ที่เชื่อมต่อกับ Arduino Uno โดย FSR เชื่อมต่อกับพินแอนะล็อก A0 ของ Arduino โดยมีตัวต้านทานแบบดึงลง 10K โอห์มแบบขนาน โปรแกรมจะอ่านสัญญาณแอนะล็อกและพิมพ์แรงที่กระทำต่อ FSR ตามช่วงของการอ่านค่าแอนะล็อก ฟังก์ชันการตั้งค่าจะเริ่มต้นการสื่อสารแบบอนุกรมระหว่าง Arduino และคอมพิวเตอร์
ฟังก์ชันลูปจะอ่านสัญญาณแอนะล็อกซ้ำๆ และกำหนดแรงที่สอดคล้องกับ FSR จากนั้นจะพิมพ์ค่าการอ่านแอนะล็อกแบบดิบและการวัดแรงในมอนิเตอร์แบบอนุกรมพร้อมข้อความ เช่น "ไม่มีแรงกด" "สัมผัสเบาๆ" "บีบเบาๆ" "บีบปานกลาง" หรือ "บีบแรงๆ" ฟังก์ชันหน่วงเวลาใช้เพื่อป้องกันการพิมพ์ผลลัพธ์อย่างรวดเร็วและให้เวลาเซ็นเซอร์ในการพักระหว่างการอ่านค่า
เราหวังว่าคุณจะพบว่าวงจรเซ็นเซอร์แรงนี้มีประโยชน์มาก