Introduzione al microcontrollore Arduino: architettura e programmazione

Documento sul microcontrollore Arduino. Il Pdf illustra l'architettura hardware e il software IDE, spiegando come creare e caricare sketch per controllare sensori e attuatori. Il documento, utile per la scuola superiore in Informatica, include esempi di codice per LED e pulsanti, e le strutture di controllo del linguaggio di programmazione.

Mostra di più

8 pagine

Visualizza gratis il Pdf completo

Registrati per accedere all’intero documento e trasformarlo con l’AI.

Anteprima

Microcontrollore Arduino

02/06/25, 12:44 Microcontrollore Arduino tastiere e mouse (periferiche di input) e si producono segnali si video e stampanti (periferiche di output) ma sarebbe difficile impiegare un PC convenzionale per controllare direttamente il funzionamento di sensori ed attuatori.

ARDUINO

Attualmente possiamo considerare il progetto Arduino come la piattaforma open source di physical computing più diffusa e popolare. Arduino è composto da due parti: la scheda (hardware) e l' IDE (software) che deve essere scaricato ed eseguito sul PC. L'IDE, come si è accennato, serve per creare piccoli sketch (programmi) salvati come files con estensione .ino (dalle ultime tre lettere della parola Arduino) che poi devono essere caricati sulla scheda. Lo sketch istruisce la scheda. Non molto tempo fa, lavorare con l'hardware significava costruire circuiti da zero utilizzando centinaia di componenti diversi, resistenze, condensatori, transistor etc .. Ogni circuito era cablato per eseguire una applicazione specifica e apportare delle modifiche significava tagliare cavi e saldare collegamenti. Con l'avvento delle tecnologie digitali e dei microprocessori, queste funzioni, una volta realizzate coi cavi, sono state sostituite da programmi software. Il software è più facile da modificare dell'hardware . La scheda Arduino è una piccola scheda microcontrollore, cioè un circuito (la scheda) che contiene un chip (il microcontrollore) ; il risultato è un piccolo computer almeno 1000 volte meno potente di qualsiasi PC, ma molto più economico ed in grado di costruire dispositivi interessanti. Sulla scheda è infatti riconoscibile un rettangolo nero in plastica dotato di 28 piedini (quadrato se si dispone della versione SDM ) ; si tratta del uC AT-mega328 della Microchip: il cuore della scheda. Bisogna specificare che ci sono diversi tipi di scheda Arduino, ma la più comune è la scheda Arduino Uno descritta di seguito. https://www.edutecnica.it/sistemi/mc/mc.htm 5/12

Componenti della scheda Arduino

02/06/25, 12:44 Microcontrollore Arduino Sulla scheda sono posizionati tutti i componenti necessari affinchè il uC funzioni correttamente e che possa comunicare con un computer.

connettore USB pulsante LED di alimentazione Reset LED di stato Pin I/0 digitale AREF 13 12 -11 -10 432 TX+1 RX+0 + UNO TX ARDUINO IOREF RESET 3.3V SV GND GND Vin A A3 14 A5 Alimentazione Pin di ingresso analogico LED di attività seriale Jack di alimentazione

In alto ed in basso si notano i connettori per i collegamenti ai sensori e agli attuatori; ricordiamo che i sensori percepiscono qualche tipo di grandezza fisica e la traducono in un segnale elettrico interpretabile da un computer, mentre un attuatore è l'opposto di un sensore, converte un segnale elettrico proveniente da un computer e lo traduce in una azione fisica. Quando non altrimenti specificato, noi faremo sempre riferimento alla scheda base, quella denominata Arduino Uno; a bordo di questa scheda si riconoscono

Pin I/O digitali

14 pin I/O digitali (pin 0-13) Questi possono essere usati per eseguire operazioni di input ed output. Come connettori di input sono usati per leggere le informazioni provenienti dai sensori mentre come output sono usati per il controllo degli attuatori. Gli input digitali https://www.edutecnica.it/sistemi/mc/mc.htm 6/12

Microcontrollore GND DIGITAL (PWM-) RX POWER ANALOG IN

02/06/25, 12:44 Microcontrollore Arduino possono solo leggere uno dei due valori HIGH/LOW, gli output digitali possono solo inviare uno dei due valori HIGH/LOW.

Pin di ingresso analogico

6 pin di ingresso analogico (pin 0-5) I pin di ingresso analogico sono usati per leggere misure di tensione dai sensori analogici. A differenza dei pin digitali, che possono distinguere solo tra due livelli differenti (HIGH e LOW) i pin di ingresso analogico possono misurare 1024 livelli differenti di voltaggio.

Pin di uscita analogica

6 pin di uscita analogica (pin 3, 5, 6, 9 10 e 11) Questi sono in pratica sei pin digitali che possono eseguire una terza funzione: fornire un' uscita analogica. Come per i pin I/O digitali, si deve sempre specificare il loro compito nel codice sorgente del programma dell'applicazione che si intende eseguire.

Alimentazione della scheda

La scheda può essere alimentata attraverso la porta USB del computer, attraverso la maggior parte dei caricatori USB oppure tramite un alimentatore esterno, possibilmente da 9V con spinotto cilindrico da 2,1 mm (con positivo centrale). Se nella presa non è collegato alcun alimentatore, la scheda si alimenta via USB, ma, non appena si collega un alimentatore di corrente, la scheda lo utilizza automaticamente. Come al solito è più sicuro disporre dell'alimentazione sulla presa rispetto all'alimentazione USB.

