Arduino - il mio primo sketch

44
Il mio primo sketch

description

Una presentazione orientata a quanti hanno bisogno di avere una panoramica iniziale della piattaforma arduino con un approccio alla "prima faccio, poi torno su quello che ho fatto e capisco meglio" ;)

Transcript of Arduino - il mio primo sketch

Page 1: Arduino - il mio primo sketch

Il mio primo sketch

Page 2: Arduino - il mio primo sketch

Il mio primo sketch

Eugenio Pombifreelance web developer

@euxpom

Jacopo Diamantistudente, astrofisico

@jacdiam

Page 3: Arduino - il mio primo sketch
Page 4: Arduino - il mio primo sketch

Cos'è arduino?

"framework open source per la prototipazione rapida e l'apprendimento veloce"

Wikipedia

Page 5: Arduino - il mio primo sketch
Page 6: Arduino - il mio primo sketch

Panoramica

Page 7: Arduino - il mio primo sketch
Page 8: Arduino - il mio primo sketch

Installazione IDE sviluppohttp://arduino.cc

Page 9: Arduino - il mio primo sketch

scaricate gli sketch

http://nerd2business.net/arduino.zip

Page 10: Arduino - il mio primo sketch
Page 11: Arduino - il mio primo sketch

La breadboard

Page 12: Arduino - il mio primo sketch

Primo circuito: il diodo LED

Occorrente:

4 Cavetti1 diodo LED1 resistenza da 220 Ohm (rosso-rosso-marrone)

Page 13: Arduino - il mio primo sketch

Primo circuito: il diodo LED-Il piedino più lungo del LED è il polo positivo;

-La resistenza è chiamata resistenza di pull-up.

-La resistenza di pull-up serve a limitare la corrente che scorre nel LED. Si può calcolare con la legge di Ohm...

-Per adesso montiamo il circuito, e poi facciamo un pò di teoria!

Page 14: Arduino - il mio primo sketch

Come scelgo la resistenza?ROSSO: 1.8 Volt GIALLO: 1.9 Vol ARANCIO: 2.0 VoltVERDE: 2.0 Volt BLU: 3.5 Volt AZZURRO: 3.0 Volt

(grazie a elettronicaincorso.it/ per i valori)

Un LED può sopportare al massimo una corrente che va dai 10 ai 30 mA circa.Per non fornire troppa corrente al LED, e quindi per non bruciarlo, scegliamo una resistenza opportuna usando la Legge di Ohm.

R (Ohm) = V (Volt) / I (Ampère)

Esempio con un LED rosso:1- Per trovare V, sottraggo alla tensione di alimentazione (5v) quella di funzionamento del LED V = 5v - 1,8v = 3,2v

2- Divido il valore trovato per la corrente che può sopportare il LED (per sicurezza 15 mA, ovvero 0,015A)

R = 3,2v / 0,015A = 213 Ohm

Page 15: Arduino - il mio primo sketch

Il codice

Page 16: Arduino - il mio primo sketch

I commenti

//commento su una sola riga

/* commento

che occupa

più righe */

Page 17: Arduino - il mio primo sketch

Blocchi di codicevoid setup() {

// initialize the digital pin as an output.

pinMode(led, OUTPUT);

}

void passamiIlSale() {

allungaBraccio("destro");

afferra("sale");

passa("sale", "eugenio");

}

Page 18: Arduino - il mio primo sketch

blocchi minimi

setup () {

[...]

}

loop () {

[...]

}

Page 19: Arduino - il mio primo sketch

variabili

int led = 13;

tipo nomeVariabile = valore;

Page 20: Arduino - il mio primo sketch

pinMode

pinMode(led, OUTPUT);

nomeFunzione(argomento1, argomento2...);

pinMode(qualePin, Modalità);

Page 21: Arduino - il mio primo sketch

digitalWrite

digitalWrite(led, HIGH);

digitalWrite(qualePin, Modalità);

Page 22: Arduino - il mio primo sketch

delay

delay(1000);

delay(milliseconds);

Page 23: Arduino - il mio primo sketch

loop

void loop() {

digitalWrite(led, HIGH);

delay(1000);

digitalWrite(led, LOW);

delay(1000);

}

Page 24: Arduino - il mio primo sketch

Esercizio 1

Fate in modo che il led rimanga acceso per un secondo e mezzo e poi si spenga per mezzo secondo

Page 25: Arduino - il mio primo sketch

Esercizio 2

Fate in modo che il led sia attaccato al pin 12 di arduino anziché il 13

Page 26: Arduino - il mio primo sketch

Secondo circuito: due diodi LED

Occorrente:

6 Cavetti;2 diodi LED;2 resistenze da 220 Ohm (rosso-rosso-marrone)

Page 27: Arduino - il mio primo sketch

Secondo circuito: 2 diodi LED-Il piedino più lungo del LED è il polo positivo;-La resistenza è chiamata resistenza di pull-up.

Page 28: Arduino - il mio primo sketch

DoubleLed.inoint led1 = 13;

int led2 = 5;

