Arduino Lezione Prima Prof. Ponte Vincenzo
Cos'è Arduino? È un progetto Open Source È una piccola scheda con un suo ambiente di Programmazione. È possibile programmare con un computer. È completamente “stand-alone”
Cos'è Arduino? Può comunicare con una moltitudine di altri dispositivi sia di “input” che di “ouput”. Può lavorare con una piccola batteria da 9V. Può parlare (comunicare!) con altri computer, telefoni cellulari, ecc.
Arduino Uno Dovendo scegliere una scheda per realizzare i nostri progetti la scelta è rimasta sullo standard: Arduino Uno. Arduino Uno è il prodotto di gran lunga più diffuso, è il più economico, ed è pienamente sufficiente per le nostre esigenze.
Arduino Uno Arduino Uno
Arduino Uno
Ingressi/Uscite Digitali Digitale viene dall'inglese digit=cifra. Le cifre che possiamo usare sono solamente due: la presenza o l'assenza di una tensione. Di conseguenza quando il processore vuole scrivere un valore digitale genera una tensione su un pin quando vuole dire 1 e non genera nulla quando vuole dire 0, mentre in fase di lettura di un valore digitale controlla se c'è tensione su un pin o se non c'è, e converte questi stati in cifra 1 e cifra 0 rispettivamente. Un semplice esempio di utilizzo delle porte digitali è questo: immaginiamo di voler utilizzare Arduino per accendere la luce automaticamente quando siamo sulle scale. Ci sarà un sensore con uscita digitale 1/0 che dirà ad Arduino se c'è una persona nelle vicinanze, e ci sarà di conseguenza un segnale da parte di Arduino, ancora una volta un segnale digitale, che accende la luce quando il sensore rileva la presenza di una persona (stato 1) e che spegne la luce (stato 0) quando non c'è più nessuno.
Ingressi Analogici Un valore Analogico, al contrario, è un valore di tensione che sta compreso tra 0 volt e la tensione di alimentazione del circuito elettronico, nel caso del nostro Arduino Uno 5 Volt. Vediamo un esempio di utilizzo di un ingresso analogico: immaginiamo di voler capire a che velocità il vento fa girare un piccolo generatore che sta sul nostro tetto. Sappiamo che la tensione generata è proporzionale alla velocità, dunque basterà mandare la tensione generata in un ingresso analogico di Arduino. Il circuito convertitore Analogico/Digitale convertirà automaticamente il valore letto in un numero decimale e il processore potrà leggerlo ed elaborarlo (ad esempio mostrarlo sul monitor).
Uscite PWM PWM: PULSE WIDTH MODULATION, modulazione a larghezza di impulso. A cosa serve: abbiamo visto che la nostra scheda Arduino può leggere e scrivere valori digitali, abbiamo visto pure che può leggere valori analogici, ma quello che non sa fare è scrivere valori analogici. Insomma: quando "ascolta" può ricevere dati in entrambe le forme, ma quando comunica con l'esterno lo può fare solo in modo digitale: 1 e 0. Se devo accendere una lampadina, o spegnerla, 1 e 0 mi vanno bene. Se devo azionare un motore, sta ancora bene: 1 = motore acceso 0 = motore spento. Ma...se voglio accendere una lampadina in modo prima fioco poi intenso, o .... se voglio fare accelerare lentamente il mio motore? Non ci riesco senza una uscita analogica che cambi valore da zero e cresca lentamente. Ecco che allora utilizzo un "trucco". Il PWM permette di "fare finta" di avere una tensione variabile in uscita.
Uscite PWM La retta arancio, contrassegnata con V medi indica in ciascun caso la media della differenza di potenziale. La nostra lampadina ed il nostro motore sono degli utilizzatori che sono interessati al valore medio della tensione e non ai picchi. La conseguenza è, che pur pilotando gli utilizzatori con una uscita digitale, possiamo creare valori medi di potenziale variabili in modo continuo perché cambiamo il tempo in cui l'uscita rimane a valore 1 o a valore zero, e siamo riusciti in questo modo a simulare una uscita analogica.
I LED La scheda è dotata di 4 LED. LED "ON" indica che la scheda è alimentata da tensione e quindi funzionante Il LED vicino al piedino 13 (e ad esso connesso) ha una L stampata a fianco. Serve per realizzare i primi programmini di test. I restanti due LED, al cui fianco troviamo scritto TX ed RX, segnalano la trasmissione e la ricezione di segnali attraverso la porta seriale. La porta seriale serve sia a trasferire un programma dal computer all'Arduino Uno, sia allo stesso Arduino, durante l'esecuzione del programma, per mandare dei segnali al computer che li può utilizzare elaborandoli oppure semplicemente mostrandoli sul monitor. Insomma: il lampeggio dei LED TX e RX sta a significare o che il nostro Arduino sta ricevendo dei dati o che li sta trasmettendo ad altri dispositivi.
Il Pulsante di Reset La funzione del pulsante è simile a quella del Reset del vostro PC: toglie per un attimo la corrente in modo da costringere il sistema a reinizializzarsi ovvero a ripartire da zero. Si sa: Arduino è un dispositivo elettronico molto complesso e succede che anche lui ogni tanto si blocchi durante l'elaborazione. Se ciò accade, premere il pulsante di reset è una maniera veloce di uscire dai guai. Va reso noto (e ricordato), che le istruzioni del programma su Arduino risiedono in una memoria Flash, che non si cancella quando resettiamo. Quindi premere il pulsante di Reset non ci fa perdere affatto il programma che abbiamo caricato. La peculiarità di non perdere le istruzioni del programma anche se il dispositivo è scollegato dall'alimentazione elettrica rende ragione di un comportamento che spesso giudichiamo "strano": anche dopo mesi, o anni, di inutilizzo, il nostro Arduino appena collegato all'alimentazione torna ad eseguire l'ultimo programma che abbiamo caricato.
Il connettore USB La USB è importantissima su Arduino e svolge più funzioni. Serve per programmare il dispositivo, connettendolo ad un computer. Serve per mandare segnali da Arduino verso il computer (e pure dal computer verso Arduino) in modo, ad esempio,da poter sfruttare il monitor del PC per visualizzare i dati. Serve per alimentare elettricamente la scheda. Si deve però tener presente che la corrente massima che una USB può erogare è di 500 mA, che di norma è sufficiente ad alimentare sia Arduino che dei piccoli carichi ad esso connessi, ma non può dare più di quella corrente. Nel caso l'amperaggio non sia sufficiente si deve fornire una alimentazione esterna tramite la presa apposita.
Il Jack di alimentazione La Presa (Jack) di alimentazione consente di alimentare Arduino anche senza averlo connesso ad una presa USB e quindi gli consente di funzionare anche quando fisicamente lontano da un computer. Spesso mentre sperimentiamo, programmiamo, testiamo i circuiti del nostro Arduino ci è conveniente averlo connesso al computer,ma poi quando il progetto che avevamo in mente termina la fase sperimentale ci diviene indispensabile rendere autonomo il dispositivo. Serve perciò una fonte di alimentazione elettrica. Arduino possiede un regolatore di tensione interno in grado di abbassare la tensione fino ai 5 Volt che gli sono necessari per funzionare, quindi non dobbiamo preoccuparci tanto di fornirgli una tensione di 5 Volt esatti. Una tensione dai 6 fino a 12 Volt è bene accetta. Ci sono un paio di cose importanti da tenere in considerazione sempre quando si alimenta la scheda: Si deve assolutamente tenere presente che il polo positivo dell'alimentazione va collegato alla parte interna della spina di alimentazione Si deve alimentare sempre in corrente continua e stabilizzata, usando batterie (ottima una da 9 Volt) o alimentatori stabilizzati Qualora si utilizzasse alimentasse Arduino Tramite il Jack e nel contempo fosse connessa la presa USB (ad esempio per aggiornare il programma), si deve ricordare che solo se la tensione di alimentazione al Jack è superiore a 7,5 Volt Arduino userà l'alimentazione proveniente dal Jack.
Il Cablaggio
Fine prima parte Liberamente tratto da: https://www.lsgalilei.org/mediawiki/index.php/Ar duino#Note_introduttive