Iluminare Interioara cu Banda LED

Ionel Patrascu - 331AC

Introducere

Prin acest proiect imi propun sa realizez mecanismul de control al unei Benzi LED. Acesta va funcționa in 4 scenarii predefinite (oprit, pornit, breath, music). Controlul intensitatii si culorii acesteia se va face din potentiometre(3 pentru culoare pentru culoare - Red, Green, Blue). Modul va putea fi schimbat printr-un buton. Senzorul de sunet este folosit doar cand folosim modul (music). Acesta va prelua sunetul din mediul exterior si va controla banda astfel incat aceasta sa se aprinda dupa muzica.

Descriere generală

Schema Bloc a dispozitivului

Proiectul va folosi 3 potentiometrii pentru ca utilizatorul sa poată stabili nivelul fiecărei dintre culorile din spațiul RGB. Pe langa potentiometrii, mai folosim și un senzor de sunet cu amplificare și un buton standard. Butonul este folosit pentru schimbarea modului iar senzorul de sunet este folosit pentru a controla banda după muzica ambientala. Datele primite de la componente vor fi procesate și în culoarea benzii este stabilita și trimisa către aceasta în timp real.

Hardware Design

Lista Piese

Plusivo Arduino UNO R3 - Arduino Uno R3 este o placă de dezvoltare bazată pe microcontrollerul ATmega328.

Aceasta plăcuta de dezvoltare poate sta la baza multor proiecte de electronica. In combinatie cu alte device-uri, cum ar fi senzori si shield de ethernet sau bluetooth, puteti concepe montaje inovative ce va pot automatiza casa.

Are 14 pini de intrare/ieșire (dintre care 6 pot fi folosiți ca ieșiri PWM), 6 intrări analog, un oscilator de 16MHz, o conexiune USB, mufă de alimentare, și un buton de reset.

Poate fi alimentat direct de la calculator, de la portul USB, prin intermediul unei baterii de 9V sau a unui alimentator de 9V.


Microfon Electret cu Amplificator MAX9814 cu Auto Gain Control - Modulul Microfon cu Amplificator MAX9814 vine cu un microfon electret de 20 - 20kHz integrat. Pentru amplificare se folosește Maxim MAX9814, un chip special făcut pentru amplificarea microfoanelor electret in situațiile in care intensitatea sunetului este neprevazută.

Microfonul este un un pas înaintea celorlalte, având un modul automat de control. AGC in amplificator înseamnă ca sunetele înalte vor fi reduse pentru a nu copleși chipul, dar si sunetele îndepărtate vor fi amplificate. Acest amplificator este minunat pentru a înregistra sau detecta sunete audio într-un mediu în care intensitatea sunetului se poate schimba brusc.

Inima modulului este MAX9814, având cateva opțiuni configurabile. În modul implicit acesta ofera 60dB, dar poate fi setat la 40dB sau 50dB, prin mutarea jumperului de la pinul Gain la VCC sau la GND. Deasemenea poate fi schimbata rata de Attack/Release de la implicit 1:4000 la 1:2000 sau 1:500.


Leduri RGB la banda Neopixels WS2812B - Aceste sisteme de leduri au aparut relativ recent pe piața si nu sunt leduri simple. Fiecare circuit este compus din patru bucati de siliciu: trei leduri de culori diferite (RGB) si un circuit de control si limitare a curentului.

În cadrul proiectului meu am folosit o banda având 12 astfel de led-uri.

Tensiune de alimentare: 5V

Consum individual: 0.3W

In cazul unei benzi mai lungi se recomanda si un condensator de >= 1000 uF in paralel cu alimentarea.


Potentiometru axial (x3) - Un potențiometru este o componentă electronică similară cu rezistențe sau rezistențe convenționale, dar cu o valoare variabilă.

Acest lucru face posibilă controlul intensității curentului care trece printr-un circuit la care este conectat în paralel sau controlul căderii de tensiune în cazul conectării în serie.

Potențiometrul este similar cu cel reostat, cu diferența că cel reostat disipează mai multă putere și este utilizat în circuitele de curent mai mare.


Componente aditionale

  • Breadboard
  • Fire
  • Resitente

Schema Electrica

Software Design

Pentru etapa de dezvoltare software, am folosit Arduino IDE singura librărie 3rd-party folosită a fost libraria NeoPixel de la Adafruit. Am folosit aceasta librarie pentru un control mai facil al benzii cu led-uri.

Codul este organizat sub forma unui FSM (Finite-state machine) cu 4 stări pe baza schemei de mai jos. Implementarea este făcută folosind case în loop. Trecerea dintr-o stare în alta, se face folosind un sistem de întreruperi configurat sa comute starea (n.r. la starea următoare) în momentul în care butonul Mode este apăsat.

Programul pornește din starea 0. Pentru a se face trecerea din starea curenta în starea următoare, este necesară apăsarea butonului Mode. În cadrul schemei, aceste legături sunt marcate cu albastru.

Atâta timp cât nu este perturbat extern, programul va continua sa execute starea în care se afla la acel moment(legăturile negre).

Din punct de vedere software, sunt foarte putine lucruri non-standard(în afara de analogRead, analogWrite, etc) implementate. Printre acestea putem numără:

  • Folosire funcției map pentru a face “traducerea” din valorile reale date de potentiometru (0-1024) în valori potrivite pentru banda led(0-255). Un exemplu ar fi bucata următoare, extrasa din funcția mmap1: byte map1=map(sensorvalue, 0, 1023, 255, 0);
  • Folosirea functiei attachInterrupt pentru configurarea sistemului de întreruperi: attachInterrupt(digitalPinToInterrupt(BUTTON_PIN), myISR, FALLING);
  • Folosirea functiilor din librăria Adafruit_NeoPixel.h pentru controlul benzii de led-uri: pixels.setPixelColor(i, pixels.Color(redColor,greenColor,blueColor));

Rezultate Obţinute

Am reușit o implementare completa a proiectului pe care mi l-am propus și am reușit să-i implementez toate funcționalitățile.

După o analiza mai atenta, am observat ca ar fi nevoie de debouncing pe button, consider acest aspect pentru următoarea versiune de implementare.

Mai jos câteva imagini cu produsul final, împreună cu “suportul de transport”. 8-)

Galerie Foto

Concluzii

Cred ca unele dintre cele mai importante concluzii ar fi:

  • Nu arde singurul driver (FIXME) pe care îl ai cu o seara înainte de prezentare ca va fi o noapte lunga.
  • Piesele hardware sunt ceva mai greu de obținut (comparat cu timpul pentru implementarea software).

Acesta a fost primul meu proiect de acest gen și pot spune ca a fost interesant și mi-a plăcut foarte mult.

Cea mai buna parte a fost faptul ca am îmbinat software cu hardware și o finalitate(in real life).

Pe langa asta, am aprofundat materia predata la laborator, ceea ce-mi aduce un plus. LOL

Download

Bibliografie/Resurse

Resurse Hardware

Resurse Software

pm/prj2022/cstan/120.txt · Last modified: 2022/05/26 15:48 by ionel.patrascu3101
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