Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2021:amocanu:lcd_piano [2021/05/30 00:39]
liviu.dragulin [Descriere generală]
pm:prj2021:amocanu:lcd_piano [2021/05/31 21:17] (current)
liviu.dragulin [Autor]
Line 1: Line 1:
 ====== LCD Piano====== ====== LCD Piano======
-<​note>​[[mailto:​liviu.dragulin@stud.acs.upb.ro|Drăgulin Liviu-Mihai]]</​note>​+===== Autor ===== 
 +<​note>​ 
 +[[mailto:​liviu.dragulin@stud.acs.upb.ro|Drăgulin Liviu-Mihai]]\\ 
 +334CC 
 +</​note>​
 ===== Introducere ===== ===== 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. 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.
Line 31: Line 35:
 </​note>​ </​note>​
 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**.\\ 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 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 sunt este afișat:+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:
   * ultima clapă apăsată   * ultima clapă apăsată
 SAU SAU
-  * ## - atunci când nu există ​ tastă precedentă apăsatăsau când pianul se află în modul LISTEN+  * ## - atunci când nu există ​ tastă precedentă apăsată sau când pianul se află în modul LISTEN
 SAU SAU
   * oo - atunci când înregistrarea melodiei a început în modul RECORD   * oo - atunci când înregistrarea melodiei a început în modul RECORD
  
-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 ​a fost memorată ​înainte.\\+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. Î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 ==== ==== Funcții implementate ====
-  * **lcd_change_line** - schimbă o linie a buffer-ului intern programului,​ în care este memorat conținutul celor două linii ale lcd-ului, în funcție de ce buton este apăsat și marcheză că liniile display-ului trebuie actualizate+  * **lcd_change_line** - funcție ce schimbă o linie a buffer-ului intern programului,​ în care este memorat conținutul celor două linii ale lcd-ului, în funcție de ce buton este apăsat și marcheză că liniile display-ului trebuie actualizate
   * **play_note** - funcție ce redă sunetul clapei apăsate   * **play_note** - funcție ce redă sunetul clapei apăsate
   * **start_recording** - funcție ce începe memorarea secvenței de clape apăsate   * **start_recording** - funcție ce începe memorarea secvenței de clape apăsate
Line 56: Line 60:
 [[https://​github.com/​liviumdragulin/​lcd_piano|GitHub]]\\ [[https://​github.com/​liviumdragulin/​lcd_piano|GitHub]]\\
 \\ \\
-YouTube**TODO**+[[https://​drive.google.com/​file/​d/​1JBiFXFTjniZ8-KLuL_Kb1RiKoZthYCIC/​view|Video]]\\
 </​note>​ </​note>​
 +{{:​pm:​prj2021:​amocanu:​lcd_piano_demo.jpg?​600|}}
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
Line 68: Line 73:
 https://​github.com/​arduino/​ArduinoCore-avr/​blob/​master/​libraries/​EEPROM/​src/​EEPROM.h\\ https://​github.com/​arduino/​ArduinoCore-avr/​blob/​master/​libraries/​EEPROM/​src/​EEPROM.h\\
 https://​www.tinkercad.com/​\\ https://​www.tinkercad.com/​\\
-{{:​pm:​prj2021:​amocanu:​lcd_piano.pdf|}}+{{:​pm:​prj2021:​amocanu:​lcd_piano2.pdf|}}
pm/prj2021/amocanu/lcd_piano.1622324395.txt.gz · Last modified: 2021/05/30 00:39 by liviu.dragulin
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