- โมดูลเซ็นเซอร์การสั่นสะเทือน SW-420
- ส่วนประกอบที่จำเป็น
- แผนภาพวงจรเซ็นเซอร์การสั่นสะเทือน Arduino
- การเขียนโปรแกรม Arduino Uno Vibration Sensor
- การทดสอบวงจรเซ็นเซอร์การสั่นสะเทือน Arduino
มีเครื่องจักรที่สำคัญหลายอย่างหรืออุปกรณ์ราคาแพงที่ได้รับความเสียหายเนื่องจากการสั่นสะเทือน ในกรณีเช่นนี้จำเป็นต้องใช้เซ็นเซอร์ตรวจจับการสั่นสะเทือนเพื่อตรวจสอบว่าเครื่องจักรหรืออุปกรณ์เกิดการสั่นสะเทือนหรือไม่ การระบุวัตถุที่สั่นอย่างต่อเนื่องไม่ใช่เรื่องยุ่งยากหากใช้เซ็นเซอร์ที่เหมาะสมในการตรวจจับการสั่นสะเทือน เซ็นเซอร์สั่นสะเทือนมีหลายประเภทมีอยู่ในตลาดซึ่งสามารถตรวจจับการสั่นสะเทือนโดยการตรวจจับความเร่งหรือความเร็วและสามารถให้ผลลัพธ์ที่ยอดเยี่ยม อย่างไรก็ตามเซ็นเซอร์ดังกล่าวมีราคาแพงเกินไปสำหรับการใช้เครื่องวัดความเร่ง Accelerometer มีความไวมากและสามารถใช้ในการสร้างวงจรตรวจจับแผ่นดินไหวได้ แต่มีเซ็นเซอร์เฉพาะและราคาถูกเพียงไม่กี่ตัวที่สามารถตรวจจับการสั่นสะเทือนได้เท่านั้นเซ็นเซอร์ตรวจจับการสั่นสะเทือนหนึ่งตัวคือ SW-420 ซึ่งเราจะเชื่อมต่อกับ Arduino Uno
ดังนั้นในโครงการนี้โมดูลเซ็นเซอร์การสั่นสะเทือนพื้นฐานจะเชื่อมต่อกับ Arduino UNO ยอดนิยมและเมื่อใดก็ตามที่เซ็นเซอร์ตรวจจับการสั่นสะเทือนตรวจพบการสั่นสะเทือนหรือกระตุกไฟ LED จะเริ่มกะพริบ
โมดูลเซ็นเซอร์การสั่นสะเทือน SW-420
นี่คือโมดูลการสั่นสะเทือน SW-420ซึ่งสามารถทำงานได้ตั้งแต่ 3.3V ถึง 5V เซ็นเซอร์ใช้ตัวเปรียบเทียบ LM393 เพื่อตรวจจับการสั่นสะเทือนเหนือจุดเกณฑ์และให้ข้อมูลดิจิทัล Logic Low หรือ Logic High, 0 หรือ 1 ในระหว่างการทำงานปกติเซ็นเซอร์จะให้ Logic Low และเมื่อตรวจพบการสั่นสะเทือนเซ็นเซอร์จะให้ Logic High โมดูลมีอุปกรณ์ต่อพ่วงสามชุดไฟ LED สองดวงหนึ่งสำหรับสถานะพลังงานและอื่น ๆ สำหรับเอาต์พุตของเซ็นเซอร์ นอกจากนี้ยังมีโพเทนชิออมิเตอร์ซึ่งสามารถใช้เพิ่มเติมเพื่อควบคุมจุดเกณฑ์ของการสั่นสะเทือนได้ ในโครงการนี้เราจะใช้ 5V เพื่อจ่ายไฟให้กับโมดูล
เราใช้เซ็นเซอร์เดียวกันในระบบป้องกันการโจรกรรมโดยใช้ไมโครคอนโทรลเลอร์ ATmega8 นอกจากนี้ยังสามารถใช้เซ็นเซอร์ตรวจจับการเอียงเพื่อตรวจจับอุบัติเหตุกะทันหัน
ส่วนประกอบที่จำเป็น
- Arduino UNO
- SW-420 โมดูลเซ็นเซอร์การสั่นสะเทือน
- LED 5 มม. (สีใดก็ได้)
- สายจัมเปอร์ (สายเชื่อมต่อ)
- สาย USB สำหรับอัปโหลดโปรแกรม
แผนภาพวงจรเซ็นเซอร์การสั่นสะเทือน Arduino
แผนผังสำหรับการ เชื่อมต่อเซ็นเซอร์สั่นสะเทือนกับ Arduino uno มีดังต่อไปนี้
LED เชื่อมต่ออยู่ในขา D13 โมดูลนี้ใช้พลังงานจากขา 5V ที่มีอยู่ใน Arduino กราวด์และพิน 5V ใช้เพื่อเปิดเครื่อง Arduino ในขณะที่ใช้พิน A5 เพื่อรับข้อมูลจากเซ็นเซอร์การสั่นสะเทือน
วงจรนี้สร้างขึ้นโดยที่โมดูล SW-420 และ LED เชื่อมต่อกับ Arduino Uno
การเขียนโปรแกรม Arduino Uno Vibration Sensor
การเขียนโปรแกรม Arduino UNO กับอินเทอร์เฟซเซ็นเซอร์การสั่นสะเทือนไม่จำเป็นต้องใช้ความพยายามมากนักเนื่องจากควรตรวจสอบเฉพาะพินอินพุตเท่านั้นเพื่อให้ได้ข้อสรุป รหัสที่สมบูรณ์และวิดีโอการทำงานที่แนบมาในตอนท้าย
ในขั้นต้นไฟล์ส่วนหัวจะรวมอยู่ด้วย ส่วนหัวของ arduino รวมอยู่ด้วยเนื่องจากบทช่วยสอนนี้เขียนใน Eclipse IDE พร้อมส่วนขยาย Arduino ร่างนี้จะใช้กับ Arduino IDE ได้เช่นกันและในขณะที่ใช้ร่างนี้ใน Arduino IDE ไม่จำเป็นต้องรวมส่วนหัว
# รวม
ที่นี่มีการกำหนดมาโครสองรายการสำหรับเปิดและปิด
# กำหนดเปิด 1 # กำหนดปิด 0
ข้อความด้านล่างนี้ใช้สำหรับการรวม LED และเซ็นเซอร์การสั่นสะเทือน เซ็นเซอร์การสั่นสะเทือนเชื่อมต่อกับพิน A5 นอกจากนี้ยังใช้ LED ในตัวซึ่งเชื่อมต่อโดยตรงในบอร์ดกับพิน 13 LED 5 มม. เชื่อมต่อกับพิน 13
/ * * คำอธิบายพิน * / int Vibration_Sensor = A5; int LED = 13;
จะมีการประกาศจำนวนเต็มสองตัวที่เซ็นเซอร์แสดงเอาต์พุตและเอาต์พุตก่อนหน้านี้จะถูกเก็บไว้ซึ่งจะใช้ในการตรวจจับว่ามีการสั่นสะเทือนเกิดขึ้นหรือไม่
/ * * ผังรายการคำอธิบาย * / int present_condition = 0; int previous_condition = 0;
พินเดียวกันซึ่งถูกประกาศว่าเป็นการเชื่อมต่ออุปกรณ์ต่อพ่วงทิศทางของพินจะถูกกำหนดค่า ขาเซ็นเซอร์เป็นอินพุตและขา LED เป็นเอาต์พุต
/ * * การตั้งค่าโหมดพิน * / การตั้งค่าโมฆะ () { pinMode (Vibration_Sensor, INPUT); PinMode (LED, เอาท์พุท); }
ฟังก์ชันหนึ่งถูกเขียนให้กะพริบไฟ led สองครั้ง สามารถกำหนดค่าความล่าช้าได้โดยการไล่ค่าความล่าช้า
โมฆะ led_blink (โมฆะ) { digitalWrite (LED, ON); ล่าช้า (250); digitalWrite (LED, ปิด); ล่าช้า (250); digitalWrite (LED, เปิด); ล่าช้า (250); digitalWrite (LED, ปิด); ล่าช้า (250); }
ฟังก์ชั่นในวงที่สภาพปัจจุบันและก่อนหน้านี้มีการเปรียบเทียบหากทั้งสองจะไม่เหมือนกันที่ไฟ LED เริ่มกระพริบตาจนทั้งสองเหมือนกัน ในการเริ่มต้นตัวแปรทั้งสองจะมีค่า 0 และไฟ led ยังคงดับระหว่างการเริ่มโปรแกรม เมื่อมี virbraion ตัวแปร present_condition จะกลายเป็น 1 และทำให้เริ่มกะพริบ และอีกครั้งเมื่อการสั่นสะเทือนหยุดทั้ง vaiables กลายเป็น 0 และ LED หยุดกะพริบ
โมฆะลูป () { previous_condition = present_condition; present_condition = digitalRead (A5); // อ่านข้อมูลดิจิทัลจาก A5 Pin ของ Arduino ถ้า (previous_condition! = present_condition) { led_blink (); } else { digitalWrite (LED, OFF); } }
เสร็จสิ้นการเขียนโปรแกรม arduino UNO พร้อมเซ็นเซอร์การสั่นสะเทือน ขั้นตอนสุดท้ายคือการทดสอบการตั้งค่าทั้งหมด
การทดสอบวงจรเซ็นเซอร์การสั่นสะเทือน Arduino
วงจรไม่ต้องใช้เขียงหั่นขนมเพิ่มเติม สามารถทดสอบได้ง่ายๆโดยใช้ Arduino UNO Board ไฟ LED จะถูกตรวจสอบเมื่อเซ็นเซอร์สั่นสะเทือนถูกกระแทกหรือหากเปลี่ยนสถานะ ไฟ LED จะกะพริบเชื่อมต่อกับ Pin 13 ของ Arduino UNO เมื่อมีการสั่นสะเทือน หากเซ็นเซอร์การสั่นสะเทือนไม่ทำงานโปรดตรวจสอบการเชื่อมต่อและพลังงาน หลีกเลี่ยงการเชื่อมต่อระหว่างเซ็นเซอร์และไมโครคอนโทรลเลอร์หลวม ๆ
นี่คือวิธีที่เซ็นเซอร์สั่นสะเทือนสามารถเชื่อมต่อกับ Arduino UNO หากคุณมีข้อสงสัยหรือข้อเสนอแนะคุณสามารถติดต่อเราผ่านฟอรัมหรือคุณสามารถแสดงความคิดเห็นด้านล่าง