Şerban-Bogdan COCHILEŢ (78265) - Sound reactive lights

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

Proiectul impleneteaza o “orga” de lumini pe 3 frecvente (bass, mid, treble), sunetul este preluat prin jack-ul audio de input analizat si separat in 3 frecvente, in functie de intensitatea acestora se vor aprinde 3 benzi de leduri.

Scopul acestui proiect este de a face iluminare ambientala a unei incinte mai dinamica astfel ar putea fi util ca un mod extra de iluminare in cazul unei instalatii pe led-uri.

Descriere generală

Schema bloc:

Sunetul este primit printr-un jack audio dupa care este filtrat de un circuit alcatuit din mai multe condensatoare si rezistente dupa care este pasat mai departe chipului msgeq7 care ajuta la separarea sunetului in cateva frecvente de baza, modul in care chipul face aceasta separare precum si outputul acestuia este comandat/citit de atmega324 care decide cu ce intensitate sa aprinda benzile de leduri.

Hardware Design

Lista de piese:

  • Audio Jack
  • Power Supply (12V, 2A)
  • MSGEQ7
  • 100nF capacitor
  • 10nF capacitor
  • 33pF capacitor
  • 200kΩ rezistor
  • 3x 5Ω resistor x3
  • 1kΩ resistor x3
  • TIP120 DARLINGTON TRANSISTOR x3
  • 1N4004 DIODE x3
  • 1K RESISTOR x3
  • 1UF CAPACITOR x3
  • protoboard

Schema electrica:

Software Design

Proiectul implementeaza o orga de lumini pe 3 canale / culori (rosu verde si albastru), cu ajutorul unui chip(msgeq7) care filtreaza inputul audio si il separa in mai multe frecvente, intesitatea acestor frecvente sunt transmise la leduri care sunt aprinse folosind pwm.

Avem 3 functii de initializare.

initTimers

  • seteaza timer1, timer2, timer3 in pwm, modul ctc.
  • am folosit ps = 1 pentru o mai buna precizie.
  • registrele OCRnA au valoarea 255 iar OCRnB se modifica in functie de frecventele citite.
  • intreruperile de timere aprind sau sting ledurile.

initAdc

  • seteaza ADC pentru a putea citi de pe pinul PA7

initPins

  • seteaza ceilalti pini(input audio, output leduri, reset, strobe)

Dupa cele 3 initializari si activarea intreruperilor, urmeaza o bucla de while. In aceasta bucla se vor citi analog valorile primite de la chipul msgeq7 pe fiecare canal, filtrarea lor si actualizarea registrilor OCRnB in functie de valorile citite.

Rezultate Obţinute

Download

Bibliografie/Resurse

pm/prj2018/rmatei/69.txt · Last modified: 2021/04/14 17:07 (external edit)
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0