Laboratorio di Segnali e Sistemi - Esercitazione -8 - Familiarizzazione con arduino Claudio Luci last update : 070117 Claudio Luci Laboratorio di Segnali e Sistemi Capitolo 8 1
Click to edit Arduino Master title style Le 6 uscite digitali precedute dal segno meno hanno la Pulse Width Modulation (PWM) Claudio Luci Laboratorio di Segnali e Sistemi Capitolo 8 2
Click to edit Come Master iniziaretitle style compila Compila, carica e run Apre il serial monitor per eseguire operazioni di input/output Dopo aver scritto il programma esso puo essere compilato utilizzando il pulsante apposito (il primo in alto a sinistra): il risultato della compilazione viene riportato nella piccola finestra nera, dove vengono anche segnalati gli eventuali errori presenti. Claudio Luci Laboratorio di Segnali e Sistemi Capitolo 8 3
Click to edit Master title style Esempio di programma: blinking led Traduzione in C dello sketch La function setup() viene eseguita solo una volta all inizio mentre la function loop() viene ripetuta all infinito Claudio Luci Laboratorio di Segnali e Sistemi Capitolo 8 4
Click to Procedura edit Master completa title style Nigro (Non piu, trovate un esempio da scaricare sul mio sito) Quest anno il nome e diverso: adc_read_5_2017.ino Lo potete copiare dal mio sito web Vedere la prossima esercitazione Claudio Luci Laboratorio di Segnali e Sistemi Capitolo 8 5
Click Comunicazione to edit Master seriale title style Esempio Scrive una linea vuota Claudio Luci Laboratorio di Segnali e Sistemi Capitolo 8 6
Click to edit Master title style Comunicazione seriale: output del programma Volendo, se avete tempo e voglia, potete vedere che tipo di correlazione c e tra il tempo di esecuzione e il numero impostato Claudio Luci Laboratorio di Segnali e Sistemi Capitolo 8 7
Click Operazioni to edit Master in Input/Output title style (protetti da una resistenza) I pin 3, 5, 6, 9, 10 e 11 possono essere usati in uscita in modo analogico (PWM). 0 = 0% ; 255 = 100% Pin 5, 6: 980 Hz Pin 3, 9, 10, 11: 490 Hz Claudio Luci Laboratorio di Segnali e Sistemi Capitolo 8 8
Click to edit Master title style Esempio: utilizzo di analogwrite() La luminosita del Led dipende dal numero scritto sulla riga di input q Mettete il Led (protetto da una resistenza da un centinaio di Ohm) sul pin 9 (490 Hz), scegliete 4-5 valori del duty cycle (0 à 255) e riportate sulla relazione gli screenshot. q Fate la stessa cosa con il pin 6 (980 Hz) Claudio Luci Laboratorio di Segnali e Sistemi Capitolo 8 9
Click Dovreste to edit ottenere Master title questo style Claudio Luci Laboratorio di Segnali e Sistemi Capitolo 8 10
Click Dovreste to edit ottenere Master title questo style Claudio Luci Laboratorio di Segnali e Sistemi Capitolo 8 11
Click to edit Master title style Esempio: altro utilizzo di analogwrite() La luminosita del Led varia linearmente in maniera periodica q Nell esempio e riportato un onda triangolare, ma potete scrivere anche altri tipi di variazione, ad esempio un dente di sega q Visualizzate con l oscilloscopio l uscita del pin 9, dovreste vedere un andamento a fisarmonica. Se ci riuscite, riportate alcuni screenshot sulla relazione Claudio Luci Laboratorio di Segnali e Sistemi Capitolo 8 12
Click Dovreste to edit ottenere Master title questo style Claudio Luci Laboratorio di Segnali e Sistemi Capitolo 8 13
Click Esempio to edit di Master analogread() title style q Mandate sul pin 3 di ingresso analogico una tensione continua compresa tra 0 e 5 V; q Misurate la tensione d ingresso con il multimetro q Confrontate il valore misurato con quello scritto da Arduino sulla porta seriale. Valore dell ADC di arduino Calibrazione dell ADC di arduino q Modificate il programma in modo da scrivere il valore di RdVal (e non Vx) q Mandate in input una decina di valori di tensione continua compresi tra 0 e 5 V q Costruite il grafico tra il valore dell ADC e la tensione inviata q Ricavate il valore della calibrazione Claudio Luci Laboratorio di Segnali e Sistemi Capitolo 8 14
Click Dovreste to edit ottenere Master title questo style ADC versus V input V input versus ADC /count 5 = 4.88 mv/count 1024 q Voi avete come variabile indipendente la tensione di input e come variabile dipendente il valore dell ADC, quindi logicamente dovreste costruire il primo grafico q Pero voi avete bisogno di una costante di calibrazione che converta il numero letto dall ADC in un valore di tensione, quindi dovete costruire il secondo grafico; la costante di calibrazione che cercate e il coefficiente angolare di questa retta. q La costante di calibrazione vi servira per la misura successiva Claudio Luci Laboratorio di Segnali e Sistemi Capitolo 8 15
Click to Input edit Master analogico title style Conversione Analogico Digitale di una forma d onda Ovvero campionamento digitale di una forma d onda il punto 1) l abbiamo fatto, andiamo al punto 2) Claudio Luci Laboratorio di Segnali e Sistemi Capitolo 8 16
Click Programma to edit Master lettura title ADCstyle My_delay non funziona bene, usate il programma scritto da M.Raggi oppure un vostro programma. Mandare il segnale al pin analogico 3 q Il campionamento avviene ad una frequenza di 500 Hz, quindi la frequenza di Nyquist e di 250 Hz (aspettare la lezione di mercoledi) q Usate una sinusoide con una frequenza inferiore a 250 Hz (ad esempio 30-50 Hz) q aggiustate il valor medio in modo che la tensione sia sempre positiva q Usate una bassa frequenza anche con l onda triangolare. q Se avete tempo ripetete le misure con sinusoidi di diversa frequenza. Provate a vedere cosa succede con frequenze di 300 Hz e 500 Hz Claudio Luci Laboratorio di Segnali e Sistemi Capitolo 8 17
Click to edit Master title style Programma lettura ADC (M.Raggi) Confrontate i due programmi. In questo caso i 100 valori dell ADC sono scritti su un buffer e poi trasmessi tutti insieme alla fine del campionamento. La frequenza di campionamento e quella massima di Arduino, ma potete variarla introducendo un ritardo T tra una misura e l altra. 1023? Che grandezza state mandando al pc? Una tensione o un numero binario? Claudio Luci Laboratorio di Segnali e Sistemi Capitolo 8 18
Click to edit Master title style Frequenza di campionamento (Raggi) La frequenza di campionamento e adeguata se il segnale non viene distorto Claudio Luci Laboratorio di Segnali e Sistemi Capitolo 8 19
Click Dovreste to edit ottenere Master questa title cosa style Onda sinusoidale Cosa mettiamo sull asse dei tempi? q Fate un confronto con uno screenshot dello stesso segnale mandato sull oscilloscopio. In fondo avete anche voi realizzato un oscilloscopio digitale (di bassa qualita ) q Se riuscite a fare questi plot in tempo reale durante l esercitazione e non a casa, potreste avere il tempo di fare delle modifiche (numeri di punti, frequenza, valor medio, etc ) Claudio Luci Laboratorio di Segnali e Sistemi Capitolo 8 20
Click Dovreste to edit ottenere Master questa title cosa style Onda triangolare q Fate un confronto con uno screenshot dello stesso segnale mandato sull oscilloscopio. In fondo avete anche voi realizzato un oscilloscopio digitale (di bassa qualita ) q Se riuscite a fare questi plot in tempo reale durante l esercitazione e non a casa, potreste avere il tempo di fare delle modifiche (numeri di punti, frequenza, valor medio, etc ) Claudio Luci Laboratorio di Segnali e Sistemi Capitolo 8 21
Click to edit Master title style End Fine esercitazione 8 Claudio Luci Laboratorio di Segnali e Sistemi Capitolo 8 22