สารบัญ:

RGB Backlight + Audio Visualizer: 4 ขั้นตอน (พร้อมรูปภาพ)
RGB Backlight + Audio Visualizer: 4 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: RGB Backlight + Audio Visualizer: 4 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: RGB Backlight + Audio Visualizer: 4 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: Making an LED Strip Music Visualizer 2024, พฤศจิกายน
Anonim
แสงพื้นหลัง RGB + โปรแกรมสร้างภาพเสียง
แสงพื้นหลัง RGB + โปรแกรมสร้างภาพเสียง
แสงพื้นหลัง RGB + โปรแกรมสร้างภาพเสียง
แสงพื้นหลัง RGB + โปรแกรมสร้างภาพเสียง

ยินดีต้อนรับสู่คำแนะนำของฉันเกี่ยวกับวิธีสร้างไฟแบ็คไลท์ RGB LED สำหรับเช่น ด้านหลังทีวีหรือโต๊ะทำงานของคุณ

Schematic นั้นง่ายมากเนื่องจากแถบ LED WS2812 นั้นง่ายต่อการเชื่อมต่อกับ Arduino Nano

หมายเหตุ: คุณไม่จำเป็นต้องใช้วงจร MSGEQ7 Audio Analyzer เพิ่มเติม หากคุณต้องการเพียง LED Backlight ที่ไม่มีการแสดงภาพเสียง