PROGRAMMAZIONE DI ARDUINO

Una volta aperto l'IDE di Arduino ci si accorge che la struttura del codice è suddivisa in due parti fondamentali: la funzione setup () e la funzione loop () . setup () è la zona del programma dove inserire il codice che deve essere eseguito una sola volta all'inizio del programma, mentre loop () contiene il programma vero e proprio che viene eseguito ripetutamente. Questa impostazione è data dal fatto che il dispositivo non è in grado di eseguire diversi programmi contemporaneamente (multitask) come un normale computer e dal https://www.edutecnica.it/sistemi/mc/mc.htm 7/12

02/06/25, 12:44 Microcontrollore Arduino programma principale non si può uscire. Quando si accende la scheda, il codice viene eseguito, per fermare il codice basta spegnere la scheda.

File Edit Sketch Tools Help sketch 1 void setup () { // put your setup code here, to run once: 1 void loop() { // put your main code here, to run repeatedly: 1 >

Pulsanti dell'editor

Nella parte superiore dell'editor si trovano alcuni pulsanti molto utili

  • Pulsante di Verifica, la sua funzione è di controllare se si sono commessi degli errori.
  • Pulsante di Caricamento (upload) che compila il codice scritto e lo carica sulla scheda configurata.
  • Pulsante Nuovo: crea un nuovo sketch ogni volta che si vuole.
  • Pulsante Apri. Fa apparire un menu con tutti gli sketch già realizzati.
  • Pulsante Salva . Salva il codice appena scritto https://www.edutecnica.it/sistemi/mc/mc.htm 8/12

02/06/25, 12:44 Microcontrollore Arduino Apre il Serial Monitor che permette di controllare i dati scambiati col computer e controllare cosa avviene nel codice eseguito da Arduino.

Linguaggio di programmazione

Il linguaggio usato per scrivere gli sketch può essere assimilato al C o a Java; cioè uno standard dove il punto e virgola è usato come terminatore di una istruzione. Le strutture di controllo

  • if
  • if-else
  • for
  • switch,
  • while,
  • do-while,
  • break,
  • continue,
  • return,
  • goto (quest'ultima, ovviamente deprecata)

rimangono invariate.

Esempio di sketch: LED lampeggiante

Un primo esempio di sketch è il seguente void setup () { pinMode (13, OUTPUT) ; } void loop () { digitalWrite (13, HIGH) ; delay (1000) ; digitalWrite (13, LOW) ; delay (1000) ; } Viene fissato il pin 13 come uscite del collegamento al LED nella funzione setup (). https://www.edutecnica.it/sistemi/mc/mc.htm 9/12

02/06/25, 12:44 Microcontrollore Arduino La funzione loop () contiene la logica principale del programma, e viene usata per creare un ciclo infinito. La logica di questa funzione, deve prima di tutto accendere il led collegato al pin 13. Per effettuare questa operazione si utilizza il metodo digitalWrite () passando come parametri il numero di pin e la costante HIGH. In questo modo il pin fornisce in uscita 5V fino alla modifica successiva ed il led collegato al pin si accende. A questo punto il programma chiama il metodo delay () e attende 1000 millisecondi (1 secondo) senza eseguire alcuna operazione. Durante questo intervallo di tempo il pin 13 rimane nello stato HIGH ed il led è sempre acceso. Il led viene spento con l'istruzione digitalWrite (13, LOW) ; poi il programma attende altri 1000 ms prima di concludere la funzione loop () . Poi, il programma, viene avviato di nuovo ed il led torna ad accendersi.

Esempio di sketch: pulsante come interruttore

Oltre le periferiche di uscita come il LED ci sono le periferiche di ingresso come il pulsante. https://www.edutecnica.it/sistemi/mc/mc.htm 10/12

02/06/25, 12:44 Microcontrollore Arduino Nel seguente sketch il pulsante viene usato come interruttore per accendere e spegnere il LED stesso. const int Switch = 2, LED = 13; int state = 0, LEDstate=0; void setup () { pinMode (Switch, INPUT) ; pinMode (LED, OUTPUT) ; } void loop () { if (state == 0 && digitalRead (Switch) == HIGH) { state = 1; LEDstate =! LEDstate; } if (state == 1 && digitalRead (Switch) == LOW) { state = 0; } digitalWrite (LED, LEDstate) ; } Si vede che come in altri linguaggi di programmazione la parte della dichiarazione delle variabili e delle costanti viene scritta per prima. Viene usata la variabile state in concomitanza con il metodo digitalRead (Switch) ; per far commutare il led da acceso a spento (e viceversa) https://www.edutecnica.it/sistemi/mc/mc.htm 11/12

02/06/25, 12:44 Microcontrollore Arduino attraverso la variabile LEDstate che agisce sul led di uscita attraverso l'istruzione digitalWrite (LED, LEDstate) ; La possibilità di scrivere il codice usando un linguaggio di medio livello come il C è molto vantaggiosa se si considera che i primi PIC potevano essere programmati solo attraverso il linguaggio assembly che spesso differiva da dispositivo a dispositivo.

SISTEMI

INDEX https://www.edutecnica.it/sistemi/mc/mc.htm 12/12

Non hai trovato quello che cercavi?

Esplora altri argomenti nella Algor library o crea direttamente i tuoi materiali con l’AI.