Il 0% ha trovato utile questo documento (0 voti)
0 visualizzazioni28 pagine

Arduino

Il documento fornisce una panoramica su Arduino, una scheda elettronica utile per la prototipazione e progetti hobbistici. Include informazioni su come acquistare e installare Arduino, i suoi componenti, e istruzioni per realizzare semplici progetti come accendere LED, creare un semaforo e misurare la temperatura. Vengono anche presentate le basi della programmazione in Arduino, comprese le funzioni di input/output e le strutture di controllo.

Caricato da

pecraimo155
Copyright
© All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
0 visualizzazioni28 pagine

Arduino

Il documento fornisce una panoramica su Arduino, una scheda elettronica utile per la prototipazione e progetti hobbistici. Include informazioni su come acquistare e installare Arduino, i suoi componenti, e istruzioni per realizzare semplici progetti come accendere LED, creare un semaforo e misurare la temperatura. Vengono anche presentate le basi della programmazione in Arduino, comprese le funzioni di input/output e le strutture di controllo.

Caricato da

pecraimo155
Copyright
© All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd

Arduino Base

CONOSCIAMO ARDUINO

• cosa è Arduino
• dove comprarlo
• come installarlo
• componenti di Arduino
• accendiamo un led
• istruzioni base
• esercitazioni
o led e lampeggi
o pulsanti
o facciamo un semaforo
o regoliamo la luce
o misuriamo la temperatura
o sensore di luce
Cosa è Arduino

Arduino è una scheda elettronica di piccole dimensioni con un microcontrollore e


circuiteria di contorno, utile per creare rapidamente prototipi e per scopi hobbistici
e didattici.

Il nome della scheda deriva da quello di un BAR di Ivrea (che richiama a sua volta il
nome di Arduino d'Ivrea, Re d'Italia nel 1002) frequentato da alcuni dei fondatori
del progetto.

Con Arduino si possono realizzare in maniera relativamente rapida e semplice piccoli


dispositivi come controllori di luci, di velocità per motori, sensori di luce,
temperatura e umidità e molti altri progetti che utilizzano sensori, attuatori e
comunicazione con altri dispositivi.

È fornito con un semplice ambiente di sviluppo integrato per la programmazione.

Tutto il software a corredo è libero, e gli schemi circuitali sono distribuiti come
hardware libero.
Dove comprarlo
• Su Ebay in KIT Arduino UNO
• Amazon
o ROBOT ITALY [Link]
o ROBOT STORE [Link]
o ENOVAZ [Link]
• sulla pagina di Arduino [Link]
Come istallarlo

• Scaricare da [Link] il software free


• Lanciare il programma e collegare Arduino al PC
• Se necessario cercare il corretto driver (vedere slide
dopo)
• Settare la porta (es. COM20) verificando su «Sistema»
• Settare il tipo di Arduino
Come istallarlo

• Collegare USB ad Arduino e


al PC
• Da Sistema – Hardware – C:\Programmi\Arduino\drivers
Porte caricare il driver di
porta
• Il programma guiderà il
caricamento
• Verrà attribuita ad Arduino
una Porta (da riportare sul
programma Arduino)
I componenti di Arduino
Massa Connettori Digitali
Led standard
Reset

Led corrente OK

USB

Ingresso tensione
Micro
5 V.
processore

Uscite corrente Connettori Analogici


4 LED : Sulla scheda sono presenti quattro led smd denominati L, TX, RX e PWR.
Il led PWR, è facile dedurlo, si accende quando la scheda è alimentata.
I led RX e TX sono semplici da interpretare: se la scheda sta trasmettendo sull’interfaccia
seriale allora il led TX lampeggia, il led SX si comporta analogamente in ricezione.
Il led denominato L, invece, è in serie sul pin 13 e si accende a comando.

TX led
Power

L led
RX led
LE PORTE : - Pin Digitali: da 0 a 13 ( quadrato rosso ) 0 (LOW) e 1 (HIGH)
- Pin Analogici: da 0 a 5 ( quadrato giallo/arancio ) da 0 a 1023
- Pin PWM: 3,5,6,9,10,11 ( quadrato verde ) da 0 a 255

PWM
PWM
Pulse Width Modulation

DIGITALI

ANALOGICHE
COMPONENTI ESTERNI Sensore di MOVIMENTO Sensore di VIBRAZIONI

Sensore di LIVELLO

Motore
passo-passo
Sensore di DISTANZA

Sensore di GAS
Sensore di TEMPERATURA
Sensore di POSIZIONE
Sensore di UMIDITA’ (GPS)
16 servi insieme
Accendiamo un led

• Apriamo e Carichiamo il programma «Blink»


da Esempi Arduino-Basics
• Carichiamo il pgm su Arduino
• Attendiamo e un piccolo led si accende

