Osciloscopul este organizat în jurul a cinci module hardware și trei module software, toate coordonate de ATmega328P.
2.A Module hardware:
Semnalul analogic intră prin mufa jack PJ392 3.5mm, trece prin două diode 1N4148 care îl protejează, apoi prin op-amp-ul MCP6002 configurat ca buffer, și în final printr-un filtru RC care elimină zgomotul de înaltă frecvență înainte de ADC.
Placa ATmega328P Xplained Mini este centrul proiectului. Rulează la 16MHz, se programează direct prin USB și coordonează toate perifericele — ADC, SPI, I2C, timere și întreruperi.
Display-ul ILI9341 de 3.2” se conectează prin SPI și afișează forma de undă în timp real împreună cu scalele și măsurătorile automate. Deoarece operează la 3.3V, level shifter-ul Pololu 2595 face conversia de tensiune față de MCU-ul de 5V.
DAC-ul MCP4921 se conectează pe același bus SPI și generează semnalul intern de test (sinus, triunghi, dreptunghi), care se întoarce la intrarea analogică formând o buclă de demo completă.
Modulul EEPROM AT24C256 se conectează prin I2C și salvează setările utilizatorului între sesiuni.
2.B Module software:
Sampling engine — rulează într-un Timer1 ISR și capturează 240 de eșantioane după detecția triggerului, folosind double-buffering pentru afișare stabilă.
Display renderer — rulează în main loop și desenează forma de undă, grila, scalele, Vpp și frecvența pe ecran.
Measurement engine — calculează automat Vpp și frecvența din buffer-ul capturat la fiecare frame.
Listă componente:
| Componentă | Model complet | Cantitate | Rol | Preț estimat |
|---|---|---|---|---|
| Placă MCU | ATmega328P Xplained Mini | 1 | MCU central | De la PM lab |
| Display TFT | LCD 3.2” ILI9341 240×320 Touch SD 3.3-5V | 1 | Afișare semnal | ~116 RON |
| DAC | MCP4921-E/P — DIP8 12-bit SPI | 1 | Generator semnal | ~12 RON |
| Op-Amp | MCP6002-I/P — DIP8 dual rail-to-rail | 1 | Buffer intrare analogică | ~2 RON |
| EEPROM | Modul AT24C256 I2C | 1 | Salvare setări | ~7 RON |
| Level Shifter | Pololu 2595 — 4ch bidirecțional | 1 | 5V↔3.3V SPI | ~16 RON |
| Diode | 1N4148 DO-35 | 2 | Clamp tensiune 0–5V | ~1 RON |
| Rezistori | 1kΩ, 2kΩ, 3.3kΩ, 10kΩ — 1/4W | ~25 | Pull-up, filtru RC, divizori | ~5 RON |
| Condensatori | 100nF ceramic, 10nF ceramic, 10µF electrolitic | ~15 | Decoupling, filtru RC | ~20 RON |
| Mufă jack | PJ392 3.5mm stereo mamă | 1 | Intrare semnal extern | ~3 RON |
| Potențiometru | WH148 10kΩ liniar | 1 | Trigger level | ~2 RON |
| Butoane | PCB 12×12×7.3mm + capace colorate | 6+4 | Interfață utilizator | ~10 RON |
| Breadboard | 830 puncte | 1-2 | Prototipare | Disponibil |
| Fire | Set jumper 140 fire + dupont M-F 40 fire | 1+1 | Conexiuni | ~20 RON |
| Card microSD | orice card 1–32GB | 1 | Salvare forme de undă | ~15 RON |
Total estimat: ~229 RON
</note>
Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.