กลับไปหน้ารวมไฟล์
raise-the-volume-with-remote-controller-9b9678.md

เกี่ยวกับโปรเจคนี้

เป้าหมายของโปรเจคนี้คือการลดเสียงวิทยุผ่านรีโมทคอนโทรลด้วย Arduino และแสดงค่าบนจอ LCD โปรเจค "Remote-Vol" นี้เป็นการสำรวจที่มีประโยชน์สุดๆ เกี่ยวกับ การวิเคราะห์สัญญาณอินฟราเรด และ การปรับปรุงฮาร์ดแวร์รุ่นเก่า มันไม่ต้องไปยุ่งกับวงจรภายในเลย แค่ใช้สะพานเมคคาทรอนิกส์ภายนอก ก็ทำให้วิทยุอนาล็อกมีระบบควบคุมเสียงไร้สายได้แล้ววว

ถ้าน้องกดปุ่มบนรีโมท Arduino สัญญาณจะถูกเซนเซอร์ IR รับเข้ามา แล้ว Arduino Uno จะเป็นคนประมวลผลต่อ เมื่อกดค้างปุ่ม vol+ หรือ vol- ไว้ Arduino จะสั่งให้เซอร์โวหมุนตามเข็มหรือทวนเข็ม ซึ่งจะไปหมุนปุ่มปรับเสียงของวิทยุน้องเอง ส่วนจอ LCD จะแสดงเปอร์เซ็นต์เสียง และถ้าเสียงเกิน 80% มันจะขึ้นว่า "too high!" (ดังเกินไปแล้วเว้ย!)

กล่องนี้ทำมาให้กับวิทยุของพี่โดยเฉพาะ ดูรูปเลย

ลงลึกเรื่องเทคนิค

  • การถอดรหัสพัลส์อินฟราเรดแบบละเอียด:
    • ระบุโปรโตคอล: ระบบใช้ตัวรับสัญญาณรุ่น TSOP มาถอดรหัสพัลส์อินฟราเรด เฟิร์มแวร์ใช้ไลบรารี่ IRremote เพื่อถอดรหัสโปรโตคอลมาตรฐาน (เช่น NEC, Sony, RC5) ปุ่มแต่ละปุ่มบนรีโมทจะส่งรหัสเลขฐานสิบหก (hex) ที่ไม่ซ้ำกันมา ซึ่งรหัสนี้แหละที่ใช้เป็นตัวสั่งงาน
    • ความแม่นยำของสัญญาณ: เพื่อป้องกัน "การกดหลอน" จากแสงรอบข้างหรือรีโมทตัวอื่น โค้ดของพี่มีระบบตรวจสอบสัญญาณ แค่รหัส hex จากรีโมทเป้าหมายเท่านั้นที่ระบบจะรับรู้
  • การเชื่อมต่อกลไกและจลนศาสตร์:
    • สะพานเชื่อมระหว่างปุ่มกับเซอร์โว: การจะหมุนปุ่มวิทยุที่แข็งๆ ได้ต้องใช้แรงบิดสูงและต้องจัดแนวแกนให้แม่น ระบบนี้ใช้ เซอร์โวไมโคร SG90 คู่กับชิ้นส่วนเชื่อมต่อที่ออกแบบเอง
    • การแปลงค่ามุม: ซอฟต์แวร์จะแปลงคำสั่ง VOL+ และ VOL- จากรีโมทให้เป็นการหมุนเซอร์โวทีละนิด (เช่น ทีละ 5 องศา) ทำให้เราควบคุมโพเทนชิออมิเตอร์ของวิทยุได้ละเอียดขึ้น โดยไม่ทำให้เซอร์โวทำงานหนักเกินไป
  • การแสดงผลและระบบป้องกัน:
    • การคำนวณเปอร์เซ็นต์เสียง: ระดับเสียงจะแสดงเป็นเปอร์เซ็นต์ (0-100%) คำนวณมาจากมุมปัจจุบันของเซอร์โว
    • ป้องกันเสียงแตก: เพื่อปกป้องฮาร์ดแวร์และหูของน้อง ระบบมี "เพดานเสียง" ตั้งไว้ที่ 80% ในซอฟต์แวร์ ถ้าน้องปรับเสียงเกินขีดนี้ จอ LCD จะขึ้นคำเตือน "TOO HIGH!" เป็นเหมือนระบบล็อคความปลอดภัยแบบเห็นภาพเลย ระวังหูแตกนะตัวนี้!

วงจร

