Karaoke Play

Introducere

Proiectul consta intr-un mini karaoke in care se vor afisa versurile intr-un ecran LCD si melodii cu ajutorul unui buzzer. Va exista si un buton de play/stop.

Descriere generală

Initial, se apasa butonul de play. In acest moment se porneste LCD si incep notele muzicale. Notele si versurile sunt sincronizate in asa fel incat fiecare nota muzicala ii apartine unei parte din versuri.

Schema block:

Hardware design

Lista de componente:

  1. Arduino Uno
  2. Breadboard
  3. Piezo buzzer
  4. LCD 16×2
  5. Rezistente
  6. Buton

Schema electrica:

Software design

Pentru implementarea LCD-ului am inclus biblioteca LiquidCrystal_I2C. In acest caz, nu mai avem nevoie de multe fire cum am fi avut in cazul unui LCD normal. Astfel, am atasat un adaptor I2C pe LCD-ul 16×2. El va functioneaza ca un intermediar intre LCD si Arduino. Inainte de implementare, trebuie sa stim adresa LCD-ului I2C. Fiecare dispozitiv care poate fi atasat in Arduino are o adresa. Pentru a afla adresa, am folosit un cod I2C Scanner. Acest cod scaneaza magistrala I2C pentru dispozitive. Daca este gasit un dispozitiv, acesta este raportat monitorului serial Arduino. Adresa adaptorului este 0x27. Folosim aceasta adresa pentru initializarea lcd-ului: LiquidCrystal_I2C lcd(0x27, 16, 2); Deoarece ne dorim ca fiecare nota muzicala sa fie sincronizata cu fiecare vers, am folosit functia tone. Fiecare nota folosita in functiile urmatoare este declarata ca un vector la inceputul fisierului. Butonul va avea rolul de a schimba piesele/functiile. Pentru acesta am folosit conceptul de intreruperi externe din laborator. Butonul este input in pinul 2 care ii corespunde intreruperii externe INT0. In functia de setup apelez functia RegInit() care seteaza registrele necesare pentru operarea de intrerupere externa si functia InitIntreruperi() care activeaza intreruperile externe. In functia loop, exista o alta variabila globala times_pressed care numara de cate ori este apasat butonul, pentru a schimba piesele.

Rezultate obtinute

Concluzii

A fost un proiect interesant in care am invatat mai mult cum putem combina partea hardware cu partea software.

Download

Bibliografie/Resurse

pm/prj2022/imacovei/dario.velo.txt · Last modified: 2022/05/28 19:45 by dario.velo
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