สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
พ่อของฉันคร่ำครวญอยู่เสมอว่ามันน่ารำคาญเพียงใดเมื่อโฆษณาดังกว่ารายการที่เกี่ยวข้องกันมาก เนื่องจากคำบ่นของเขากลายเป็นเรื่องน่ารำคาญมากกว่าโฆษณาจริงๆ ฉันจึงตัดสินใจสร้างแกดเจ็ตเล็กๆ ที่จะแก้ปัญหาทั้งสองได้พร้อมกัน Gizmo ที่ฉันสร้างขึ้นจะลดระดับเสียงของทีวีโดยอัตโนมัติเมื่อมีเสียงดังเกินไป และสามารถตั้งโปรแกรมให้ทำงานบนอุปกรณ์ใดก็ได้ที่ใช้รีโมทคอนโทรลแบบ IR
ขั้นตอนที่ 1: ส่วนประกอบและเครื่องมือ
เครื่องมือและวัสดุ
- หัวแร้ง
- ประสาน
- เขียงหั่นขนม
- ลวดเชื่อม
ส่วนประกอบ
- 1x 16x2 LCD หน้าจอ
- 1x Arduino Nano (ฉันใช้โคลนราคาถูกจาก Ebay)
- ปุ่มกดชั่วขณะ 3x12 มม.
- 1x Electret ไมโครโฟน ฝ่าวงล้อม สปาร์คฟัน. อดาฟรุต.
- 1x ทริมพอท
- 1x PN2222 ทรานซิสเตอร์
- 1x TSOP38238 IR ตัวรับ
- 1x IR LED
- ตัวต้านทาน 1x100 โอห์ม
- ตัวต้านทาน 1x220 โอห์ม
ขั้นตอนที่ 2: วางสาย
เนื่องจากฉันให้ของขวัญชิ้นนี้กับพ่อและต้องการให้มันดูสวยงาม ฉันจึงตัดสินใจทำ PCB อย่างมืออาชีพ ฉันใช้ Eagle เพื่อสร้างแผนผังและบอร์ด เขียงหั่นขนมของฉันดูค่อนข้างยุ่งเหยิง ดังนั้นฉันจะใช้แผนผังเพื่อเป็นแนวทางในกระบวนการเชื่อมต่อของคุณ นี่คือบทสรุปสั้น ๆ ของ pinout
- A0 ไปที่เอาต์พุตไมโครโฟน
- พิน 2 ไปที่ปุ่ม "โปรแกรม"
- พิน 3 ไปที่เกตทรานซิสเตอร์
- พิน 4 ไปที่เอาต์พุตตัวรับสัญญาณ IR
- พิน 5 ไปที่ปุ่ม "ลง"
- พิน 6 ไปที่ปุ่ม "ขึ้น"
- หมุด 7, 8, 9, 10, 11 และ 12 ไปที่ LCD
- ใส่ 3.3 โวลต์ผ่านไมโครโฟน
- ใส่ไฟ 5 โวลต์บนทรานซิสเตอร์/IR LED, โพเทนชิออมิเตอร์ และ LCD
ขั้นตอนที่ 3: วิธีใช้งาน
อันที่จริงส่วนการยกของหนักของโค้ดนั้น แท้จริงแล้วยืมมาจากสิ่งอื่นที่ฉันพบทางออนไลน์ ฉันใช้ไลบรารี IR เพื่อถอดรหัสสัญญาณของรีโมททีวีและส่งสัญญาณไปยังทีวีซ้ำ ฉันยังยืมโค้ดอีกส่วนมาเพื่อวัดแรงดันอ้างอิงของ ADC ของ Arduino ได้อย่างแม่นยำ เนื่องจากข้อผิดพลาดเพียงเล็กน้อยก็สามารถสร้างความแตกต่างอย่างมากในการอ่านค่าของไมโครโฟน อย่าถามฉันว่ามันทำงานอย่างไร เพราะมันอยู่เหนือฉัน ฉันเพิ่งรู้วิธีใช้งานผ่านการลองผิดลองถูก
โดยทั่วไป Arduino จะตรวจสอบสถานะของปุ่มสามปุ่มและระดับเสียงอย่างต่อเนื่อง หากกดปุ่มขึ้นหรือลงปุ่มใดปุ่มหนึ่ง เกณฑ์ระดับเสียงหรือระดับเสียงสูงสุดก่อนที่ระบบจะทำงานเพื่อลดระดับเสียงของทีวีจะเพิ่มขึ้นหรือลดลง การตั้งค่า IR Code ที่ส่งเมื่อเกินขีดจำกัด ให้กดปุ่ม Program แล้วตามด้วยปุ่ม Up เมื่อหน้าจอแจ้งให้คุณกดปุ่ม -Volume ให้เล็งรีโมททีวีไปที่ตัวรับสัญญาณ IR แล้วกดปุ่ม -Volume จนกว่าหน้าจอจะแสดงค่าเลขฐานสิบหกที่สอดคล้องกับคำสั่ง -Volume ของทีวี (ฉันเพิ่มว่าเป็นการตรวจสุขภาพจิต) บางครั้งต้องใช้ความพยายามสองสามครั้งเพื่อให้มันใช้งานได้ ฉันไม่แน่ใจว่าทำไม
หากวัดปริมาตรให้สูงกว่าเกณฑ์ Arduino จะส่งคำสั่ง -Volume คุณสามารถเปลี่ยน "ความยาวต่อเนื่อง" หรือจำนวนคำสั่ง -Volume ที่ส่งเมื่อเกินขีดจำกัด โดยกดปุ่มโปรแกรม จากนั้นกดปุ่มลง หน้าจอจะแสดงความยาวต่อเนื่องปัจจุบัน ซึ่งสามารถเปลี่ยนแปลงได้โดยใช้ปุ่มขึ้นและลง จากนั้นบันทึกโดยกดปุ่มโปรแกรมอีกครั้ง
ข้อมูลทั้งหมดนี้ถูกเก็บไว้ใน EEPROM เพื่อให้ระบบจดจำค่าที่ตั้งไว้ล่วงหน้าของคุณแม้ในขณะที่คุณถอดปลั๊ก
ในการทดสอบสติอีกครั้ง Arduino จะส่งคำสั่ง -Volume ทุกครั้งที่เริ่มทำงาน ด้วยวิธีนี้ คุณสามารถกดปุ่มรีเซ็ตของ Arduino เพื่อทดสอบว่าอุปกรณ์ทำงานหรือไม่
ขั้นตอนที่ 4: ทดสอบมัน
มันได้ผล!
ขั้นตอนที่ 5: รวมทุกอย่างเข้าด้วยกัน
เมื่อฉันยืนยันว่าใช้งานได้ ฉันสั่ง PCB แล้วบัดกรีทุกอย่างลงไป ฉันยังใช้เครื่องตัดเลเซอร์ของมหาวิทยาลัยเพื่อทำกล่อง MDF เล็กๆ ไว้ใส่ แต่นี่เป็นขั้นตอนพิเศษทั้งสองที่ไม่จำเป็นอย่างยิ่ง เมื่อทำสิ่งเหล่านี้เสร็จแล้ว โปรเจ็กต์ก็เสร็จสมบูรณ์! ฉันรวบรวมสิ่งนี้ไว้ด้วยกันในช่วงสัปดาห์สุดท้ายของการแข่งขัน และอาจละเลยรายละเอียดบางอย่าง ดังนั้นโปรดแจ้งให้เราทราบหากพลาดอะไรไป!
ขั้นตอนที่ 6: ข้อผิดพลาด
ฉันเพิ่มขั้นตอนพิเศษนี้เป็นภาคผนวก เนื่องจากนี่เป็นครั้งแรกที่ฉันใช้ Eagle และสร้าง PCB ฉันจึงเกิดข้อผิดพลาดสองสามข้อ
อย่างแรก: เนื่องจากฉันใช้โคลนของ Arduino Nano จริงๆ แล้ว PCB มีพินเพิ่มเติมสี่ตัวสำหรับคอนโทรลเลอร์ อย่างไรก็ตาม บอร์ดยังคงใช้งานได้ตราบเท่าที่คุณประสานคอนโทรลเลอร์กับพินที่ถูกต้อง
ประการที่สอง: โพเทนชิออมิเตอร์ที่มาพร้อมกับ LCD ไม่ตรงกับที่ฉันใช้ออกแบบบอร์ด คุณสามารถงอสายไฟเพื่อให้เข้าที่ได้ แต่จะดูไม่ดีหรือรู้สึกไม่ปลอดภัยหากใช้หม้อที่ถูกต้อง
นอกจากนี้ยังมีบางสิ่งที่ฉันจะทำแตกต่างออกไปในอนาคต อย่างแรก ถ้าฉันใช้ LCD ที่มีแสงพื้นหลัง ฉันจะเพิ่มวิธีตัดพลังงานให้กับ LCD หลังจากที่ไม่ได้อัปเดตหน้าจอมาระยะหนึ่งเพื่อประหยัดพลังงาน ประการที่สอง คุณอาจสามารถถอดหรือลดตัวต้านทาน 100 โอห์มที่ด้านหน้าของ IR LED เพื่อให้สว่างขึ้นได้ เนื่องจากไฟ LED เปิดอยู่ในช่วงเวลาสั้นๆ เท่านั้น จึงไม่อาจทำให้ไฟดับ อย่างไรก็ตาม ฉันยังไม่ได้ทดสอบสิ่งนี้ ฉันยังแนะนำให้ใช้ไมโครโฟนที่สามารถปรับเกนได้ ฉันใช้ไมโครโฟน Sparkfun และมันก็ไม่ได้ไวอย่างที่คิด
รางวัลที่สองในการประกวดการควบคุมระยะไกล 2017