Oscilloscopio per Arduino – Ecco come costruirlo

L’oscilloscopio è uno strumento di misura elettronico che consente di visualizzare, su un grafico bidimensionale, l’andamento nel dominio del tempo dei segnali elettrici ed effettuare misure a lettura diretta di tensione (rappresentata sull’asse verticale) e periodo (con il tempo rappresentato sull’asse orizzontale). Per mezzo di un oscilloscopio analogico è possibile ricavare la misura di grandezze quali corrente, potenza ed energia del segnale, mentre un oscilloscopio digitale, grazie alla possibilità di memorizzare una forma d’onda campionata, permette di effettuarne una lettura diretta per mezzo di calcoli sui campioni in memoria. Generalmente l’oscilloscopio si utilizza per analizzare segnali periodici.

Vi è data la possibilità di realizzare un oscilloscopio fai da te attraverso Arduino seguendo dei semplici step.

STEP 1 – Scaricare oscilloscope_arduino.ino e caricarlo su Arduino

Il primo passo consiste nel scaricare uno sketch per Arduino (clicca qui). In seguito collegare Arduino attraverso l’ausilio del cavo USB al PC, una volta fatto avviare il programma di “Arduino IDE” e aprire il file scaricato in precedenza. Eseguiti tali procedure modificare il COM port correctly (vedi immagine) e poi una volta effettuati tutti questi passaggi caricare il programma su Arduino.

STEP 2 – Scarica  “Oscilloscope Processing Program”

Scaricare e decomprimere il programma di elaborazione per eseguire sul computer. Scegli quello corretto qui di seguito:

Postilla importante: Java 8 deve essere installato e la cartella lib\ folder è importante.

oscilloscopio

STEP 3 – Configurazione per connessione tra il programma dell’oscilloscopio e Arduino

Per fare ciò è necessario configurare le porte seriali. Nel menù del software in questione vi è “Configurar a serial”, e una volta aver fatto l’accesso a tale menù cliccare “select serial” e selezionare la porta COM nel quale Arduino è collegato.

In seguito accedere a “select speed” e modificare il parametro in questione fino a 115200. Poi il passo successivo consiste in un semplice click nella apposita sezione in cui vi è scritto “off”. Se tutto è corretto, l’oscilloscopio mostrerà i 4 canali [A0 (ch-0), A1 (CH-1), A2 (CH-2) e A3 (CH-3)].

oscilloscopio

STEP 4 – Collegare le varie uscite

Tale step consiste nel collegare l’uscita digitale di Arduino (~ 10) con l’ingresso analogico A0 , e l’uscita digitale (~ 9) con l’ingresso analogico A1.

oscilloscopio

Dopo tali procedure vedrete un grafico come quello in figura.

oscilloscopio

Conclusioni

Ora è possibile misurare l’andamento dei segnali elettrici di condensatori, resistenze,  joystik e altro ancora.

Simone Candido è un ragazzo appassionato del mondo tech nella sua totalità. Simone ama immedesimarsi in nuove esperienze, la sua filosofia si basa sulla irrefrenabile voglia di ampliare a 360° le sue conoscenze abbracciando tutti i campi del sapere, in quanto ritiene che il sapere umano sia il connubio perfetto tra cultura umanistica e scientifica.

4 Comments

  1. diego | | Reply

    hi, I have a problem compiling the program. voide setup need to be redifine. is it a libraries problem? If yes, which one I have to use? Thanks

    • Luigi_Morelli | | Reply

      Hi Diego.
      It’s hard to debug your problem from here, but we will try to offer some hints to help you.

      1 – Consider that some libraries don’t like older/newer IDEs
      2 – We had an issue with a library that suddenly ceased to work, probably conflicting with some other library we meanwhile installed
      3 – Redefining setup() and loop() is common practice when you try to optimize your code (see my article on optimization here.
      4 – We did not have other issue messsages from other readers, so I guess it’s not a library issue.
      5 – If you were looking for a cheap oscilloscope, you might try this one.

  2. Francesco | | Reply

    Italien. Uso windows 10 – 64 bit. Ho installato Java (JRE-1.8 e JDK-21), il software non si connette ad arduino uno. Mi da errore:

    #
    # A fatal error has been detected by the Java Runtime Environment:
    #
    # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x000000007110b5db, pid=11908, tid=0x0000000000001d48
    #
    # JRE version: Java(TM) SE Runtime Environment (8.0_381) (build 1.8.0_381-b09)
    # Java VM: Java HotSpot(TM) 64-Bit Server VM (25.381-b09 mixed mode windows-amd64 compressed oops)
    # Problematic frame:
    # C [jSSC-2.8.dll+0xb5db]
    #
    # Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
    #
    # If you would like to submit a bug report, please visit:
    # http://bugreport.java.com/bugreport/crash.jsp
    # The crash happened outside the Java Virtual Machine in native code.
    # See problematic frame for where to report the bug.
    #

  3. Luigi_Morelli | | Reply

    Ciao Francesco.
    Abbiamo notato che questa versione di “mini-oscilloscopio per Arduino” è datata, e inizia a presentare diversi problemi di compatibilità. Inoltre, per quanto allettante, la frequenza massima di scansione è talmente bassa (e la sensibilità poco estesa) da rendere quersto progetto obsoleto e praticamente inutile per un uso anche solo dilettantistico.

    Stiamo lavorando per cercare un aversione più stabile e potente, magari gestita da Arduino 4 o ESP32: non appena testata, ne parleremo qui.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.