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 ledpin richiama il pin13, il nome è facoltativo void setup() { pinmode(ledpin, OUTPUT); } Settaggio parametri dichiariamo che il pin13 sarà interpretato come output
int ledpin = 13; Dichiarazione delle variabili ledpin richiama il pin13, il nome è facoltativo void setup() { pinmode(ledpin, OUTPUT); } Settaggio parametri dichiariamo che il pin13 sarà interpretato come output void loop() { digitalwrite(ledpin, HIGH);} Sequenza di azioni da eseguire 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; void setup(){ println(serial.list()); myport = new Serial(this, Serial.list()[1], 9600);} 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);}} }} Importiamo la libreria serial. Serve per la lettura e lo scambio di byte attraverso le porte seriali. Impostiamo la porta seriale, e stampiamo l elenco delle porte. 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