Arduino & MATLAB – Real time Plotting

In questa seconda lezione su Arduino e MATLAB vediamo come ricevere in input il segnale da un pin della scheda Arduino e visualizzare in real time il suo andamento.


Prima di iniziare con l’acquisizione dei dati dobbiamo stabilire la connessione tra la scheda e il softwre MATLAB, per fare questo vi rimando alla prima lezione  “ARDUINO & MATLAB – COMUNICAZIONE SERIALE“.

Vedremo come acquisire il segnale da un sensore, nel nostro caso una fororesistenza, tramite il pin analogico 0. Lo schema di collegamento è il seguente

Programma Test

Analizziamo il programma che andremo a scrivere in MATLAB per avviare l’acquisizione e visualizzare il grafico:

a = arduino(‘/dev/cu.usbmodemfa131’);   %Avvia la connessione con Arduino

x=0;            %Inizializza il vettore in cui verranno salvati i valori acquisiti

interv=500;     %Intervallo di tempo

for k=1:1:interv                    %Ciclo for da 1 a N con incremento di 1

    b=a.analogRead(0)*5/1023;       %Preleva il dato dal pin analogico 0 e lo salva in b

    x=[x,b];                        %Inserisce il valore di b in coda al vettore x

    plot(x,‘LineWidth’,2);          %Plotta il vettore x e imposto lo spessore del grafico a 2  

    grid on;                        %Attiva la griglia

    axis([0 interv -0.1 5.1]);      %Imposta la scala degli assi del grafico

    pause(0.01);                    %Ritardo di 0.01 secondi

end

Al primo rigo avviamo la connessione creando un nuovo oggetto arduino e specifichiamo tra virgolette la porta del nostro computer a cui è collegata la scheda. Creaiamo il vettore in cui andremo a salvare i dati acquisiti e in interv specifichiamo per quanto tempo vogliamo acquisire il segnale. Iniziamo un ciclo for e preleviamo il segnale dal pin analogico 0, notiamo che abbiamo convertito il segnale che va da 0 a 1023 in un valore di tensione che va da 0 a 5, semplicemente moltiplicando per 5 e dividendo per 1023. Salviamo il valore in coda al vettore e lo plottiamo. Infine con il comando axis impostiamo la scala degli assi.

Related Articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Ultimi Articoli