This shows you the differences between two versions of the page.
pm:prj2025:rnedelcu:cosmin.croitoriu [2025/05/28 13:47] cosmin.croitoriu |
pm:prj2025:rnedelcu:cosmin.croitoriu [2025/05/28 15:56] (current) cosmin.croitoriu |
||
---|---|---|---|
Line 139: | Line 139: | ||
* D3 crește intensitatea (prin întrerupere **INT1**) Întreruperea este activată pe frontul negativ HIGH to LOW. | * D3 crește intensitatea (prin întrerupere **INT1**) Întreruperea este activată pe frontul negativ HIGH to LOW. | ||
În toate cazurile am folosit o măsură de a evita debounce-ul folosind niște variabile care rețin timestamp-ul ultimei schimbări. | În toate cazurile am folosit o măsură de a evita debounce-ul folosind niște variabile care rețin timestamp-ul ultimei schimbări. | ||
+ | |||
+ | **Conversia Analog-Digital**: Pentru prelucrarea semnalului de la chitară, am folosit convertorul analog-digital intern al Arduino-ului, configurat manual pentru a controla mai precis performanța și viteza de eșantionare. | ||
+ | Inițializarea se face în funcția setupADC() prin care se se setează referința la AVcc, se activează ADC-ul și se se setează prescaler-ul la 64. | ||
+ | <code> | ||
+ | void setupADC() { | ||
+ | // AVcc ca referinta si calanalul 0 by default | ||
+ | ADMUX = (1 << REFS0); | ||
+ | | ||
+ | // Enable la ADC su Prescaler 64 | ||
+ | ADCSRA = (1 << ADEN) | ||
+ | | (1 << ADPS2) | (1 << ADPS1); | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | Pentru citire în bucla de loop, se schimbă canalul între A0 și A1 (folosim A1 pentru fotorezistor), iar apoi se porneste conversia și se asteaptă terminarea. | ||
+ | <code> | ||
+ | uint16_t readADC(uint8_t pin) { | ||
+ | // Setam canalul, 0 sau 1. | ||
+ | ADMUX = (ADMUX & 0xF0) | (pin & 0x0F); | ||
+ | |||
+ | // Start conversie | ||
+ | ADCSRA |= (1 << ADSC); | ||
+ | |||
+ | // Se asteapta pana conversia este terminata | ||
+ | while (ADCSRA & (1 << ADSC)); | ||
+ | |||
+ | return ADC; | ||
+ | } | ||
+ | </code> | ||
+ | |||
**Conversia Digital-Analog**: Semnalele procesate sunt trimise la DAC-ul **MCP4725**, care are implicit adresa 0x60, și care funcționează pe **protocolul I2C**. Valoarea de 10 biți este transformată într-una de 12 biți prin shiftare la stânga. | **Conversia Digital-Analog**: Semnalele procesate sunt trimise la DAC-ul **MCP4725**, care are implicit adresa 0x60, și care funcționează pe **protocolul I2C**. Valoarea de 10 biți este transformată într-una de 12 biți prin shiftare la stânga. | ||
Line 166: | Line 196: | ||
* 12.4.2025: Am facut partea de output doar cu un singur filtru trece jos, pentru a testa sunetul. Deoarece sunetul nu era grozav, am decvis să folosesc filtrul Sallen Key. | * 12.4.2025: Am facut partea de output doar cu un singur filtru trece jos, pentru a testa sunetul. Deoarece sunetul nu era grozav, am decvis să folosesc filtrul Sallen Key. | ||
* 14.4.2025: Am făcut output stage-ul, folosind filtrul Sallen Key. Drept amplificator am folosit TL972, pe care l-am pus pe PCB cu ajutorul unui adaptor SMD, după **multe ore de chin** pentru a-l lipi. Neașteptat, chiar a funcționat! | * 14.4.2025: Am făcut output stage-ul, folosind filtrul Sallen Key. Drept amplificator am folosit TL972, pe care l-am pus pe PCB cu ajutorul unui adaptor SMD, după **multe ore de chin** pentru a-l lipi. Neașteptat, chiar a funcționat! | ||
- | {{:pm:prj2025:rnedelcu:adaptor.png200|}} | + | {{:pm:prj2025:rnedelcu:adaptor.png?200|}} |
* 16.4.2025: Am implementat primele versiuni ale distorsion-ului si al tremolo-ului. Observ ca sunetul este destul de "muffled", probabil din cauza filtrelor de 5kHz. | * 16.4.2025: Am implementat primele versiuni ale distorsion-ului si al tremolo-ului. Observ ca sunetul este destul de "muffled", probabil din cauza filtrelor de 5kHz. | ||
* 18.4.2025: Adaugare a butoanelor care modifica intensitatea efectului si a fotorezistorului. | * 18.4.2025: Adaugare a butoanelor care modifica intensitatea efectului si a fotorezistorului. | ||
Line 182: | Line 212: | ||
[[https://ocw.cs.pub.ro/courses/pm/prj2017/ddragomir/cmihalache|Proiect inspiratie]] | [[https://ocw.cs.pub.ro/courses/pm/prj2017/ddragomir/cmihalache|Proiect inspiratie]] | ||
+ | |||
+ | {{:pm:prj2025:rnedelcu:cosmin_proiect_pm.zip|Arhiva cod}} | ||
<html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | ||