Differences

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

Link to this comparison view

pm:prj2026:ciprian.popescu0411:ilinca.tololoi [2026/05/25 00:12]
ilinca.tololoi [Hardware Design]
pm:prj2026:ciprian.popescu0411:ilinca.tololoi [2026/05/25 01:59] (current)
ilinca.tololoi [Afisaj LCD]
Line 189: Line 189:
 === Surse și funcții implementate === === Surse și funcții implementate ===
  
-{| class="​wikitable"​ border="​1"​ +**readTTP229()** 
-| Funcție || Descriere + 
-|- +Citește starea celor 8 electrozi ai TTP229 prin bit-banging SPI și returnează un byte cu biții corespunzători tastelor apăsate 
-| <​code>​readTTP229()</​code>​ || Citește starea celor 8 electrozi ai TTP229 prin bit-banging SPI și returnează un byte cu biții corespunzători tastelor apăsate + 
-|- + 
-| <​code>​getFirstKey()</​code>​ || Parcurge byte-ul returnat de TTP229 și returnează indexul primei taste apăsate (0–7) sau -1 dacă nicio tastă nu e apăsată + **getFirstKey()** 
-|- + 
-| <​code>​calcFreq()</​code>​ || Calculează frecvența finală a notei în funcție de indexul notei, octava curentă și modificatorul de frecvență de la potențiometru +Parcurge byte-ul returnat de TTP229 și returnează indexul primei taste apăsate (0–7) sau -1 dacă nicio tastă nu e apăsată 
-|- + 
-| <​code>​playFreq()</​code>​ || Configurează Timer1 pentru unda pătrat sau apelează tone() pentru celelalte forme de undă; include cache pe ultima frecvență pentru a evita reconfigurări inutile + 
-|- + 
-| <​code>​stopSound()</​code>​ || Oprește orice sunet activ, resetează registrele Timer1 și marchează starea ca inactivă + **calcFreq()** 
-|- + 
-| <​code>​updateLCD()</​code>​ || Actualizează ecranul LCD cu nota, octava, frecvența și forma de undă curentă, cu throttle de 150ms +Calculează frecvența finală a notei în funcție de indexul notei, octava curentă și modificatorul de frecvență de la potențiometru 
-|- + 
-| <​code>​setup()</​code>​ || Inițializează toți pinii, Timer1, I2C, LCD și MPR121 + 
-|- + 
-| <​code>​loop()</​code>​ || Bucla principală:​ citește butoanele, potențiometrele,​ TTP229, MPR121, calculează nota activă, aplică gate/duty și actualizează LCD-ul + **playFreq()** 
-|}+ 
 +Configurează Timer1 pentru unda pătrat sau apelează tone() pentru celelalte forme de undă; include cache pe ultima frecvență pentru a evita reconfigurări inutile 
 + 
 + 
 + 
 + **stopSound()** 
 + 
 +Oprește orice sunet activ, resetează registrele Timer1 și marchează starea ca inactivă 
 + 
 + 
 + 
 + **updateLCD()** 
 + 
 +Actualizează ecranul LCD cu nota, octava, frecvența și forma de undă curentă, cu throttle de 150ms 
 + 
 + 
 + 
 + **setup()**  
 + 
 +Inițializează toți pinii, Timer1, I2C, LCD și MPR121 
 + 
 + 
 + 
 + **loop()**  
 + 
 + Bucla principală:​ citește butoanele, potențiometrele,​ TTP229, MPR121, calculează nota activă, aplică gate/duty și actualizează LCD-ul 
 + 
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
Line 213: Line 240:
 Care au fost rezultatele obţinute în urma realizării proiectului vostru. Care au fost rezultatele obţinute în urma realizării proiectului vostru.
 </​note>​ </​note>​
 +
 +Aici poate fi observata functionalitatea hardware si software, combinate in stadiul final al proiectului:​
 +
 +https://​imgur.com/​a/​U1WJFZq
  
 ===== Concluzii ===== ===== Concluzii =====
pm/prj2026/ciprian.popescu0411/ilinca.tololoi.1779657129.txt.gz · Last modified: 2026/05/25 00:12 by ilinca.tololoi
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