สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
โครงการฟิวชั่น 360 »
ไม่นานมานี้ ฉันได้สร้างสวิตช์โรตารี่ที่พิมพ์ 3 มิติเป็นส่วนใหญ่สำหรับโครงการแบบจำลอง Minivac 601 ของฉันโดยเฉพาะ สำหรับโครงการ Think-a-Tron 2020 ใหม่ของฉัน ฉันพบว่าตัวเองต้องการสวิตช์แบบหมุนอีกตัวหนึ่ง ฉันกำลังมองหาสวิตช์ยึดแผง SP5T ข้อกำหนดเพิ่มเติมคือฉันจะอ่านสวิตช์โดยใช้ Arduino ที่มีพิน I/O ที่จำกัด
ฉันรู้สึกประหลาดใจที่สวิตช์โรตารี่ SP5T มีราคาแพงเพียงใด PCB mount นั้นค่อนข้างถูก แต่เล็กเกินไปและไม่เหมาะกับความต้องการของฉัน สวิตช์ยึดแผงมีราคา $ 25+ สำหรับ Digi-Key และฉันจะต้องมีสองตัว ถ้าฉันเป็นเพื่อนที่อดทนฉันอาจจะซื้อจากต่างประเทศที่ถูกกว่ามาก ฉันสามารถใช้โพเทนชิออมิเตอร์ราคาไม่แพงร่วมกับอินพุตแบบอะนาล็อกเพื่อทำงาน แต่ฉันต้องการวิธีแก้ปัญหาด้วย "การกักขัง" ที่เหมาะสมจริงๆ ดังนั้น เมื่อสิ้นสุดวัน ฉันจึงตัดสินใจลองใช้วิธีการ DIY และหลังจากทำงานสองสามวัน ฉันก็ได้ออกแบบตามภาพด้านบน
สวิตช์ขนาดเส้นผ่านศูนย์กลาง 50 มม. แม้จะไม่ใช่สวิตช์ "ซื้อจากร้าน" แต่ก็สามารถใช้ได้ในหลายสถานการณ์รวมถึงของฉันด้วย เช่นเดียวกับโพเทนชิออมิเตอร์ คุณสามารถอ่าน "จุดหยุด" ที่แตกต่างกันห้าจุดด้วยพินแบบอะนาล็อกเพียงอันเดียว และดังที่เห็นด้านบนนี้ คือตัวยึดบนแผง
มาสร้างกัน
เสบียง
นอกจากชิ้นส่วนที่พิมพ์แล้ว คุณจะต้อง:
- ตัวต้านทาน 6 2K โอห์ม
- แม่เหล็กดิสก์ขนาดเล็กบางขนาดเส้นผ่านศูนย์กลาง 3 มม. และลึก 2 มม.
- ลวดทองแดงไม่มีฉนวน ยาว 7 มม. เส้นผ่านศูนย์กลาง 2 มม. (12 AWG)
- สายเชื่อมบาง. ของฉันมีฉนวนซิลิกอนอ่อน
ขั้นตอนที่ 1: พิมพ์ชิ้นส่วน
ทุกสิ่งที่คุณต้องการเพื่อให้สวิตช์โรตารีนี้มีภาพด้านบน สำหรับชิ้นส่วนที่พิมพ์ ฉันใช้การตั้งค่าต่อไปนี้ (เว้นแต่จะระบุไว้เป็นอย่างอื่น):
ความละเอียดการพิมพ์:.2 mm
เติม: 20%
เส้นใย: AMZ3D PLA
หมายเหตุ: ไม่รองรับ พิมพ์ชิ้นส่วนตามการวางแนวเริ่มต้น ในการสร้างสวิตช์โรตารี่ คุณจะต้องพิมพ์ส่วนต่อไปนี้:
- 1 - ฐานสวิตช์โรตารี่
- 1 - โรเตอร์สวิตช์โรตารี่
- 1 - ลูกสูบสวิตช์โรตารี่
- 1 - ปะเก็นสวิตช์โรตารี่
- 1 - ฐานสวิตช์โรตารี่
- 1 - ชุดสายไฟสวิตช์โรตารี่ (อุปกรณ์เสริม)
ขั้นตอนที่ 2: เตรียมฐาน
- ใส่แม่เหล็ก 6 ชิ้นลงในชิ้นฐาน ใช้กาวเล็กน้อยเพื่อยึดเข้าที่ ตรวจสอบให้แน่ใจว่าขั้วเหมือนกันสำหรับแม่เหล็กทั้ง 6 ตัว
- บัดกรีตัวต้านทานแบบอนุกรมตามภาพด้านบน แต่ละอันควรห่างกัน 15 มม. ฉันทำจิ๊กขนาดเล็กไว้สำหรับบัดกรี
- ใส่ตัวต้านทานลงในช่องฐาน ด้านหลัง "เสา" ที่ยึดแม่เหล็กไว้ ตัวต้านทานจะไปด้านหลังเสาโดยตรงในขณะที่ตะกั่วที่บัดกรีจะเข้าไปใน "ช่องว่าง"
-
เมื่อคุณพอใจที่ตัวต้านทานทั้งหมดอยู่ในตำแหน่งที่ถูกต้อง ให้กดลงไปที่ด้านล่างของช่อง จากนั้นยึดให้แน่นด้วยชิ้นส่วน "ปะเก็น"
ขั้นตอนที่ 3: เตรียมโรเตอร์
- ใส่แม่เหล็กเข้าไปในแต่ละรูหกรูที่ด้านข้างของโรเตอร์ หมายเหตุ: แม่เหล็กควรอยู่ในแนวเดียวกันเพื่อดึงดูดแม่เหล็กที่ตั้งอยู่ภายในฐาน ใช้กาวเล็กน้อยเพื่อยึดแม่เหล็กทั้งหมดให้เข้าที่
- ใส่แม่เหล็กสี่อันลงในรูที่ด้านหลังของ "ราง" ของโรเตอร์ตามภาพด้านบน
- กาวโรเตอร์ท็อปบนโรเตอร์เพื่อให้รางกลายเป็นอุโมงค์สี่เหลี่ยมเล็กๆ ฉันได้จัดแนวขอบแบนของด้ามกับขอบด้านซ้ายของรางแล้ว
ขั้นตอนที่ 4: เตรียม Piston
- ใส่แม่เหล็กสามอันลงในรูที่ "ด้านหลัง" ของลูกสูบ หมายเหตุ: แม่เหล็กเหล่านี้ควรอยู่ในแนวเดียวกันเพื่อขับไล่แม่เหล็กที่ติดอยู่ด้านในของโรเตอร์ที่ด้านหลังของราง ใช้กาวเล็กน้อยเพื่อยึดให้แน่น
- บัดกรีลวดทองแดงขนาดเส้นผ่านศูนย์กลาง 2 มม. ความยาว 7 มม. เข้ากับปลายลวดเชื่อมที่มีความยาวสั้น
- ดันลวดเชื่อมผ่านรูที่ด้านหน้าของลูกสูบ และกาวลวดทองแดงขนาด 7 มม. เข้ากับร่องที่ด้านหน้าของลูกสูบตามภาพด้านบน ระวังอย่าให้กาวติดที่ด้านหน้าของลวดทองแดง
ขั้นตอนที่ 5: ประกอบสวิตช์โรตารี
- เลื่อนลูกสูบเข้าไปในโรเตอร์โดยดันลวดผ่านช่องด้านล่างดังด้านบน แม่เหล็กควรดันลูกสูบไปทางด้านหน้าของโรเตอร์
- สอดลวดเข้าไปในรูที่ด้านล่างของฐาน ดันลูกสูบไปทางด้านหลังของรางโรเตอร์ แล้วเลื่อนชุดประกอบเข้าไปในฐาน
- นี่เป็นช่วงเวลาที่ดีในการทดสอบสวิตช์ โรเตอร์ควรหมุนได้อย่างอิสระและลูกสูบควรเลื่อนเข้าไปในช่องฐานเมื่อคุณหมุน คุณควรรู้สึกเมื่อลูกสูบล็อคเข้าในช่องใดช่องหนึ่ง และรู้สึกถึงแรงต้านเมื่อคุณพยายามบิดออกจากช่อง นั่นคือการดำเนินการกักขังที่ฉันพูดถึง
- เมื่อคุณพอใจว่าทุกอย่างทำงานได้ดี ให้ทากาวฐานบนลงบนฐานโดยระมัดระวังไม่ให้เคลือบโรเตอร์
ขั้นตอนที่ 6: ทดสอบสวิตช์โรตารี่
ฉันเชื่อมต่อสวิตช์โรตารี่กับ Arduino Nano และเขียนแบบร่างการทดสอบเล็กๆ เพื่อกำหนดค่าที่ส่งคืนจาก analogRead() ที่ตำแหน่งสวิตช์โรตารีแต่ละตำแหน่งจากห้าตำแหน่ง และได้ค่าต่อไปนี้: 233, 196, 159, 115, และ 68. ในภาพสเก็ตช์ต่อไปนี้ ฉันใช้ค่าเหล่านี้และตั้งค่าช่วง -10 ถึง +10 รอบ ๆ ค่าเหล่านี้เพื่อพิจารณาความกระวนกระวายใจในการอ่าน
#include "FastLED.h"
#define NUM_LEDS 35 #define LEDS_PIN 6 ไฟ LED CRGB[NUM_LEDS]; int A[35] = {0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1}; int B [35] = {1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0}; int C[35] = {0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0}; int T[35] = {1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}; int F[35] = {1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}; int a = 0; การตั้งค่าเป็นโมฆะ () { Serial.begin (115200); Serial.println ("ทดสอบเครือข่ายตัวต้านทาน"); โหมดพิน (A5, INPUT_PULLUP); FastLED.addLeds (ไฟ LED, NUM_LEDS); Serial.begin(115200); Serial.println ("5x7 LED Array"); FastLED.setBrightness(32); } int countA = 0; จำนวนเต็ม B = 0; จำนวนเต็มC = 0; จำนวนเต็มT = 0; จำนวนเต็มF = 0; วงเป็นโมฆะ () { a = analogRead (5); Serial.println(ก); ถ้า (a = 58) นับF++; ถ้า (a = 105) นับT++; ถ้า (a = 149) นับC++; ถ้า (a = 186) นับB++; ถ้า (a = 223) นับA++; ถ้า (countF > 10) {showLetter(F); นับA = 0; นับB = 0; นับC = 0; นับT = 0; countF = 0;} ถ้า (countT > 10) {showLetter(T); นับA = 0; นับB = 0; นับC = 0; นับT = 0; countF = 0;} ถ้า (countC > 10) {showLetter(C); นับA = 0; นับB = 0; นับC = 0; นับT = 0; countF = 0;} ถ้า (countB > 10) {showLetter(B); นับA = 0; นับB = 0; นับC = 0; นับT = 0; countF = 0;} ถ้า (countA > 10) {showLetter(A); นับA = 0; นับB = 0; นับC = 0; นับT = 0; countF = 0;} ล่าช้า(10); } โมฆะ showLetter (ตัวอักษร int ) { สำหรับ (int i = 0; i < NUM_LEDS; i++) { if (letter == 1) { leds = CRGB::White; } อื่น ๆ { leds = CRGB::Black; } } FastLED.show(); }
ผลการทดสอบนี้สามารถดูได้ด้านบน ฉันพิมพ์แผงขนาดเล็กเพื่อติดตั้งสวิตช์ นี่คือการใช้งานโดยนัยสำหรับ Rotary Switch เพื่อยอมรับคำตอบของผู้ใช้สำหรับคำถามแบบเลือกตอบ (A, B, C) หรือคำถาม True/False (T, F) จากนั้นฉันก็เชื่อมต่อจอแสดงผล NeoPixel ขนาด 5x7 ซึ่งเป็นส่วนหนึ่งของโครงการ Think-a-Tron 2020 ของฉันด้วย นี่คือการเชื่อมต่อทั้งหมดกับ Arduino:
- แสดงสายสีแดงไปที่ +5V
- แสดงสายสีเขียวไปที่ D6
- แสดงสายสีขาวไปที่ GND
- เปลี่ยนสายลูกสูบเป็น A5
- สลับสายตัวต้านทานไปที่ GND
นี่คือวิดีโอการทำงานของสวิตช์โรตารีและจอแสดงผล 5x7
ขั้นตอนที่ 7: ความคิดสุดท้าย
ฉันค่อนข้างพอใจกับสวิตช์โรตารี่ DIY ของฉัน มันใช้งานได้ดีและมี "ความรู้สึก" ที่ดีเมื่อคุณสลับไปมาระหว่างจุดแวะพัก
ไม่ใช่ทุกคนที่ต้องการใช้เวลาทำสวิตช์แบบโรตารี่ของตัวเอง และแน่นอนว่าจะมีความต้องการที่แตกต่างจากฉัน อย่างไรก็ตาม สำหรับคนอย่างฉันที่ทำงานซ้ำซากมากมาย เป็นเรื่องดีที่รู้ว่าด้วยความพยายามเพียงเล็กน้อย คุณก็จะได้สิ่งที่จำเป็นอย่างแท้จริงเพื่อให้งานสำเร็จลุล่วงได้โดยไม่ประนีประนอม