Table of Contents

LCD Piano

Autor

Introducere

Proiectul constă în împlementarea unui pian cu 8 clape și 2 butoane de schimbare a modului. Pianul va avea trei moduri: NORMAL, RECORD și LISTEN.

Descriere generală

La placa Arduino vor fi conectate 10 butoane (8 reprezentând clapele pianului și 2 reprezentând butoanele ce schimbă modul în care se află pianul), un buzzer pasiv ce va reda sunetele clapelor și un display lcd 1602 cu modul I2C. De asemenea, melodia înregistrată va fi salvată în EEPROM, lucru care face ca melodia să rămână salvată chiar și după întreruperea alimentării.

Schema bloc

Hardware Design

Listă de piese

  1. Arduino Uno
  2. Breadboard
  3. Cablu USB
  4. Fire de legatura
  5. LCD 1602 cu modul I2C
  6. 10 butoane
  7. Buzzer

Schemă electrică

Software Design

Buzzer-ul cred că are mici probleme. I-am dat să repete aceeași notă încontinuu, iar cateodată sunetul diferă.

Cele 8 clape ale pianului sunt reprezentate de 8 butoane care sunt conectate la pinii 3-10 în modul INPUT_PULLUP. Datorită modului INPUT_PULLUP, butoanele nu au nevoie de rezistențe. Butoanele cu care se schimbă modurile pianului sunt conecate la pinii 11, respectiv 12 tot în modul INPUT_PULLUP. Buzzer-ul este conectat la pin-ul 2; redarea sunetului se face cu ajutorul funcției tone.
Comunicarea cu display-ul LCD 1602 se face cu ajutorul modului I2C (SDA se conectează la pinul A4, iar SCL la pinul A5) prin intermediul bibliotecii LiquidCrystal_I2C.h care are la rândul ei nevoie de biblioteca Wire.h. Utilizarea EEPROM-ului se realizează cu ajutorul bibliotecii EEPROM.h. Pe prima linie a display-ului este afișat modul în care se află pianul (NORMAL, RECORD, LISTEN), iar pe a doua linie este afișat:

SAU

SAU

Când pianul este în modul RECORD, melodia înregistrată precedent nu este ștearsă imediat, trebuie apăsată oricare clapă pentru a începe înregistrarea și ștergerea melodiei memorate înainte.
În modul LISTEN, clapele pianului sunt dezactivate. Singurele butoane ce pot fi apăsate sunt cele de schimbare a modului în care se află pianul.

Funcții implementate

Rezultate Obţinute

Bibliografie/Resurse

https://www.arduino.cc/reference/en/language/functions/advanced-io/tone/
https://pages.mtu.edu/~suits/notefreqs.html
https://create.arduino.cc/projecthub/Arnov_Sharma_makes/lcd-i2c-tutorial-664e5a
https://www.optimusdigital.ro/ro/optoelectronice-lcd-uri/62-lcd-1602-cu-interfata-i2c-si-backlight-galben-verde.html
https://www.arduino.cc/en/Reference/LiquidCrystal
https://www.arduino.cc/en/Reference/EEPROM
https://github.com/arduino/ArduinoCore-avr/blob/master/libraries/EEPROM/src/EEPROM.h
https://www.tinkercad.com/
lcd_piano2.pdf