void setup() {

pinMode(led1, OUTPUT);

pinMode(led2, OUTPUT);

}

[...]

prima parte

Page 29: Arduino - il mio primo sketch

DoubleLed.ino[...]

void loop() {

digitalWrite(led1, HIGH);

delay(1000);

digitalWrite(led1, LOW);

digitalWrite(led2, HIGH);

delay(1000);

digitalWrite(led2, LOW);

}

seconda parte

Page 30: Arduino - il mio primo sketch

Terzo circuito: diodo LED e pulsante

Occorrente:

7 Cavetti;1 diodo LED;1 pulsante;1 resistenza da 220 Ohm (rosso-rosso-marrone); 1 resistenza da 10 KOhm (marrone-nero-arancio).

Page 31: Arduino - il mio primo sketch

Terzo circuito: diodo LED e pulsante-Il piedino più lungo del LED è il polo positivo;

-Quando il pulsante non è premuto, il pin digitale sarà collegato a terra tramite la resistenza di pull-down, quindi rivelerà un segnale di tipo LOW (0v).

-Se premo il pulsante, il pin verrà collegato direttamente alla tensione di alimentazione e rivelerà un segnale di tipo HIGH (5v).

-In base al tipo di segnale rivelato, Arduino può essere programmato per fare delle azioni, come ad esempio accendere il nostro LED.

Page 32: Arduino - il mio primo sketch

LedButton.inoint led = 13;

int button = 2;

int val;

void setup() {

pinMode(led, OUTPUT);

pinMode(button, INPUT);

}

[...]

prima parte

Page 33: Arduino - il mio primo sketch

LedButton.ino[...]

void loop() {

val = digitalRead(button);

if (val == HIGH) {

digitalWrite(led, HIGH);

} else {

digitalWrite(led, LOW);

}

}

seconda parte

Page 34: Arduino - il mio primo sketch

Quarto circuito: diodo LED e fotoresistenza.

Occorrente:

7 Cavetti;1 diodo LED;1 fotoresistenza;1 resistenza da 220 Ohm (rosso-rosso-marrone); 1 resistenza da 10 KOhm (marrone-nero-arancio).

Page 35: Arduino - il mio primo sketch

Quarto circuito: diodo LED e fotoresistenza.

-Ai capi della fotoresistenza troveremo una tensione variabile, che ci può dire quanta luce c'è nella stanza.

-Come si fa a misurare una tensione che non dà un segnale di tipo HIGH (5v) o LOW (0v)......ma 2,3v o 3,56v oppure 4,12v?

UTILIZZIAMO I PIN ANALOGICI!

I pin analogici restituiscono un valore che va da 0 a 1023.

tensione = valore x 0,005v

Page 36: Arduino - il mio primo sketch

LedPhoto1.ino

int luce = 0;

int val;

void setup() {

Serial.begin(9600);

}

[...]

prima parte

Page 37: Arduino - il mio primo sketch

LedPhoto1.inoint luce = 0;

int val;

void setup() {

Serial.begin(9600);

}

void loop() {

val = analogRead(luce);

Serial.println(val);

delay(500);

} Tools -> Serial Monitor

seconda parte

Page 38: Arduino - il mio primo sketch

LedPhoto2.inoint luce = 0;

int val;

int led = 13;

void setup() {

Serial.begin(9600);

pinMode(led, OUTPUT);

}

prima parte

Page 39: Arduino - il mio primo sketch

LedPhoto2.inovoid loop() {

val = analogRead(luce); //da 0 a 1023

Serial.println(val);

if(val < 200){

digitalWrite(led, HIGH);

Serial.println("poca luce: accendo il led!");

} else {

digitalWrite(led, LOW);

Serial.println("molta luce: spengo il led!");

}

Serial.println("");

delay(500);

}

seconda parte

Page 40: Arduino - il mio primo sketch

Quinto circuito: sensore di temperatura LM35.

Occorrente:

5 Cavetti;1 LM35

Page 41: Arduino - il mio primo sketch

Quinto circuito: sensore di temperatura LM35.

Il nostro primo vero sensore!

-LM35 è un sensore di temperatura LINEARE.

-LM35 ci dà in output una tensione proporzionale alla temperatura secondo questa formuletta:

temperatura = tensione x 100

-Questo vuol dire che per usare la formuletta dobbiamo prima convertire il valore analogico in una tensione usando la relazione di prima:

tensione = valore x 0,005v

Page 42: Arduino - il mio primo sketch

LM35.ino

int temp;

int val;

int sensor = 0;

void setup() {

Serial.begin(9600);

}

[...]

prima parte

Page 43: Arduino - il mio primo sketch

LM35.inovoid loop() {

//Leggo il sensore e applico la formuletta

val = analogRead(sensor);

temp = (5./1024.) * val * 100.;

Serial.print("Temperatura: ");

Serial.print(temp);

Serial.println(" gradi.");

Serial.println("");

delay(500);

}

seconda parte

Page 44: Arduino - il mio primo sketch

Aiuto!

Arduino User Group Roma

su

Google Groups