ฉันได้ให้รายละเอียดรายการอะไหล่ที่ใช้แล้วและหาซื้อได้ที่ไหน:

  • Arduino นาโน/อูโน่ (Amazon / AliExpress)
  • WS2812 RGB LED Strip (Amazon/ AliExpress) โปรดทราบว่า IP ย่อมาจากการป้องกัน (เช่น กันน้ำได้หากต้องการ) และตัวเลขหมายถึงจำนวน LEDs ต่อเมตรที่แถบมี (สำคัญสำหรับแหล่งจ่ายไฟ)
  • แหล่งจ่ายไฟ 5V (Amazon) (ขึ้นอยู่กับจำนวนแถบ LED ที่มี) -> แต่ละ LED ใช้เวลา ~ 20mA แถบที่ใช้ในคำแนะนำนี้มี 45 LEDs (30 ต่อเมตร) ดังนั้นฉันต้องการ 45*20mA ~ 1, 5Ampere supply (Arduino, MSGEQ7 ก็ต้องการเช่นกัน) ฉันเชื่อมโยงแหล่งจ่ายไฟที่ให้ 3A ซึ่งเพียงพอสำหรับเราในตอนนี้
  • แจ็คเสียง 3.5 มม. (Amazon / AliExpress)
  • โพเทนชิออมิเตอร์ 10kOhm (Amazon / AliExpress)
  • ปุ่มกด (Amazon / AliExpress)
  • ตัวต้านทาน (1x 10kOhm, 1x 220Ohm สำหรับ MSGEQ7: 2x100kOhm)
  • ตัวเก็บประจุ (1x 1000yF Electrolytic (Amazon / AliExpress), 2x 10nF สำหรับ MSGEQ7: 2x 0.1yF, 1x33pF (Amazon / AliExpress)
  • ไดโอดแบบง่าย (Amazon / AliExpress)
  • แจ็ค DC (Amazon / AliExpress)

ขั้นตอนที่ 1: สร้างแผนผัง

สร้างแผนผัง
สร้างแผนผัง
สร้างแผนผัง
สร้างแผนผัง
สร้างแผนผัง
สร้างแผนผัง

แผนผังหลัก:

ดังนั้นการเชื่อมต่อกับ WS2812 Strip กับ Arduino นั้นค่อนข้างตรงไปตรงมาโดยใช้ไลบรารี Adafruit_NeoPixel

แถบ LED มี 3 พิน: VCC, DATA, GND VCC เชื่อมต่อกับ 5V, GND กับ Ground และ DATA Pin ตรงกลางเชื่อมต่อกับ LED_DATA Pin D6 บน Arduino ตอนนี้ LED ทุกตัวบน Strip มีชิป WS2812 ซึ่งรับข้อมูลที่ได้รับจาก Arduino และส่งผ่านไปยัง LED ถัดไป ดังนั้นเราจึงจำเป็นต้องป้อนข้อมูล Led เพียงครั้งเดียวไปยัง LED ตัวแรกบนแถบ

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

Schematic ที่แน่นอนสามารถพบได้ในสกรีนช็อตของไฟล์ fritzing ซึ่งมีให้ดาวน์โหลดเช่นกัน

โปรดทราบว่าการเชื่อมต่อ Arduino 5V Pin กับ Power Supply ผ่านไดโอดเป็นสิ่งสำคัญมาก เพื่อไม่ให้ Arduino เสียหายหากเราเสียบสาย USB เพื่อตั้งโปรแกรม 10nF และ 1000uF มีไว้เพื่อเหตุผลด้านความปลอดภัย เพื่อไม่ให้เกิดปัญหาการขาดแคลนพลังงาน

สำหรับวงจร MSGEQ7:

นี่คือวงจรที่ใช้กันทั่วไปในการเชื่อมต่อ MSGEQ7 กับ Arduino นี่คือจุดที่คุณต้องการแจ็คเสียง 3.5 มม. พินตรงกลางของแจ็คออดิโอส่วนใหญ่คือ GND พินทางด้านซ้าย/ขวาคือแชนเนลสเตอริโอที่เชื่อมต่อผ่านตัวเก็บประจุ 10nF กับ Signal In Pin ของ MSGEQ7 ตามที่แสดงในแผนผัง คุณสามารถเพิ่มโพเทนชิออมิเตอร์เพิ่มเติมให้กับ Signal In Pin เพื่อควบคุมความไวของสัญญาณเสียงได้ แต่ไม่จำเป็นจริงๆ MSGEQ7 เชื่อมต่อกับ Arduino ด้วยขา Analog Out ที่เชื่อมต่อกับ A1 (MSGEQ_OUT), Strobe Pin to D2 (STROBE), รีเซ็ต Pin เป็น D5 (RESET)

ขั้นตอนที่ 2: รหัส

รหัส
รหัส
รหัส
รหัส
รหัส
รหัส

ลิงก์ GitHub เพื่อเสร็จสิ้น Sketch:PhilKes/RGB_Audio_Backlight

หมายเหตุเกี่ยวกับรหัส:

ในรหัส เราประกาศวัตถุ WS2812 Strip ด้วยวัตถุ Adafruit_NeoPixel ใหม่ โดยส่งผ่านจำนวน Leds (เปลี่ยน NUM_LEDS สำหรับการตั้งค่าของคุณ) ขา Arduino ที่เชื่อมต่อกับพิน LED_DATA และประเภทการเข้ารหัส + ความเร็วของการส่งค่าสี

เมื่อเสร็จแล้วเราจะตั้งค่าความสว่างเริ่มต้นใน setup() ผ่าน setBrightness(0-255) และเปิด Strip ด้วย start() ตอนนี้เราสามารถตั้งค่า Pixel/LED แต่ละรายการให้เป็นสี RGB เฉพาะด้วย setPixel(LED, Color) เมื่อเราตั้งค่า LED ทั้งหมดเป็นค่าใหม่เสร็จแล้ว เราจะอัปเดตแถบด้วย strip.show() นั่นคือตรรกะของรหัสทั้งหมดที่เราจำเป็นต้องตั้งโปรแกรมแอนิเมชั่นที่เราต้องการ ตอนนี้เพื่อควบคุมแอนิเมชั่น/โหมดจริง ๆ เราจึงเพิ่มสวิตช์ปุ่มกด / แทคไทล์ไปยัง Arduino ดังนั้นเราจึงเชื่อมต่อปลายด้านหนึ่งของปุ่มกับ VCC และอีกด้านหนึ่งกับ Arduino Pin D3 และตัวต้านทาน 10kOhm กับ GND เราแนบการขัดจังหวะกับพินนี้ในการตั้งค่า () ซึ่งจะเรียกใช้เมธอด changeMode() ทุกครั้งที่เรากดปุ่ม ใน changeMode() เราสลับไปยังโหมดถัดไปอย่างง่าย และบอกให้แอนิเมชั่นปัจจุบันหยุดทำงาน เมื่อสิ่งนั้นเกิดขึ้น loop() จะถูกดำเนินการใหม่และจะเล่น Animation/Mode ใหม่

แอนิเมชั่นที่มีให้ ได้แก่: สีรุ้งจาง, แดง, เขียว, น้ำเงิน, ขาว, โหมดวิเคราะห์เพลง

นอกจากนี้ ฉันได้เพิ่มโพเทนชิโอมิเตอร์ 10kOhm เพื่อควบคุมความสว่างของสตริป วิธีการ checkBrightness() ตรวจสอบเอาต์พุตของโพเทนชิออมิเตอร์ที่เชื่อมต่อกับพิน A2 (พินกลางของโพเทนชิออมิเตอร์) และอัปเดตความสว่างของสตริปตามลำดับ

สำหรับโหมด musicAnalyzer() ผ่าน MSGEQ7:

โหมดนี้แสดงภาพสัญญาณเสียงที่เชื่อมต่อกับสัญญาณเข้าของ MSGEQ7 MSGEQ ส่งสัญญาณอะนาล็อกที่แสดงแถบเสียงเดียว (8 แบนด์จากความถี่ต่ำไปสูง) เมธอด musicAnalyzer() รับค่าปัจจุบันของย่านความถี่เสียงโดยรีเซ็ต MSGEQ จากนั้นจึงบัฟเฟอร์ค่าแอนะล็อกที่ให้มา แถบที่ส่งออกสามารถเปลี่ยนแปลงได้โดยการวางปีกสูงบน Strobe Pin หลังจากที่บัฟเฟอร์ทั้ง 8 แบนด์แล้ว วิธีการจะเปลี่ยนค่าพิกเซล LED ทั้งหมดหนึ่งค่าไปข้างหลังและคำนวณค่าใหม่สำหรับ LED 0 สีประกอบด้วย ความถี่ต่ำ (เบส) สีแดง สีความถี่กลาง สีเขียว และสีน้ำเงินความถี่สูง การเปลี่ยนค่าก่อนที่จะโหลดค่าใหม่จะทำให้แอนิเมชั่นหมดเวลาได้อย่างราบรื่น

ขั้นตอนที่ 3: ตั้งค่าเสียงบน PC

Image
Image

ในการรับเพลง/เสียงของคุณเข้าสู่ MSGEQ7 แต่ยังคงเล่นเพลงของคุณบนลำโพงของคุณ คุณต้องใช้คุณสมบัติ RealtekHD Stereomix หรือเชื่อมต่ออินพุตเสียง MSGEQ กับเช่น เอาต์พุตลำโพงด้านหลังของการ์ดเสียง/เมนบอร์ดของคุณ

ในการเปิดใช้งาน Stereomix ใน Win10 ให้คลิกขวาที่ไอคอนลำโพงที่ด้านล่างขวาและคลิก "เสียง" ที่นี่คุณสามารถเปิดใช้งาน Stereomix ในแท็บ "การบันทึก" (คลิกขวา -> เปิดใช้งาน) หากมองไม่เห็น Stereomix ให้คลิกขวาเลือก "แสดงอุปกรณ์ที่ปิดใช้งาน" ตอนนี้เปิดการตั้งค่าสำหรับ Stereomix แล้วบอกให้ฟังและคัดลอกเสียงของลำโพงหลักของคุณ

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

ตอนนี้เปิดใช้งานเอาต์พุตเสียงแบบขนานของลำโพงและ MSGEQ7 ของคุณ

ขั้นตอนที่ 4: บันทึกย่อ

เนื่องจากแผนผังไม่ซับซ้อนและมีขนาดไม่ใหญ่นัก ฉันจึงสามารถใส่วงจรทั้งหมดลงในกล่องเล็กๆ ที่มีรูสำหรับขั้วต่อ USB, แจ็คเสียง, แจ็ค DC, โพเทนชิออมิเตอร์ และปุ่มกด คุณสามารถใช้ส่วนหัวของหมุดตัวผู้/ตัวเมีย และเชื่อมต่อสายเคเบิล 3 เส้นเข้ากับ WS2812 Strip ผ่านสายจัมเปอร์

แนะนำ: