ARDUINO
Colleghiamolo al PC/MAC - FUNZIONA?
DUE LED PREINSTALLATI
led L
è connesso al
pin13.
PWR
indica se l’alimentazione
c’è, e implicitamente se
la porta USB è corretta
ARDUINO
Composizione del codice - simile a Processing
int ledPin = 13;
Dichiarazione delle variabili
ledPin richiama il pin13, il nome è facoltativo
int ledPin = 13;
Dichiarazione delle variabili
void setup()
{
pinMode(ledPin, OUTPUT);
}
Settaggio parametri
ledPin richiama il pin13, il nome è facoltativo
dichiariamo che il pin13 sarà interpretato come
output
int ledPin = 13;
Dichiarazione delle variabili
void setup()
{
pinMode(ledPin, OUTPUT);
}
Settaggio parametri
void loop()
{
digitalWrite(ledPin, HIGH);}
Sequenza di azioni da eseguire
ledPin richiama il pin13, il nome è facoltativo
dichiariamo che il pin13 sarà interpretato come
output
scriviamo sul pin e diciamo che è acceso
ARDUINO
Accendere LED
DICHIARIAMO UNA VARIABILE
int ledPin = 13;
ledPin è il nome della varibile, può essere un qualsiasi nome.
13 è il numero del pin sulla scheda Arduino che andremo a
leggere o a scrivere...
IN CHE MODO FUNZIONERÀ IL PIN?
void setup()
{
pinMode(ledPin, OUTPUT);
}
Dichiariamo in che modo interepretiamo il Pin.
In questo caso il pin 13 sarà un pin OUTPUT.
Il led hanno due piedini uno più lungo dell’altro...
la loro posizione sull’arduino e fissa:
quello più corto va all’interno del pin denominato
GND, cioè la messa a terra, e l’altro all’interno del
pin dichiarato come output.
AZIONI DA FARE
void loop()
{
digitalWrite(ledPin, HIGH);
}
Sul pin dichiarato possiamo o scrivere (write) o leggere
(read).
In questo caso scriviamo sul pin 13 dicendo di accendere,
HIGH.
il piedino più corto va inserito all’interno del
pin denominato GND, cioè la messa a terra
..il secondo all’interno del pin 13
TRASFERIRE IL CODICE ALLA BOARD
‣Colleghiamo la scheda Arduino al MAC/PC con il cavo
USB in dotazione
‣Clichiamo il pulsante sulla board
‣Clicchiamo il pulsante sulla IDE
ARDUINO
Accensione LED intermittente
IMPOSTIAMO IL PIN
int ledPin = 13;
void setup()
{
pinMode(ledPin, OUTPUT);
}
Come per il led precedente dichiariamo il pin che sarà
OUTPUT.
AZIONI DA FARE
void loop()
{
digitalWrite(ledPin, HIGH);
delay(1000);
digitalWrite(ledPin, LOW);
delay(1000);
}
Prima azione scriviamo sul pin che sarà acceso, HIGH, e
dichiariamo un ritardo di 1000 millisecondi, cioè un secondo.
Seconda azione scriaviamo sullo stesso pin lo spegnimento
del led, LOW, con un ritardo di un secondo.
ARDUINO
Accensione LED intermittenti
Collegare due led alla board e farli lampeggiare
SOLUZIONE
int ledPin = 13;
int ledPin1 = 10;
int interval = 100;
int interval1 = 150;
void setup()
{
pinMode(ledPin, OUTPUT);
}
void loop()
{
digitalWrite(ledPin, HIGH);
digitalWrite(ledPin1, LOW);
delay(interval);
delay(interval1);
}
digitalWrite(ledPin, LOW);
digitalWrite(ledPin1, HIGH);
delay(interval);
delay(interval1);
PROCESSING + ARDUINO
Accensione LED con il click della tastiera
Clicco ‘a’, si accende il led 1
Clicco ‘d’, si spegne il led 1
Clicco ‘c’, si accende il led 2
Clicco ‘b’, si spegne il led 2
TABELLA CODICI ASCII
Da considerare solo i codici decimali, Dec.
I CODICI CHE USEREMO
a - 97
d - 100
c - 99
b - 98
Processing riceve il comando dalla
tastiera e lo invia ad Arduino
Arduino riceve il codice decimale
della tastiera, e scrive sul PIN accende il LED
- CODICE
import processing.serial.*;
Serial myPort;
Importiamo la libreria “serial”.
Serve per la lettura e lo scambio di byte attraverso
le porte seriali.
void setup(){
println(Serial.list());
myPort = new Serial(this, Serial.list()[1],
9600);}
Impostiamo la porta seriale, e stampiamo l’elenco
delle porte.
void draw(){
if(keyPressed){
if(key=='a'){
myPort.write(65);
}
else{
if(key=='d'){
myPort.write(97);
}
}
if(key=='c'){
myPort.write(98);}
else{
if(key=='b'){myPort.write(118);}}
}}
se clicco ‘a’ scrivimi sulla porta il numero ’65’,
altrimenti se clicco ‘d’ scrivimi sulla porta il
numero ’97’.
se clicco ‘c’ scrivimi sulla porta il numero ’98’,
altrimenti se clicco ‘b’ scrivmimi sull aporta il
numero ‘118’.
- CODICE
int ledPin = 13;
int ledPin1 = 10;
int val = 0;
void setup(){
pinMode(ledPin, OUTPUT);
pinMode(ledPin1, OUTPUT);
Serial.begin(9600);
}
void loop(){
val=Serial.read();
if(val =='a'){
digitalWrite(ledPin, HIGH);
}
if(val=='d'){
digitalWrite(ledPin, LOW);
}
if(val=='c'){
digitalWrite(ledPin1, HIGH);
}
if(val=='b'){digitalWrite(ledPin1,
LOW);}
}
Impostiamo i PIN che useremo e una variabile,
chiamata ‘val’ = 0
Dichiariamo che i due PIN scelti saranno usati
come OUTPUT, e impostiamo la porta USB.
Il valore della variabile ‘val’ sarà uguale alla lettura
della porta seriale.
se il valore è ‘a’ il pin1 è aperto, se il valore è ‘d’
il pin1 è spento. se il valore è ‘c’ il pin2 è aperto,
se il vaolre è ‘b’ il pin2 è spento.
PROGETTO FINALE
Homebrew Wii
I piedini A e C sono sempre
connessi fra loro, così come i
piedini B e D, mentre se il
pulsante viene premuto, sono
connessi tra loro tutti i piedini
Colleghiamo il piedino A alla terra (GND).
Il piedino B lo colleghiamo prima ad una resistenza
poi al PIN 5V.
Colleghiamo sempre il piedino B al PIN2 che
riceverà il segnale che il pulsante è stato premuto.
Resistenza da 2.2 KOhm
Scarica

ARDUINO - NABA