Arduino ตรวจสอบเซอร์โวมอเตอร์ผ่านขา 11, ตัวรับสัญญาณอินฟราเรด (IR Receiver) ผ่านขา 10 และจอแสดงผล LCD ผ่านขาตั้งแต่ 2 ถึง 7 ทุกชิ้นส่วนต้องการไฟ 5V ยกเว้นขาที่ 15 ของจอแสดงผล ที่ใช้ไฟสูงสุด 4.2V และต้องใช้ตัวต้านทาน (Resistor) มาช่วย ขา v0 (หมายเลข 3) ของจอแสดงผลต่อเข้ากับโพเทนชิออมิเตอร์ (Potentiometer) สำหรับปรับความสว่างของหน้าจอ วงจรต่อไปนี้สร้างขึ้นใน Tinkercad

ขาของจอแสดงผล LCD ต่อกับ Arduino ตามที่กำหนดไว้ในโค้ด

Circuit schematic

วิศวกรรมและการนำไปใช้

  • การปรับแต่งวงจรให้เหมาะสม:
    • จอ LCD ขนาด 16x2 ถูกเชื่อมต่อผ่านอินเทอร์เฟซแบบขนาน 5 สาย ต้องให้ความสำคัญกับขาแบ็คไลท์ (Pin 15) ซึ่งใช้ตัวต้านทาน 1k-ohm เพื่อให้แน่ใจว่าการกินกระแสยังอยู่ในขอบเขตที่เรกูเลเตอร์ 5V ของ Uno จะรับไหว ในขณะที่กำลังขับเซอร์โวมอเตอร์ไปพร้อมกัน
  • การแก้ปัญหาและการปรับเทียบ:
    • โหนดปรับคอนทราสต์: ใช้โพเทนชิออมิเตอร์ 10k ในการปรับเทียบแรงดันออฟเซ็ตของคริสตัลเหลว (V0) ของ LCD เพื่อให้มั่นใจว่าข้อมูลระดับเสียงยังมองเห็นได้ชัดเจนภายใต้สภาพแสงแวดล้อมต่างๆ
    • การปรับตำแหน่งศูนย์: เฟิร์มแวร์มีรูทีนสำหรับปรับเทียบที่ตั้งเซอร์โวมอเตอร์ให้อยู่ตรงกลางระหว่างการเริ่มต้นระบบ จัดให้มันตรงกับตำแหน่ง "ปิดเสียง (Mute)" ของสเตอริโอ เพื่อความแม่นยำที่ทำซ้ำได้

สรุป

โปรเจกต์นี้แสดงให้เห็นถึงพลังของ การออกแบบแมคคาทรอนิกส์แบบไม่บุกรุก ด้วยการเชี่ยวชาญ การวิเคราะห์โปรโตคอลอินฟราเรด และ การแปลงมุมไปเป็นระดับเสียง นักพัฒนาสามารถนำความสะดวกสบายแบบไร้สายสมัยใหม่ มาสู่ระบบเสียงคลาสสิกสุดเท่ โดยไม่ต้องไปแตะต้องหรือทำลายความดั้งเดิมของระบบอนาล็อกเลย


Kinetic Audio: ควบคุมโลกอนาล็อกด้วยการวิเคราะห์ข้อมูลดิจิทัล

ข้อมูล Frontmatter ดั้งเดิม

apps:
  - "1x Arduino IDE"
author: "Gabriele00111"
category: "Home & Automation"
components:
  - "1x Infrared Receiver, Remote Control"
  - "1x Breadboard (generic)"
  - "1x Jumper wires (generic)"
  - "1x RGB LCD Shield Kit, 16x2 Character Display"
  - "1x SG90 Micro-servo motor"
  - "1x Resistor 1k ohm"
  - "1x Arduino UNO"
description: "ใช้รีโมตคอนโทรลเลอร์ปรับระดับเสียงวิทยุได้แบบชิลๆ งานง่ายแต่หล่อ ใช้แค่ Arduino กับ Infrared Receiver Module ก็เทพแล้ว!"
difficulty: "Intermediate"
documentationLinks: []
downloadableFiles:
  - "https://projects.arduinocontent.cc/b7d43eb4-4daf-4dee-9501-8a344b029721.ino"
  - "https://projects.arduinocontent.cc/b7d43eb4-4daf-4dee-9501-8a344b029721.ino"
encryptedPayload: "U2FsdGVkX19nzCUdeFt0XIZuQvKe0oWWd3x50669GlUSxdjcYNgd3EnKtcEeF0P7z3/pMTwbZPWTTmwAu79kssACBvaKtt4pVF2CNBBRecI="
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/raise-the-volume-with-remote-controller-9b9678_cover.jpg"
lang: "en"
likes: 1
passwordHash: "6f678ed6e45f2af744d1b82bb4c38f292bd5592ace3717c421c713b42714c59b"
price: 699
seoDescription: "Learn how to adjust Radio Volume using a Remote Controller in this simple Arduino project guide."
tags:
  - "audio"
  - "remote controller"
  - "vallauri"
title: "Raise the Volume with Remote Controller"
tools: []
videoLinks:
  - "https://player.vimeo.com/video/340849218"
views: 9647