สารบัญ:
- เสบียง
- ขั้นตอนที่ 1: ทำความเข้าใจเกี่ยวกับประเภทของแถบ LED RGB
- ขั้นตอนที่ 2: ขยายสัญญาณเสียง
- ขั้นตอนที่ 3: การสลายตัวของสัญญาณเป็นผลรวมของไซนัสที่อยู่กับที่ - ทฤษฎี
วีดีโอ: โปรแกรมสร้างภาพเสียง RGB LED Strip ที่ไม่สามารถระบุที่อยู่ได้: 6 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:03
ฉันมีแถบ LED RGB 12v รอบตู้ทีวีมาระยะหนึ่งแล้ว และมันถูกควบคุมโดยไดรเวอร์ LED ที่น่าเบื่อ ซึ่งช่วยให้ฉันเลือกสีที่โปรแกรมไว้ล่วงหน้าได้หนึ่งสีจากทั้งหมด 16 สี!
ฉันฟังเพลงมากมายที่ทำให้ฉันมีแรงบันดาลใจแต่การจัดแสงไม่ได้ช่วยปรับอารมณ์ให้เหมาะสม ในการแก้ไขที่ตัดสินใจนำสัญญาณเสียงที่ส่งไปยังลำโพงของฉันผ่าน AUX (แจ็ค 3.5 มม.) ให้ประมวลผลและควบคุมแถบ RGB ตามลำดับ
ไฟ LED จะตอบสนองต่อเสียงเพลงตามขนาดของเสียงทุ้ม (ต่ำ) เสียงแหลม (กลาง) และความถี่สูง
ช่วงความถี่ – สีมีดังนี้:
ต่ำ – สีแดง
กลาง-เขียว
สูง – น้ำเงิน
โปรเจ็กต์นี้เกี่ยวข้องกับงาน DIY มากมายเพราะวงจรทั้งหมดถูกสร้างขึ้นตั้งแต่เริ่มต้น สิ่งนี้น่าจะค่อนข้างง่ายหากคุณตั้งค่าบนเขียงหั่นขนม แต่ค่อนข้างท้าทายที่จะบัดกรีบน PCB
เสบียง
(x1) แถบ LED RGB
(x1) Arduino Uno/Nano (แนะนำให้ใช้ Mega)
(x1) TL072 หรือ TL082 (TL081/TL071 ก็ใช้ได้เหมือนกัน)
(x3) TIP120 ทรานซิสเตอร์ NPN (TIP121, TIP122 หรือ N-Channel MOSFET เช่น IRF540, IRF 530 ก็ใช้ได้เช่นกัน)
(x1) 10kOhm โพเทนชิโอมิเตอร์เชิงเส้น
(x3) ตัวต้านทาน 100kOhm 1/4 วัตต์
(x1) 10uF ตัวเก็บประจุด้วยไฟฟ้า
(x1) ตัวเก็บประจุเซรามิก 47nF
(x2) ขั้วต่อสัญญาณเสียง 3.5 มม. – ตัวเมีย
(x2) แบตเตอรี่ 9V
(x2) ขั้วต่อสแน็ปแบตเตอรี่ 9V
ขั้นตอนที่ 1: ทำความเข้าใจเกี่ยวกับประเภทของแถบ LED RGB
แถบ LED มีพื้นฐานอยู่ 2 ชนิด ได้แก่ ชนิด "แอนะล็อก" และชนิด "ดิจิทัล"
แถบอะนาล็อก (รูปที่ 1) มีไฟ LED ทั้งหมดที่เชื่อมต่อแบบขนานและทำหน้าที่เหมือน LED สามสีขนาดใหญ่หนึ่งดวง คุณสามารถตั้งค่าแถบทั้งหมดให้เป็นสีใดก็ได้ที่คุณต้องการ แต่คุณไม่สามารถควบคุมสีของ LED แต่ละดวงได้ ใช้งานง่ายและราคาไม่แพงนัก
แถบประเภทดิจิทัล (รูปที่ 2) ทำงานในลักษณะที่ต่างออกไป พวกเขามีชิปสำหรับ LED แต่ละดวงเพื่อใช้แถบคุณต้องส่งข้อมูลที่เข้ารหัสแบบดิจิทัลไปยังชิป อย่างไรก็ตาม นี่หมายความว่าคุณสามารถควบคุม LED แต่ละดวงแยกกันได้! เนื่องจากชิปที่มีความซับซ้อนเป็นพิเศษจึงมีราคาแพงกว่า
หากคุณพบว่าเป็นการยากที่จะระบุความแตกต่างระหว่างแถบอนาล็อกและแถบดิจิตอล
- แบบอนาล็อกใช้ 4 พิน ขั้วบวกทั่วไป 1 ตัว และเนกาทีฟ 3 ตัว เช่น หนึ่งตัวสำหรับ RGB แต่ละสี
- ชนิดดิจิทัลใช้ 3 พิน บวก ข้อมูล และกราวด์
ฉันจะใช้แถบประเภทแอนะล็อกเพราะ
- มี Instructables น้อยหรือไม่มีเลยที่สอนวิธีสร้างแถบประเภทแอนะล็อกแบบโต้ตอบเพลง ส่วนใหญ่เน้นที่ประเภท Digital และง่ายต่อการตอบสนองต่อดนตรี
- ฉันมีแถบประเภทแอนะล็อกวางอยู่รอบๆ
ขั้นตอนที่ 2: ขยายสัญญาณเสียง
สัญญาณเสียงที่ส่งออกผ่านแจ็คเสียงคือ
สัญญาณแอนะล็อกที่แกว่งภายใน +200mV และ -200mV ปัญหาคือเราต้องการวัดสัญญาณเสียงด้วยอินพุตอนาล็อกตัวใดตัวหนึ่งของ Arduino เนื่องจากอินพุตแบบอะนาล็อกของ Arduino สามารถวัดแรงดันไฟฟ้าได้ระหว่าง 0 ถึง 5V เท่านั้น ถ้าเราพยายามวัดแรงดันลบในสัญญาณเสียงจาก Arduino จะอ่านได้เพียง 0V และเราจะจบลงที่ด้านล่างของสัญญาณ
เพื่อแก้ปัญหานี้ เราต้องขยายและชดเชยสัญญาณเสียงเพื่อให้อยู่ในช่วง 0-5V ตามหลักการแล้ว สัญญาณควรมีแอมพลิจูด 2.5V ซึ่งแกว่งประมาณ 2.5V เพื่อให้แรงดันไฟต่ำสุดเป็น 0V และแรงดันไฟสูงสุดคือ 5V
การขยายเสียง
แอมพลิฟายเออร์เป็นขั้นตอนแรกในวงจร โดยจะเพิ่มแอมพลิจูดของสัญญาณจากประมาณ + หรือ - 200mV เป็น + หรือ - 2.5V (ตามอุดมคติ) ฟังก์ชันอื่นของแอมพลิฟายเออร์คือการปกป้องแหล่งกำเนิดเสียง (สิ่งที่สร้างสัญญาณเสียงตั้งแต่แรก) จากส่วนที่เหลือของวงจร สัญญาณที่ขยายออกจะจ่ายกระแสทั้งหมดจากแอมพลิฟายเออร์ ดังนั้นโหลดใดๆ ที่ใส่ลงในวงจรในภายหลังจะไม่ "รู้สึก" โดยแหล่งกำเนิดเสียง (ในกรณีของฉัน โทรศัพท์/iPod/แล็ปท็อป) ทำได้โดยการตั้งค่าหนึ่งใน op-amps ในแพ็คเกจ TL072 หรือ TL082 (fig 2) ในการกำหนดค่าแอมพลิฟายเออร์ที่ไม่กลับด้าน
แผ่นข้อมูลของ TL072 หรือ TL082 บอกว่ามันควรจะขับเคลื่อนด้วย +15 และ -15V แต่เนื่องจากสัญญาณจะไม่ถูกขยายให้สูงกว่า + หรือ - 2.5V จึงสามารถเรียกใช้ op-amp ด้วยค่าที่ต่ำกว่าได้ ฉันใช้แบตเตอรี่เก้าโวลต์สองก้อนต่ออนุกรมเพื่อสร้างแหล่งจ่ายไฟ + หรือ - 9V
ต่อสาย +V (พิน 8) และ –V (พิน 4) เข้ากับ op-amp ต่อสัญญาณจากแจ็คโมโนเข้ากับอินพุตที่ไม่กลับด้าน (พิน 3) และเชื่อมต่อพินกราวด์ของแจ็คกับค่าอ้างอิง 0V บนแหล่งจ่ายแรงดันไฟฟ้าของคุณ (สำหรับฉันนี่คือจุดเชื่อมต่อระหว่างแบตเตอรี่ 9V สองก้อนในซีรีย์) ต่อตัวต้านทาน 100kOhm ระหว่างเอาต์พุต (พิน 1) และอินพุตกลับด้าน (พิน 2) ของ op-amp ในวงจรนี้ ฉันใช้โพเทนชิออมิเตอร์ 10kOhm ต่อสายเป็นตัวต้านทานแบบปรับค่าได้เพื่อปรับเกน (ปริมาณที่แอมพลิฟายเออร์ขยาย) ของแอมพลิฟายเออร์ที่ไม่กลับด้านของฉัน วางสายหม้อเรียวเชิงเส้น 10K นี้ระหว่างอินพุตกลับด้านและการอ้างอิง 0V
DC Offset
วงจร DC offset มีสององค์ประกอบหลัก: ตัวแบ่งแรงดันและตัวเก็บประจุ ตัวแบ่งแรงดันไฟฟ้าทำจากตัวต้านทาน 100k สองตัวต่อสายเป็นอนุกรมจากแหล่งจ่ายไฟ 5V ของ Arduino ไปยังกราวด์ เนื่องจากตัวต้านทานมีความต้านทานเท่ากัน แรงดันไฟฟ้าที่ทางแยกระหว่างพวกมันจะเท่ากับ 2.5V ชุมทาง 2.5V นี้เชื่อมโยงกับเอาต์พุตของแอมพลิฟายเออร์ผ่านตัวเก็บประจุ 10uF เนื่องจากแรงดันไฟฟ้าที่ด้านแอมพลิฟายเออร์ของตัวเก็บประจุเพิ่มขึ้นและลดลง จะทำให้ประจุสะสมและผลักออกจากด้านข้างของตัวเก็บประจุที่ต่อกับทางแยก 2.5V ชั่วขณะ ซึ่งทำให้แรงดันไฟฟ้าที่ทางแยก 2.5V แกว่งขึ้นและลง โดยมีศูนย์กลางอยู่ที่ 2.5V
ดังที่แสดงในแผนผัง ให้ต่อขั้วลบของตัวเก็บประจุ 10uF เข้ากับเอาต์พุตจากเครื่องขยายเสียง เชื่อมต่ออีกด้านหนึ่งของฝาปิดเข้ากับทางแยกระหว่างตัวต้านทาน 100k สองตัวที่มีสายแบบอนุกรมระหว่าง 5V กับกราวด์ เพิ่มตัวเก็บประจุ 47nF จาก 2.5V ลงกราวด์ด้วย
ขั้นตอนที่ 3: การสลายตัวของสัญญาณเป็นผลรวมของไซนัสที่อยู่กับที่ - ทฤษฎี
สัญญาณเสียงที่ส่งออกผ่านแจ็ค 3.5 มม. อยู่ในช่อง
ช่วง 20 Hz ถึง 20 kHz สุ่มตัวอย่างที่ 44.1 kHz และแต่ละตัวอย่างถูกเข้ารหัสแบบ 16 บิต
ในการแยกแยะความถี่องค์ประกอบพื้นฐานที่ประกอบเป็นสัญญาณเสียง เราใช้การแปลงฟูริเยร์กับสัญญาณ ซึ่งจะแยกสัญญาณให้เป็นผลรวมของไซนูซอยด์ที่อยู่กับที่ กล่าวอีกนัยหนึ่ง การวิเคราะห์ฟูริเยร์จะแปลงสัญญาณจากโดเมนเดิม (มักเป็นเวลาหรือช่องว่าง) เป็นการแทนค่าในโดเมนความถี่และในทางกลับกัน แต่การคำนวณโดยตรงจากคำจำกัดความมักจะช้าเกินไปที่จะนำไปใช้ได้จริง
ตัวเลขแสดงให้เห็นว่าสัญญาณมีลักษณะอย่างไรในโดเมนเวลาและความถี่
นี่คือจุดที่อัลกอริธึม Fast Fourier Transform (FFT) มีประโยชน์มาก!
ตามคำจำกัดความ
FFT คำนวณการเปลี่ยนแปลงดังกล่าวอย่างรวดเร็วโดยการแยกตัวประกอบเมทริกซ์ DFT เป็นผลคูณของปัจจัยกระจัดกระจาย (ส่วนใหญ่เป็นศูนย์) ด้วยเหตุนี้ มันจึงจัดการลดความซับซ้อนของการคำนวณ DFT จาก O(N2) ซึ่งจะเกิดขึ้นหากเราใช้คำจำกัดความของ DFT กับ O(N log N) โดยที่ N คือขนาดข้อมูล ความแตกต่างของความเร็วอาจมีขนาดมหึมา โดยเฉพาะอย่างยิ่งสำหรับชุดข้อมูลขนาดยาวที่ N อาจเป็นหลักพันหรือหลายล้าน เมื่อมีข้อผิดพลาดในการปัดเศษ อัลกอริธึม FFT จำนวนมากมีความแม่นยำมากกว่าการประเมินคำจำกัดความ DFT โดยตรงหรือโดยอ้อม
ในแง่ง่ายๆ ก็หมายความว่าอัลกอริทึม FFT เป็นวิธีที่เร็วกว่าในการคำนวณการแปลงฟูริเยร์ของสัญญาณใดๆ โดยทั่วไปจะใช้กับอุปกรณ์ที่มีกำลังประมวลผลต่ำ
แนะนำ:
RC ควบคุม Rgb Led Strip: 4 ขั้นตอน (พร้อมรูปภาพ)
แถบไฟ LED Rgb ที่ควบคุมด้วย RC: สร้างแถบไฟ LED ที่ควบคุมด้วย rc ของคุณเองสำหรับการส่องสว่างในห้องแต่ละห้อง! แถบไฟ LED rgb ส่วนใหญ่ถูกควบคุมโดยรีโมทคอนโทรลอินฟราเรด หากต้องการปิดหรือเปิดหรือเปลี่ยนสี คุณต้องอยู่ข้างหน้าเครื่องรับ มันน่าเบื่อและไม่ซ้ำ
RGB Led Strip Bluetooth Controller V3 + Music Sync + การควบคุมแสงโดยรอบ: 6 ขั้นตอน (พร้อมรูปภาพ)
RGB Led Strip Bluetooth Controller V3 + Music Sync + Ambient Light Control: โปรเจ็กต์นี้ใช้ Arduino เพื่อควบคุมแถบ LED RGB ด้วยโทรศัพท์ของคุณผ่านบลูทู ธ คุณสามารถเปลี่ยนสี ทำให้ไฟซิงค์กับเพลง หรือปรับให้แสงโดยรอบอัตโนมัติได้
DIY LED Strip: วิธีตัด เชื่อมต่อ บัดกรี และเปิดไฟ LED Strip: 3 ขั้นตอน (พร้อมรูปภาพ)
DIY LED Strip: How to Cut, Connect, Solder and Power LED Strip: คู่มือเริ่มต้นสำหรับการสร้างโครงการแสงของคุณเองโดยใช้แถบ LED แถบ LED ที่ยืดหยุ่นและใช้งานง่ายเป็นทางเลือกที่ดีที่สุดสำหรับการใช้งานที่หลากหลายฉันจะครอบคลุม พื้นฐานในการติดตั้งแถบ LED 60 LEDs/m ในร่มแบบเรียบง่าย แต่ใน
ESP8266 RGB LED STRIP WIFI ควบคุม - NODEMCU เป็นรีโมท IR สำหรับ Led Strip ที่ควบคุมผ่าน Wifi - RGB LED STRIP การควบคุมสมาร์ทโฟน: 4 ขั้นตอน
ESP8266 RGB LED STRIP WIFI ควบคุม | NODEMCU เป็นรีโมท IR สำหรับ Led Strip ที่ควบคุมผ่าน Wifi | การควบคุมสมาร์ทโฟน RGB LED STRIP: สวัสดีทุกคนในบทช่วยสอนนี้ เราจะเรียนรู้วิธีใช้ nodemcu หรือ esp8266 เป็นรีโมท IR เพื่อควบคุมแถบ LED RGB และ Nodemcu จะถูกควบคุมโดยสมาร์ทโฟนผ่าน wifi โดยพื้นฐานแล้ว คุณสามารถควบคุม RGB LED STRIP ได้ด้วยสมาร์ทโฟนของคุณ
วิธีสร้างเอฟเฟกต์ RGB LED Strip Circuit ที่น่าทึ่ง: 6 ขั้นตอน (พร้อมรูปภาพ)
วิธีสร้างวงจรไฟ LED Strip RGB ที่น่าตื่นตาตื่นใจ: สวัสดีเพื่อน ๆ วันนี้ฉันจะทำวงจรที่จะควบคุม LED Strip วงจรนี้จะให้เอฟเฟกต์ที่น่าทึ่งของ LED Strip วงจรนี้ง่ายและราคาถูกมากเราต้องการเพียง 3- RGB LED มาเริ่มกันเลย