• Mettiamo un LED sulla porta 13 e riproviamo

LED :
• pin PIU LUNGO è +
• parte sporgente è +
Accendiamo un led
PROGRAMMA : Blink_Base
ISTRUZIONI BASE :

• commenti /*
This example code is in the public domain.
*/

// Pin 13 has an LED connected on most Arduino


boards.
// give it a name:

• fine riga sempre con ;

• ordine ogni sezione di istruzione si apre e si chiude con { }

• Maiuscole e minuscole sono sempre due cose diverse


STRUTTURA
Il codice di qualsiasi programma per Arduino è composto essenzialmente di 3 parti:

- inizio - Questo è il posto dove attribuiamo variabili, carichiamo librerie , settiamo


inizialmente i parametri, etc

- void setup() - Questo è il posto dove mettiamo il codice di inizializzazione. Inizializza


tutte le impostazioni e le istruzioni della scheda (gli INPUT e OUTPUT) prima che il ciclo
principale del programma si avvii. Ad ogni Reset viene eseguito una sola volta

- void loop() - E' il contenitore del codice principale del programma. Contiene una serie di
istruzioni che possono essere ripetute una dopo l'altra fino a quando non spegniamo la
scheda Arduino.
CONTENUTI
Nella scheda Arduino è inserita una serie predefinita di parole chiave con valori speciali.
HIGH e LOW sono usati per esempio quando si vuole accendere o spegnere un Pin di
Arduino. INPUT e OUTPUT sono usate per definire se uno specifico Pin deve essere un dato
di entrata o un dato di uscita. TRUE e FALSE indicano il rispettivo significato italiano: se
abbiamo un'istruzione, la condizione può essere vera o falsa.

VARIABILI
int - Contiene un numero compreso tra -32'768 e 32'767. E' il tipo di variabile più usata e
usa 2 byte di memoria.
float - Può memorizzare numeri con la virgola.
string - Un set di caratteri ASCII utilizzati per memorizzare informazioni di testo.
array - un elenco di variabili accessibili tramite un indice. Vengono utilizzate per creare
tabelle di valori facilmente accessibili.

FUNZIONE di tempo
delay(ms) - Mette in pausa il programma per un numero di millisecondi specificato.
delay(1000); //stoppa il programma per 1 secondo
FUNZIONI INPUT E OUTPUT, Arduino include funzioni per la gestione degli Input e degli
Output.

pinMode(pin,mode) - Riconfigura un pin digitale a comportarsi come uscita o come


entrata.
pinMode(13,INPUT); - imposta il pin 13 come Input.
pinMode(11,OUTPUT); - imposta il pin 11 come Output.

digitalWrite(pin,value) - imposta un pin digitale ad ON o a OFF.


digitalWrite(7,HIGH); - imposta come digitale il pin 7.

digitalRead(pin) - Legge lo stato di un input Pin, ritorna HIGH se il Pin riceve della tensione
oppure LOW se non c’è tensione applicata.
Valore=digitalRead(7); // legge il pin 7 dentro a valore
analogRead(pin) - Legge la tensione applicata a un ingresso analogico e ritorna un
numero tra 0 e 1023 che rappresenta le tensioni tra 0 e 5 V.
val=AnalogRead(0); // legge l’ingresso analogico 0 dentro a val

analogWrite(pin,value) - Cambia la frequenza PWM su uno dei pin segnati PWM,


• pin si può mettere 11 10 9 6 5 3,
• value invece può essere un valore da 0 a 255 che rappresenta la scala da 0 a 5 V.
analogWrite(9,128);

OPERATORI DI COMPARAZIONE, quando si specificano delle condizioni ci sono vari


operatori che tu puoi usare:
== Uguale a
> maggiore di
< minore di
!= diverso da
<= minore o uguale
>= maggiore o uguale

[Link]
Accendiamo un led sulla BREADBOARD - Blink PROGRAMMA : Blink_Base

void setup()
{ pinMode(13,OUTPUT);
}

void loop()
{ digitalWrite(13,HIGH);
delay(3000);
digitalWrite(13,LOW);
delay(3000);
}

RESISTENZA da 220 ohm


Accendiamo due led alternativamente PROGRAMMA : Due_Led_alternativamente

void setup() {
pinMode(9,OUTPUT);
pinMode(12,OUTPUT);
}

void loop() {
digitalWrite(9,HIGH);
digitalWrite(12,LOW);
delay(500);
digitalWrite(9,LOW);
digitalWrite(12,HIGH);
delay(500);
}

RESISTENZA da 220 ohm


Realizziamo un semaforo
PROGRAMMA : Semaforo

void setup() {
pinMode(13,OUTPUT); //Rosso
pinMode(11,OUTPUT); //Giallo
pinMode(9,OUTPUT); //Verde
}

