สวัสดี ชาวเว็บไซต์ของเรา! เมื่อฉันแปลบทความเกี่ยวกับ นาฬิกาไม้เทียมหลอกผู้อ่านบางคนคิดว่า: เป็นไปได้หรือไม่ที่จะเปลี่ยนเซ็นเซอร์การสั่นสะเทือนที่จำเป็นในการสลับโหมดนาฬิกาเครื่องวัดอุณหภูมิและความชื้นด้วยเครื่องโฮมเมด แน่นอนว่าคุณทำได้และผู้เขียน Instructables ภายใต้ชื่อเล่น ArifSae จะบอกวิธี
ต้นแบบใช้สปริงจากลวดพันเป็นองค์ประกอบที่เคลื่อนไหวของเซ็นเซอร์ นอกจากทองแดงแล้วคุณยังสามารถใช้เหล็กสปริงได้เช่นจากปากกาหมึกซึมที่มีปุ่ม แต่มีความแข็งมากกว่าซึ่งจะส่งผลต่อพารามิเตอร์ของเซ็นเซอร์
เนื่องจากลวดพันเป็นเงามันจะต้องถูกถอดออก ในการทำเช่นนี้ ArifSae ใช้กระดาษทราย:
ไขลานลวดที่ดึงออกมา (โดยวิธีการที่นำมาจากเครื่องยนต์ของพัดลมคอมพิวเตอร์ที่แตก) ลงบนตะปู:
และมันรวบรวมสิ่งต่าง ๆ จากสปริงและตัวต้านทาน 220 โอห์มบนบอร์ดประเภท perfboard:
หากสปริงเป็นทองแดงเซ็นเซอร์ตรวจจับการสั่นสะเทือนจะต้องอยู่ในตำแหน่งแนวตั้งอย่างเคร่งครัดมิฉะนั้นสปริงจะเอียงและสัมผัสเอาต์พุตของตัวต้านทานแม้ว่าจะไม่มีการสั่นสะเทือนก็ตาม ด้วยสปริงเหล็กเซ็นเซอร์จึงสามารถทำงานได้ทุกตำแหน่ง
คุณสามารถระงับการเด้งของหน้าสัมผัสเซ็นเซอร์ได้ทั้งแบบโปรแกรมและฮาร์ดแวร์ โปรแกรมที่สองช่วยให้คุณลดความซับซ้อนของโปรแกรมในขณะที่วงจรไฟฟ้ามีความซับซ้อนเล็กน้อย หนึ่งในวงจรสำหรับการลดการเด้งกลับของฮาร์ดแวร์แสดงไว้ในรูปภาพ:
วงจรดังกล่าวยังเพิ่มความยาวของพัลส์ด้วยการสัมผัสที่สั้นมากของสปริงด้วยเอาต์พุตของตัวต้านทาน สิ่งนี้จะช่วยให้โปรแกรมตรวจจับไกแม้ว่ามันจะถูกเขียนโดยใช้ไลบรารีขนาดใหญ่และ“ ช้าลง” คุณจะไม่ต้องปีนเข้าไปในเฟิร์มแวร์ของนาฬิกาหลอกที่ทำจากไม้ดังกล่าวด้วยเซ็นเซอร์ที่สร้างขึ้นเองโหมดจะสลับเป็นวงแหวนในลักษณะเดียวกับที่ทำเสร็จ
ผู้พัฒนามีเซ็นเซอร์ความสั่นสะเทือนที่เชื่อมต่อกับอินพุตอะนาล็อก Arduinoซึ่งช่วยให้คุณอ่านสถานะด้วยทั้งคำสั่ง digitalRead และคำสั่ง analogRead ในกรณีที่สองคุณสามารถปิดตัวเก็บประจุจากนั้นจะไม่มีการปราบปรามการพูดพล่อยฮาร์ดแวร์และโปรแกรมจะสามารถประเมินความเข้มของการสั่นสะเทือน ด้านล่างนี้เป็นตัวอย่างร่างสองตัวอย่างของการใช้คำสั่งที่เหมาะสม คนแรก:
int sensor = A5; // ขาเซ็นเซอร์
int led = 13; // ค่าเริ่มต้นนำไปสู่ arduino
การตั้งค่าเป็นโมฆะ () {
pinMode (เซ็นเซอร์, อินพุต);
pinMode (LED, OUTPUT);
Serial.begin (9600);
}
void loop () {
int voltage = digitalRead (เซ็นเซอร์); // อ่านเซ็นเซอร์ที่นี่
อนุกรม. println (แรงดันไฟฟ้า); // พิมพ์แรงดันไฟฟ้าไปยังมอนิเตอร์แบบอนุกรมบนพีซี
ล่าช้า (1,000);
if (voltage & gt; = 1) {// หากหน้าสัมผัสสปริงสั่นสะเทือน
digitalWrite (LED, สูง); // เปิดใช้ led เพื่อแสดงว่ามีการสั่นสะเทือน
ความล่าช้า (2000);
digitalWrite (LED, LOW); // ปิดนำในตอนนี้
} // สิ้นสุดถ้าแรงดันไฟฟ้า
} // end loop
และอันที่สอง:
int sensor = A5;
int led = A0;
void loop () {
int sensorValue = analogRead (เซ็นเซอร์);
float voltage = sensorValue * (5.0 / 1023.0);
อนุกรม. println (แรงดันไฟฟ้า); ล่าช้า (200);
หาก (แรงดันไฟฟ้า & gt; = 0.5) {// ตั้งค่าความไวที่นี่เพิ่มแรงดัน 0.5 สำหรับความไวที่น้อยลงลดลงสำหรับความไวที่มากขึ้น
digitalWrite (LED, สูง);
ความล่าช้า (2000);
digitalWrite (LED, LOW); }
}
ข้อได้เปรียบของเซ็นเซอร์สั่นสะเทือนเหนือเซ็นเซอร์คือความสามารถในการสลับโหมดโดยไม่แตะที่จุดเฉพาะบนตัวเครื่อง แต่โดยการแตะที่ใดก็ได้ ในวิธีการอ่านที่สองปฏิกิริยาที่แตกต่างสามารถทำได้ขึ้นอยู่กับความเข้มของการแตะ ตัวอย่างเช่นในการสลับโหมดต่าง ๆ บนวงแหวนกลับด้าน: ด้วยการแตะที่ด้านหนึ่งอันอ่อนแรงและอีกอันหนึ่งที่แข็งแกร่ง