This is an old revision of the document!


Mini Osciloscop Digital cu Generator de Semnal

Introducere

  • Proiectul constă în realizarea unui osciloscop digital standalone, capabil să captureze și să afișeze semnale analogice în timp real, cu un generator intern de semnal și intrare externă prin jack 3.5mm.
  • Scopul lui: vizualizarea și analiza semnalelor electrice la un cost accesibil, fără echipamente comerciale costisitoare.
  • Ideea de la care am pornit: Sincer sa fiu nici eu nu stiu, pur si simplu am avut o iluminare
  • Utilitate: pentru alții, un instrument funcțional sub 300 RON care înlocuiește un osciloscop entry-level. Pentru mine, o integrare completă a tuturor temelor PM — ADC, SPI, I2C, timere și întreruperi — într-un singur sistem hardware coerent.

Descriere generală

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.

Hardware Design

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>

Software Design

Descrierea codului aplicaţiei (firmware):

  • mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR)
  • librării şi surse 3rd-party (e.g. Procyon AVRlib)
  • algoritmi şi structuri pe care plănuiţi să le implementaţi
  • (etapa 3) surse şi funcţii implementate

Rezultate Obţinute

Care au fost rezultatele obţinute în urma realizării proiectului vostru.

Concluzii

Download

O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).

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.

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

Bibliografie/Resurse

Resurse Hardware

pm/prj2026/vlad.radulescu2901/sebastian.barbu2707.1778678935.txt.gz · Last modified: 2026/05/13 16:28 by sebastian.barbu2707
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