void loop() {
digitalWrite(13,HIGH);
delay(8000);
digitalWrite(13,LOW);
digitalWrite(9,HIGH);
delay(8000);
digitalWrite(11,HIGH);
delay(2000);
digitalWrite(9,LOW);
digitalWrite(11,LOW);
}
RESISTENZA da 220 ohm
Altre istruzioni utili

STRUTTURE DI CONTROLLO Il linguaggio di Arduino include parole chiave per controllare


il progetto logico del nostro codice.
If…else - Permette di prendere delle decisioni all’interno del programma, ma deve essere
seguito da una domanda sotto forma di espressione tra parentesi. Se la domanda è vera
tutto ciò che segue verrà eseguito. Se falso verrà eseguito tutto il codice che segue else.
If è possibile usarlo senza usare necessariamente else. Esempio:
if (val==1) { digitalWrite (LED, HIGH) ; } // se (val=1) è vera esegue la
parentesi
OPERAZIONI ARITMETICHE Si può usare Arduino per compiere operazioni
matematiche complesse con una semplice sintassi: + e – indicano addizione e
sottrazione, * indica la moltiplicazione, e / la divisione.
C’è un operatore in più in questo linguaggio chiamato “Modulo” che è un comando che
restituisce il resto di una divisione. Esempio:
a=3+3; luminosità=((12*valore sensore)/4);
OPERATORI BOOLEANI Sono usati quando si vogliono combinare più condizioni, ad
esempio se vogliamo verificare se il valore di un sensore è tra 1 e 5 basta scrivere:
if (sensore= >1) && (sensore <=5);
Esistono tre tipi di operazioni booleane: &&(And), ||(Or), !(Not).
Aggiungiamo un Pulsante
PROGRAMMA : Led_con_Pulsante

int valore;

void setup()
{ pinMode(13,OUTPUT);
pinMode(11,INPUT); }

void loop()
{ valore=digitalRead(11);
if (valore==HIGH)
{ digitalWrite(13,HIGH); }
else
{ digitalWrite(13,LOW); }
}

RESISTENZA da 220 ohm


Aggiungiamo un Interruttore
int valore; PROGRAMMA : Led_con_interruttore
int inter=0;
void setup()
Stesso circuito di prima { pinMode(13,OUTPUT);
pinMode(11,INPUT); }

void loop()
{ valore=digitalRead(11);
if ((valore==HIGH) and (inter==0))
{ digitalWrite(13,HIGH);
inter=1;
delay(1000); }
else if ((valore==HIGH) and (inter==1))
{ digitalWrite(13,LOW);
inter=0;
delay(1000); }
}

NOTE : inter =0 SPENTO =1 ACCESO


Accendiamo un led e con potenziometro variamo la durata del lampeggio

PROGRAMMA : Led_con_potenziometro

int durata=0;

void setup() {
pinMode(13,OUTPUT);
}

void loop() {

durata=analogRead(3);

digitalWrite(13,HIGH);
delay(durata);

digitalWrite(13,LOW);
delay(durata);
}
Accendiamo un led e con potenziometro variamo la durata del lampeggio
e vediamo la lettura del potenziometro, ma prima vediamo come comunicare con il PC

COMUNICAZIONE SERIALE Queste sono le funzione seriali cioè quelle funzioni che
Arduino usa per comunicare tramite la porta Usb del nostro Pc.

[Link](speed) - Prepara Arduino a mandare e a ricevere dati tramite porta seriale.


Possiamo usare generalmente 9600 bits per secondo con la porta seriale dell’Arduino, ma
sono disponibili anche altre velocità, di solito non si supera i 115.200 bps.
[Link](9600); in setup
[Link](data); in Loop

[Link](data,codifica) - Invia alcuni dati alla porta seriale. La codifica è opzionale.

[Link](32); // stampa 32
[Link](32, DEC); // stampa 32 come sopra
Accendiamo un led e con potenziometro variamo la
durata del lampeggio ………………….
………..e vediamo la lettura del potenziometro

PROGRAMMA : Led_con_potenziometro_e_visualizzazione_valore

Stesso circuito di prima int durata=0;

void setup()
{ [Link](9600);
pinMode(13,OUTPUT);
}

void loop()
{ durata=analogRead(3);
[Link](durata);

digitalWrite(13,HIGH);
delay(durata);
digitalWrite(13,LOW);
delay(durata);
}
Misuriamo la temperatura PROGRAMMA :
Leggiamo_la_temperatura
int lettura;
float temperatura;

void setup() {
[Link](9600);
}

void loop() {
lettura = analogRead(A0);
temperatura = ((lettura * 5.0 / 1024.0)
- 0.4) / 0.0195;

[Link](lettura);
[Link](temperatura);
delay(500);
}

Potrebbero piacerti anche