This is an old revision of the document!
Nume: Popescu Vlad Cristian Grupa: 336CA
Piesele au fost conectate astfel:
Senzor sunet:
Modul Micro SD Card:
Led strip WS2812B:
Pentru butoane am folosit pinii D7, D6, D5. Setul de boxe este conectat la alimentare prin USB si la montaj printr-un adaptor la GND si D9.
Implementare:
Pentru inceput, am definit cateva variabile global, cu scopul de configura pinii specifici pentru cele 3 butoane (play/pause, next, previous), pentru boxa si pentru banda LED WS2812B. De asemenea, am setat nivelul de “brightness” si am definit setul de culori folosite(disponibil in biblioteca utilizata). Totodata, am configurat pinii utilizati de catre modulul de Micro SD Card.
Pe parte de setup, initializez tipul de lumina si caracteristicile jocului de lumini prin functiile din FastLED.h (FastLED.addLeds(), FastLED.setBrightness() ). Apoi, pentru cele 3 butoane, atribui rezistentele de PullUp din cadrul placutei Arduino. Mai departe, cu functiile din TMRpcm intializez obiectul folosit pentru redarea sunetului (adica boxa), setez prima melodie care sa inceapa la pornirea placutei si volumul sunetului generat (evident, boxa are propriul sau buton de volum).
Functia ChangePalettePeriodically() are rolul de a modifica periodic culorile prezente pe banda in momentul difuzarii unei melodii prin boxa. In interior, se calculeaza o valoare in milisecunde si in functie de restul unei impartiri cu o valoare setata inainte se vor modifica culorile pe banda LED. Cateva dintre culorile (in combinatie) aflate in cod: makeLedsOff(), SetupPurpleAndGreenPalette(), SetupTotallyRandomPalette(), SetupBlackAndWhiteStripedPalette(), dar si functii predefinite in biblioteca: CloudColors_p, RainbowStripeColors_p etc.).
Functia song() are rolul de a lua contorul de apasari al butonului de next si de a folosi functia tmrpcm.play(song) pentru a reda prin boxa sunetul dorit. Contorul este folosit in loop() si se incrementeaza variabila prin care gestionam playlist-ul de pe SD card. La ultima melodie din lista se trece din nou la prima si se reia acelasi proces mai departe.
Pe parcursul implementarii am folosit protocoalele USART, pentru partea de debugging (in special prin afisare in Serial Monitor), SPI, care este utilizat in comunicarea modului de SD card cu Arduino, dar si I2C in realizarea culorilor si a benzii LED.
Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.