SlideShare uma empresa Scribd logo
1 de 36
Baixar para ler offline
ELECTRONICS LAB [WITH ARDUINO]
Daniele Costarella
Teatro Carlo Gesualdo / Casina Del Principe – Avellino – 28 > 31 agosto 2013
Salvatore Carotenuto
>>> DAY #2
Rights to copy
Electronics LAB [with Arduino]28 > 31 agosto 2013 2
Attribution – ShareAlike 3.0 Unported
You are free:
● to Share - to copy, distribute and transmit the work
● to Remix – to adapt the work
Under the following conditions:
Attribution – You must attribute the work in the manner
specified by the authors.
Share Alike – If you alter, transform, or build upon this
work, you may distribute the resulting work only under the
same or similar license to this one.
Your fair use and other rights are in no way affected by the above.
To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/.
Il programma di oggi
La tecnica PWM:
●
controllo di LED;
●
controllo di piccoli carichi;
Effetti luminosi:
●
LED fading;
●
i LED RGB;
●
sequence generators;
3Electronics LAB [with Arduino]28 > 31 agosto 2013
La tecnica PWM
28 > 31 agosto 2013 Electronics LAB [with Arduino] 4
Rimontiamo il seguente circuito:
La tecnica PWM
28 > 31 agosto 2013 Electronics LAB [with Arduino] 5
Cosa succede se facciamo lampeggiare molto velocemente il LED?
// Modulazione di larghezza di impulso (PWM)
#define LED 13 // LED sul pin 13
void setup()
{
pinMode(LED, OUTPUT); // imposta il pin come output
}
void loop()
{
digitalWrite(LED, HIGH); // accende il LED
delay(10); // aspetta 10 millisecondi
digitalWrite(LED, LOW); // spegne il LED
delay(10); // aspetta 10 millisecondi
}
La tecnica PWM
28 > 31 agosto 2013 Electronics LAB [with Arduino] 6
Il duty cycle
Periodo
TON
TOFF
Tempo
Ampiezza
La tecnica PWM
28 > 31 agosto 2013 Electronics LAB [with Arduino] 7
Il duty cycle
Duty Cycle 50%
Duty Cycle 75%
Duty Cycle 25%
La tecnica PWM
28 > 31 agosto 2013 Electronics LAB [with Arduino] 8
Facciamo alcuni esperimenti
1. 10ms acceso e 10ms spento
2. 5 ms acceso e 15ms spento
3. 75 ms acceso e 5ms spento
La tecnica PWM
28 > 31 agosto 2013 Electronics LAB [with Arduino] 9
I pin PWM dedicati
il PWM è una tecnica per ottenere risultati analogici con mezzi digitali
Funzione Spiegazione
analogWrite(pin, valore)
Scrive un valore analogico (una forma
d'onda PWM) sul pin passato come
parametro.
Parametri:
pin: il pin da usare
valore: compreso tra 0 (sempre
spento) e 255 (sempre acceso)
La tecnica PWM
28 > 31 agosto 2013 Electronics LAB [with Arduino] 10
Il duty cycle
Duty Cycle 50% - analogWrite(pin, 128)
Duty Cycle 75% - analogWrite(pin, 192)
Duty Cycle 25% - analogWrite(pin, 64)
La tecnica PWM
28 > 31 agosto 2013 Electronics LAB [with Arduino] 11
Il nuovo circuito: utilizziamo i pin PWM dedicati
La tecnica PWM
28 > 31 agosto 2013 Electronics LAB [with Arduino] 12
Cosa succede se facciamo lampeggiare molto velocemente il LED?
// Modulazione di larghezza di impulso (PWM)
#define LED 9 // LED sul pin 9 (PWM)
void setup()
{
pinMode(LED, OUTPUT); // imposta il pin come output
}
void loop()
{
analogWrite(LED, 128); // duty cycle al 50%
}
La tecnica PWM
28 > 31 agosto 2013 Electronics LAB [with Arduino] 13
Facciamo alcuni esperimenti, ora però con i pin dedicati
1. LED acceso allo 0%;
2. LED acceso al 25%;
3. LED acceso al 50%;
4. LED acceso al 75%;
5. LED acceso al 100%;
La tecnica PWM
28 > 31 agosto 2013 Electronics LAB [with Arduino] 14
Solo per i LED?
La tecnica PWM
28 > 31 agosto 2013 Electronics LAB [with Arduino] 15
Esempio: controlliamo un motore
La tecnica PWM
28 > 31 agosto 2013 Electronics LAB [with Arduino] 16
Transistor
● Il motore DC utilizza più potenza di
quella che Arduino è in grado di
erogare.
● Se connettiamo il motore
direttamente ai pin di Arduino,
rischiamo di danneggiare la scheda.
● Utilizziamo, allora, un piccolo
transistor (Es. PN2222) come switch
che, utilizzando una piccola corrente
da Arduino è in grado di pilotare
correnti più elevate (motore).
La tecnica PWM
28 > 31 agosto 2013 Electronics LAB [with Arduino] 17
Transistor
● Il transistor ha tre terminali. La
maggior parte della corrente fluisce
dal Collettore all'Emettitore. Ciò
avviene se “accendiamo” il transistor,
ossia se facciamo fluire una corrente
nella Base.
● Il resistore connesso a D3 limita la
corrente di Base. Se connettiamo il
motore direttamente ai pin di Arduino,
rischiamo di danneggiare la scheda.
● Il diodo è inserito per la protezione del
circuito.
La tecnica PWM
28 > 31 agosto 2013 Electronics LAB [with Arduino] 18
Esempio 1: rampa
// Modulazione di larghezza di impulso (PWM)
#define MOTOR 3 // controllo motore sul pin 3
void setup()
{
pinMode(MOTOR, OUTPUT); // imposta il pin come output
}
void loop()
{
analogWrite(MOTOR, 64); // motore al 25%
delay(1000); // aspetta 1 secondo
analogWrite(MOTOR, 128); // motore al 50%
delay(1000); // aspetta 1 secondo
analogWrite(MOTOR, 192); // motore al 75%
delay(1000); // aspetta 1 secondo
analogWrite(MOTOR, 255); // motore al 100%
delay(1000); // aspetta 1 secondo
}
La tecnica PWM
28 > 31 agosto 2013 Electronics LAB [with Arduino] 19
Esempio 2: variamo la velocità manualmente
// Esempio 2: DC Motor
int motorPin = 3;
void setup()
{
pinMode(motorPin, OUTPUT);
Serial.begin(9600);
while (! Serial);
Serial.println("Velocità [da 0 a 255]: ");
}
void loop()
{
if (Serial.available())
{
int speed = Serial.parseInt();
if (speed >= 0 && speed <= 255)
{
analogWrite(motorPin, speed);
}
}
}
Elementi di programmazione
28 > 31 agosto 2013 Electronics LAB [with Arduino] 20
Il ciclo for
Simbolo Spiegazione
for (valore_iniziale, test,
incremento)
{
// …
< codice da ripetere >
// …
}
Esegue un blocco di codice per un
certo numero di volte, ossia finchè la
condizione test è vera.
for (i = 0; i<100; i++)
{
// …
< codice da ripetere >
// …
}
Esempio: esegue un blocco di codice
per 100 volte
Giochi di luce
28 > 31 agosto 2013 Electronics LAB [with Arduino] 21
LED fading
#define LED 9 // LED collegato al pin 9
int fadeValue = 0; // valore del fade
void setup()
{
pinMode(LED, OUTPUT); // imposta il pin come output
}
void loop()
{
// esegue un ciclo da 0 a 254 (fade in)
for (fadeValue = 0 ; fadeValue < 255; fadeValue++)
{
//impostiamo la luminosità del LED
analogWrite(LED, fadeValue);
delay(10);
}
//
// esegue un ciclo da 255 a 1 (fade out)
for(fadeValue = 255 ; fadeValue > 0; fadeValue--)
{
//impostiamo la luminosità del LED
analogWrite(LED, fadeValue);
delay(10);
}
}
Giochi di luce
28 > 31 agosto 2013 Electronics LAB [with Arduino] 22
LED fading
#define LED 9 // LED collegato al pin 9
int fadeValue = 0; // valore del fade
void setup()
{
pinMode(LED, OUTPUT); // imposta il pin come output
}
void loop()
{
// esegue un ciclo da 0 a 254 (fade in)
for (fadeValue = 0 ; fadeValue < 255; fadeValue++)
{
//impostiamo la luminosità del LED
analogWrite(LED, fadeValue);
delay(10);
}
//
// esegue un ciclo da 255 a 1 (fade out)
for(fadeValue = 255 ; fadeValue > 0; fadeValue--)
{
//impostiamo la luminosità del LED
analogWrite(LED, fadeValue);
delay(10);
}
}
Giochi di luce
28 > 31 agosto 2013 Electronics LAB [with Arduino] 23
LED RGB
Giochi di luce
28 > 31 agosto 2013 Electronics LAB [with Arduino] 24
LED RGB: montiamo il circuito
Giochi di luce
28 > 31 agosto 2013 Electronics LAB [with Arduino] 25
LED RGB: lo sketch
//Flussi 2013 DAY 2: RGB LED
int redPin = 11;
int greenPin = 10;
int bluePin = 9;
void setup()
{
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
}
void loop()
{
setColor(255, 0, 0); // red
delay(1000);
setColor(0, 255, 0); // green
delay(1000);
setColor(0, 0, 255); // blue
delay(1000);
setColor(255, 255, 0); // yellow
delay(1000);
setColor(80, 0, 80); // purple
delay(1000);
setColor(0, 255, 255); // aqua
delay(1000);
}
Giochi di luce
28 > 31 agosto 2013 Electronics LAB [with Arduino] 26
LED RGB: lo sketch
// continua
void setColor(int red, int green, int blue)
{
analogWrite(redPin, red);
analogWrite(greenPin, green);
analogWrite(bluePin, blue);
}
Giochi di luce
28 > 31 agosto 2013 Electronics LAB [with Arduino] 27
LED RGB: cose da fare
● Variare il ritardo
● Altri effetti di luce (YouTube, Google)
Giochi di luce
28 > 31 agosto 2013 Electronics LAB [with Arduino] 28
LED chaser
Giochi di luce
28 > 31 agosto 2013 Electronics LAB [with Arduino] 29
LED chaser: lo sketch
int LED1 = 12;
int LED2 = 11;
int LED3 = 10;
int LED4 = 9;
int LED5 = 8;
void setup()
{
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(LED4, OUTPUT);
pinMode(LED5, OUTPUT);
}
Giochi di luce
28 > 31 agosto 2013 Electronics LAB [with Arduino] 30
LED chaser: lo sketch
void loop()
{
digitalWrite(LED1,HIGH);
delay(100);
digitalWrite(LED1,LOW);
delay(25);
digitalWrite(LED2,HIGH);
delay(100);
digitalWrite(LED2,LOW);
delay(25);
digitalWrite(LED3,HIGH);
delay(100);
digitalWrite(LED3,LOW);
delay(25);
digitalWrite(LED4,HIGH);
delay(100);
digitalWrite(LED4,LOW);
delay(25);
digitalWrite(LED5, HIGH);
delay(100);
digitalWrite(LED5, LOW);
delay(25);
}
Giochi di luce
28 > 31 agosto 2013 Electronics LAB [with Arduino] 31
LED chaser: cose da fare
● Variare il ritardo
● Pilotare più LED
● Largo alla fantasia!
Giochi di luce
28 > 31 agosto 2013 Electronics LAB [with Arduino] 32
Pilotare più LED: meglio usare uno Shift Register
Giochi di luce
28 > 31 agosto 2013 Electronics LAB [with Arduino] 33
Pilotare più LED: lo Shift Register 74HC595
●
Si può pensare allo Shift Register
come un oggetto in grado di
conservare 8 bit in memoria
●
Per scrivere tali valori utilizziamo i
pin Data e Clock del chip
Giochi di luce
28 > 31 agosto 2013 Electronics LAB [with Arduino] 34
Pilotare più LED: meglio usare uno Shift Register
/*
Flussi 2013 DAY 2: 8 LED e uno Shift Register
*/
int latchPin = 5;
int clockPin = 6;
int dataPin = 4;
byte leds = 0;
void setup()
{
pinMode(latchPin, OUTPUT);
pinMode(dataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
}
Giochi di luce
28 > 31 agosto 2013 Electronics LAB [with Arduino] 35
Pilotare più LED: meglio usare uno Shift Register
void loop()
{
leds = 0;
updateShiftRegister();
delay(500);
for (int i = 0; i < 8; i++)
{
bitSet(leds, i);
updateShiftRegister();
delay(500);
}
}
void updateShiftRegister()
{
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, leds);
digitalWrite(latchPin, HIGH);
}
FINE... PER OGGI

Mais conteúdo relacionado

Mais procurados

Corso Arduino Base - MUST
Corso Arduino Base - MUSTCorso Arduino Base - MUST
Corso Arduino Base - MUSTOPS Italia
 
Lezione 4 arduino - corso 20 ore
Lezione 4 arduino - corso 20 oreLezione 4 arduino - corso 20 ore
Lezione 4 arduino - corso 20 oreMirko Mancin
 
Lezione 2 arduino - corso 20 ore
Lezione 2 arduino - corso 20 oreLezione 2 arduino - corso 20 ore
Lezione 2 arduino - corso 20 oreMirko Mancin
 
Alfabeto di Arduino - lezione 5
Alfabeto di Arduino - lezione 5Alfabeto di Arduino - lezione 5
Alfabeto di Arduino - lezione 5Michele Maffucci
 
Arduino basic workshop
Arduino basic workshopArduino basic workshop
Arduino basic workshopDaniele Iori
 
Presentazione Arduino
Presentazione ArduinoPresentazione Arduino
Presentazione ArduinoAntonio Serra
 
Corso Arduino Base - Basi Pratiche con Arduino Genuino
Corso Arduino Base - Basi Pratiche con Arduino GenuinoCorso Arduino Base - Basi Pratiche con Arduino Genuino
Corso Arduino Base - Basi Pratiche con Arduino GenuinoMauro Alfieri
 
Arduino - il mio primo sketch
Arduino - il mio primo sketchArduino - il mio primo sketch
Arduino - il mio primo sketcheugenio pombi
 
Intro to Arduino
Intro to ArduinoIntro to Arduino
Intro to ArduinotrevisoAUG
 
Introduzione a Arduino
Introduzione a ArduinoIntroduzione a Arduino
Introduzione a ArduinoPietro Aiuola
 
Arduino lezione 01 - a.s 2010-2011
Arduino lezione 01 - a.s 2010-2011Arduino lezione 01 - a.s 2010-2011
Arduino lezione 01 - a.s 2010-2011Michele Maffucci
 
Alfabeto di arduino - lezione 4
Alfabeto di arduino - lezione 4Alfabeto di arduino - lezione 4
Alfabeto di arduino - lezione 4Michele Maffucci
 
Alfabeto di Arduino - lezione 6
Alfabeto di Arduino - lezione 6Alfabeto di Arduino - lezione 6
Alfabeto di Arduino - lezione 6Michele Maffucci
 
Workshop Arduino by Fiore Basile
Workshop Arduino by Fiore BasileWorkshop Arduino by Fiore Basile
Workshop Arduino by Fiore BasileCommit University
 
Alfabeto di Arduino - lezione 1
Alfabeto di Arduino - lezione 1Alfabeto di Arduino - lezione 1
Alfabeto di Arduino - lezione 1Michele Maffucci
 

Mais procurados (18)

Corso Arduino Base - MUST
Corso Arduino Base - MUSTCorso Arduino Base - MUST
Corso Arduino Base - MUST
 
Lezione 4 arduino - corso 20 ore
Lezione 4 arduino - corso 20 oreLezione 4 arduino - corso 20 ore
Lezione 4 arduino - corso 20 ore
 
Lezione 2 arduino - corso 20 ore
Lezione 2 arduino - corso 20 oreLezione 2 arduino - corso 20 ore
Lezione 2 arduino - corso 20 ore
 
Alfabeto di Arduino - lezione 5
Alfabeto di Arduino - lezione 5Alfabeto di Arduino - lezione 5
Alfabeto di Arduino - lezione 5
 
Arduino basic workshop
Arduino basic workshopArduino basic workshop
Arduino basic workshop
 
Presentazione Arduino
Presentazione ArduinoPresentazione Arduino
Presentazione Arduino
 
Corso Arduino Base - Basi Pratiche con Arduino Genuino
Corso Arduino Base - Basi Pratiche con Arduino GenuinoCorso Arduino Base - Basi Pratiche con Arduino Genuino
Corso Arduino Base - Basi Pratiche con Arduino Genuino
 
Introduzione ad Arduino del Maker DevLab
Introduzione ad Arduino del Maker DevLabIntroduzione ad Arduino del Maker DevLab
Introduzione ad Arduino del Maker DevLab
 
Arduino - il mio primo sketch
Arduino - il mio primo sketchArduino - il mio primo sketch
Arduino - il mio primo sketch
 
Arduino&Raspberry
Arduino&RaspberryArduino&Raspberry
Arduino&Raspberry
 
Intro to Arduino
Intro to ArduinoIntro to Arduino
Intro to Arduino
 
Introduzione a Arduino
Introduzione a ArduinoIntroduzione a Arduino
Introduzione a Arduino
 
Arduino lezione 01 - a.s 2010-2011
Arduino lezione 01 - a.s 2010-2011Arduino lezione 01 - a.s 2010-2011
Arduino lezione 01 - a.s 2010-2011
 
Alfabeto di arduino - lezione 4
Alfabeto di arduino - lezione 4Alfabeto di arduino - lezione 4
Alfabeto di arduino - lezione 4
 
Alfabeto di Arduino - lezione 6
Alfabeto di Arduino - lezione 6Alfabeto di Arduino - lezione 6
Alfabeto di Arduino - lezione 6
 
Workshop Arduino by Fiore Basile
Workshop Arduino by Fiore BasileWorkshop Arduino by Fiore Basile
Workshop Arduino by Fiore Basile
 
Alfabeto di Arduino - lezione 1
Alfabeto di Arduino - lezione 1Alfabeto di Arduino - lezione 1
Alfabeto di Arduino - lezione 1
 
Arduino base
Arduino baseArduino base
Arduino base
 

Destaque

Introduzione all'alfabetizzazione informatica
Introduzione all'alfabetizzazione informaticaIntroduzione all'alfabetizzazione informatica
Introduzione all'alfabetizzazione informaticaSilvio Grosso
 
Electronics LAB [with Arduino] | DAY 3
Electronics LAB [with Arduino] | DAY 3Electronics LAB [with Arduino] | DAY 3
Electronics LAB [with Arduino] | DAY 3Salvatore Carotenuto
 
Concetti Di Base Di Informatica
Concetti Di Base Di InformaticaConcetti Di Base Di Informatica
Concetti Di Base Di InformaticaFrancesco Caliulo
 
MODULO OD1: Gli Open data, cosa sono e a cosa servono
MODULO OD1: Gli Open data, cosa sono e a cosa servonoMODULO OD1: Gli Open data, cosa sono e a cosa servono
MODULO OD1: Gli Open data, cosa sono e a cosa servonoFrancesco Ciclosi
 
MODULO 00 - Presentazione del corso
MODULO 00 - Presentazione del corsoMODULO 00 - Presentazione del corso
MODULO 00 - Presentazione del corsoFrancesco Ciclosi
 
MODULO OD2: Breve storia degli Open Data da Tim Barners Lee a Monti passando ...
MODULO OD2: Breve storia degli Open Data da Tim Barners Lee a Monti passando ...MODULO OD2: Breve storia degli Open Data da Tim Barners Lee a Monti passando ...
MODULO OD2: Breve storia degli Open Data da Tim Barners Lee a Monti passando ...Francesco Ciclosi
 
Laboratorio eventi e turismo 2012 presentazione
Laboratorio eventi e turismo 2012  presentazioneLaboratorio eventi e turismo 2012  presentazione
Laboratorio eventi e turismo 2012 presentazioneAnnaPedroncelli
 
Esperienze ed utilizzo degli Open Data
Esperienze ed utilizzo degli Open DataEsperienze ed utilizzo degli Open Data
Esperienze ed utilizzo degli Open DataVincenzo Patruno
 
MODULO OD4: Un esempio di utilizzo degli Open Data
MODULO OD4: Un esempio di utilizzo degli Open DataMODULO OD4: Un esempio di utilizzo degli Open Data
MODULO OD4: Un esempio di utilizzo degli Open DataFrancesco Ciclosi
 
Arduino and Linux / hardware & software openSource together
Arduino and Linux / hardware & software openSource togetherArduino and Linux / hardware & software openSource together
Arduino and Linux / hardware & software openSource togetherDavide Gomba
 
Indirizzo elettrotecnica ed elettronica Corso Serale
Indirizzo elettrotecnica ed elettronica Corso SeraleIndirizzo elettrotecnica ed elettronica Corso Serale
Indirizzo elettrotecnica ed elettronica Corso Seralealtierospinellisesto
 
Educazione digitale forum pa challenge a #sce2014 1 (1)
Educazione digitale forum pa challenge a #sce2014 1 (1)Educazione digitale forum pa challenge a #sce2014 1 (1)
Educazione digitale forum pa challenge a #sce2014 1 (1)FPA
 
Linee guida per i siti web delle pubbliche amministrazioni
Linee guida per i siti web delle pubbliche amministrazioniLinee guida per i siti web delle pubbliche amministrazioni
Linee guida per i siti web delle pubbliche amministrazioniNethics
 
Presentazione Rete Net Garage
Presentazione Rete Net GaragePresentazione Rete Net Garage
Presentazione Rete Net GarageE-R
 

Destaque (20)

Heavy Arduino
Heavy ArduinoHeavy Arduino
Heavy Arduino
 
Introduzione all'alfabetizzazione informatica
Introduzione all'alfabetizzazione informaticaIntroduzione all'alfabetizzazione informatica
Introduzione all'alfabetizzazione informatica
 
Arduino ai raggi x
Arduino ai raggi xArduino ai raggi x
Arduino ai raggi x
 
Electronics LAB [with Arduino] | DAY 3
Electronics LAB [with Arduino] | DAY 3Electronics LAB [with Arduino] | DAY 3
Electronics LAB [with Arduino] | DAY 3
 
Concetti Di Base Di Informatica
Concetti Di Base Di InformaticaConcetti Di Base Di Informatica
Concetti Di Base Di Informatica
 
Arduino nella Pmi
Arduino nella PmiArduino nella Pmi
Arduino nella Pmi
 
D. lgs 81 08
D. lgs 81 08D. lgs 81 08
D. lgs 81 08
 
We, the Web 2.0
We, the Web 2.0We, the Web 2.0
We, the Web 2.0
 
MODULO OD1: Gli Open data, cosa sono e a cosa servono
MODULO OD1: Gli Open data, cosa sono e a cosa servonoMODULO OD1: Gli Open data, cosa sono e a cosa servono
MODULO OD1: Gli Open data, cosa sono e a cosa servono
 
MODULO 00 - Presentazione del corso
MODULO 00 - Presentazione del corsoMODULO 00 - Presentazione del corso
MODULO 00 - Presentazione del corso
 
MODULO OD2: Breve storia degli Open Data da Tim Barners Lee a Monti passando ...
MODULO OD2: Breve storia degli Open Data da Tim Barners Lee a Monti passando ...MODULO OD2: Breve storia degli Open Data da Tim Barners Lee a Monti passando ...
MODULO OD2: Breve storia degli Open Data da Tim Barners Lee a Monti passando ...
 
Laboratorio eventi e turismo 2012 presentazione
Laboratorio eventi e turismo 2012  presentazioneLaboratorio eventi e turismo 2012  presentazione
Laboratorio eventi e turismo 2012 presentazione
 
Esperienze ed utilizzo degli Open Data
Esperienze ed utilizzo degli Open DataEsperienze ed utilizzo degli Open Data
Esperienze ed utilizzo degli Open Data
 
MODULO OD4: Un esempio di utilizzo degli Open Data
MODULO OD4: Un esempio di utilizzo degli Open DataMODULO OD4: Un esempio di utilizzo degli Open Data
MODULO OD4: Un esempio di utilizzo degli Open Data
 
Arduino and Linux / hardware & software openSource together
Arduino and Linux / hardware & software openSource togetherArduino and Linux / hardware & software openSource together
Arduino and Linux / hardware & software openSource together
 
Indirizzo elettrotecnica ed elettronica Corso Serale
Indirizzo elettrotecnica ed elettronica Corso SeraleIndirizzo elettrotecnica ed elettronica Corso Serale
Indirizzo elettrotecnica ed elettronica Corso Serale
 
Educazione digitale forum pa challenge a #sce2014 1 (1)
Educazione digitale forum pa challenge a #sce2014 1 (1)Educazione digitale forum pa challenge a #sce2014 1 (1)
Educazione digitale forum pa challenge a #sce2014 1 (1)
 
Linee guida per i siti web delle pubbliche amministrazioni
Linee guida per i siti web delle pubbliche amministrazioniLinee guida per i siti web delle pubbliche amministrazioni
Linee guida per i siti web delle pubbliche amministrazioni
 
Alfabetizzazione
AlfabetizzazioneAlfabetizzazione
Alfabetizzazione
 
Presentazione Rete Net Garage
Presentazione Rete Net GaragePresentazione Rete Net Garage
Presentazione Rete Net Garage
 

Semelhante a Electronics LAB [with Arduino] | DAY 2

Electronics LAB [with Arduino] | DAY 1
Electronics LAB [with Arduino] | DAY 1Electronics LAB [with Arduino] | DAY 1
Electronics LAB [with Arduino] | DAY 1Salvatore Carotenuto
 
LinoLab - Laboratorio di Arduino
LinoLab - Laboratorio di Arduino LinoLab - Laboratorio di Arduino
LinoLab - Laboratorio di Arduino Matteo Troìa
 
Progettare con Arduino come un Ingegnere
Progettare con Arduino come un IngegnereProgettare con Arduino come un Ingegnere
Progettare con Arduino come un IngegnereEmanuele Bonanni
 
Arduino ai raggi x rendiamolo professionale
Arduino ai raggi x  rendiamolo professionaleArduino ai raggi x  rendiamolo professionale
Arduino ai raggi x rendiamolo professionaleEmanuele Bonanni
 
Workshop: Arduino for makers - Cenni di progettazione elettronica ed utilizzo...
Workshop: Arduino for makers - Cenni di progettazione elettronica ed utilizzo...Workshop: Arduino for makers - Cenni di progettazione elettronica ed utilizzo...
Workshop: Arduino for makers - Cenni di progettazione elettronica ed utilizzo...Luigi Francesco Cerfeda
 
Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino
Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con ArduinoItalian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino
Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con ArduinoPaolo Aliverti
 
Arduino n° 2 (astronave)
Arduino n° 2 (astronave)Arduino n° 2 (astronave)
Arduino n° 2 (astronave)Elisa Rubino
 
Arduino PLC : Modulo 1 programación Arduino Rev. 2.0
Arduino PLC : Modulo 1 programación Arduino Rev. 2.0Arduino PLC : Modulo 1 programación Arduino Rev. 2.0
Arduino PLC : Modulo 1 programación Arduino Rev. 2.0SANTIAGO PABLO ALBERTO
 
Review4 u arduino duemilanove scheda di sviluppo compatibile 2010-11-11
Review4 u arduino duemilanove scheda di sviluppo compatibile   2010-11-11Review4 u arduino duemilanove scheda di sviluppo compatibile   2010-11-11
Review4 u arduino duemilanove scheda di sviluppo compatibile 2010-11-11Ionela
 
Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali
Roberto Gallea: Workshop Arduino, giorno #1 Concetti FondamentaliRoberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali
Roberto Gallea: Workshop Arduino, giorno #1 Concetti FondamentaliDemetrio Siragusa
 
Arduino & raspberry pi - Un connubio stimolante
Arduino & raspberry pi - Un connubio stimolanteArduino & raspberry pi - Un connubio stimolante
Arduino & raspberry pi - Un connubio stimolanteMirco Sbrollini
 
PLC Controllo di processo
PLC Controllo di processoPLC Controllo di processo
PLC Controllo di processoPasquale Alba
 
Corso base di Arduino
Corso base di ArduinoCorso base di Arduino
Corso base di ArduinoAndrea Silipo
 
Il plc linguaggi program
Il plc linguaggi programIl plc linguaggi program
Il plc linguaggi programGilda Tobia
 
.Net Micro Framework FEZ Robot Kit
.Net Micro Framework FEZ Robot Kit .Net Micro Framework FEZ Robot Kit
.Net Micro Framework FEZ Robot Kit Stefano Marchisio
 
Stm32 vl discovery recensione - 2010-11-11
Stm32 vl discovery   recensione  - 2010-11-11Stm32 vl discovery   recensione  - 2010-11-11
Stm32 vl discovery recensione - 2010-11-11Ionela
 
74 lvc1g00gf nand-gate a due ingressi
74 lvc1g00gf nand-gate a due ingressi 74 lvc1g00gf nand-gate a due ingressi
74 lvc1g00gf nand-gate a due ingressi Ionela
 

Semelhante a Electronics LAB [with Arduino] | DAY 2 (20)

Electronics LAB [with Arduino] | DAY 1
Electronics LAB [with Arduino] | DAY 1Electronics LAB [with Arduino] | DAY 1
Electronics LAB [with Arduino] | DAY 1
 
LinoLab - Laboratorio di Arduino
LinoLab - Laboratorio di Arduino LinoLab - Laboratorio di Arduino
LinoLab - Laboratorio di Arduino
 
Arduino ICT2016 [IT]
Arduino ICT2016 [IT]Arduino ICT2016 [IT]
Arduino ICT2016 [IT]
 
Progettare con Arduino come un Ingegnere
Progettare con Arduino come un IngegnereProgettare con Arduino come un Ingegnere
Progettare con Arduino come un Ingegnere
 
Arduino ai raggi x rendiamolo professionale
Arduino ai raggi x  rendiamolo professionaleArduino ai raggi x  rendiamolo professionale
Arduino ai raggi x rendiamolo professionale
 
Workshop: Arduino for makers - Cenni di progettazione elettronica ed utilizzo...
Workshop: Arduino for makers - Cenni di progettazione elettronica ed utilizzo...Workshop: Arduino for makers - Cenni di progettazione elettronica ed utilizzo...
Workshop: Arduino for makers - Cenni di progettazione elettronica ed utilizzo...
 
Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino
Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con ArduinoItalian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino
Italian Agile Day 2011 - Corso di cucina fusion elettro-agile con Arduino
 
Arduino n° 2 (astronave)
Arduino n° 2 (astronave)Arduino n° 2 (astronave)
Arduino n° 2 (astronave)
 
Arduino PLC : Modulo 1 programación Arduino Rev. 2.0
Arduino PLC : Modulo 1 programación Arduino Rev. 2.0Arduino PLC : Modulo 1 programación Arduino Rev. 2.0
Arduino PLC : Modulo 1 programación Arduino Rev. 2.0
 
Review4 u arduino duemilanove scheda di sviluppo compatibile 2010-11-11
Review4 u arduino duemilanove scheda di sviluppo compatibile   2010-11-11Review4 u arduino duemilanove scheda di sviluppo compatibile   2010-11-11
Review4 u arduino duemilanove scheda di sviluppo compatibile 2010-11-11
 
Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali
Roberto Gallea: Workshop Arduino, giorno #1 Concetti FondamentaliRoberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali
Roberto Gallea: Workshop Arduino, giorno #1 Concetti Fondamentali
 
Workshop arduino
Workshop arduinoWorkshop arduino
Workshop arduino
 
Arduino & raspberry pi - Un connubio stimolante
Arduino & raspberry pi - Un connubio stimolanteArduino & raspberry pi - Un connubio stimolante
Arduino & raspberry pi - Un connubio stimolante
 
PLC Controllo di processo
PLC Controllo di processoPLC Controllo di processo
PLC Controllo di processo
 
Corso base di Arduino
Corso base di ArduinoCorso base di Arduino
Corso base di Arduino
 
Arduino 3
Arduino 3Arduino 3
Arduino 3
 
Il plc linguaggi program
Il plc linguaggi programIl plc linguaggi program
Il plc linguaggi program
 
.Net Micro Framework FEZ Robot Kit
.Net Micro Framework FEZ Robot Kit .Net Micro Framework FEZ Robot Kit
.Net Micro Framework FEZ Robot Kit
 
Stm32 vl discovery recensione - 2010-11-11
Stm32 vl discovery   recensione  - 2010-11-11Stm32 vl discovery   recensione  - 2010-11-11
Stm32 vl discovery recensione - 2010-11-11
 
74 lvc1g00gf nand-gate a due ingressi
74 lvc1g00gf nand-gate a due ingressi 74 lvc1g00gf nand-gate a due ingressi
74 lvc1g00gf nand-gate a due ingressi
 

Mais de Daniele Costarella

Fondamenti di GNU/Linux: FileSystem e Partizioni
Fondamenti di GNU/Linux: FileSystem e PartizioniFondamenti di GNU/Linux: FileSystem e Partizioni
Fondamenti di GNU/Linux: FileSystem e PartizioniDaniele Costarella
 
Arduino e stampa 3D - Le nuove frontiere della robotica homemade
Arduino e stampa 3D - Le nuove frontiere della robotica homemadeArduino e stampa 3D - Le nuove frontiere della robotica homemade
Arduino e stampa 3D - Le nuove frontiere della robotica homemadeDaniele Costarella
 
energy-harvesting-pres-final-std
energy-harvesting-pres-final-stdenergy-harvesting-pres-final-std
energy-harvesting-pres-final-stdDaniele Costarella
 
Linux Embedded per l'automazione
Linux Embedded per l'automazioneLinux Embedded per l'automazione
Linux Embedded per l'automazioneDaniele Costarella
 
Development of a Wireless Sensors Network powered by Energy Harvesting techni...
Development of a Wireless Sensors Network powered by Energy Harvesting techni...Development of a Wireless Sensors Network powered by Energy Harvesting techni...
Development of a Wireless Sensors Network powered by Energy Harvesting techni...Daniele Costarella
 
Hands On Embedded Linux with BeagleBone Black
Hands On Embedded Linux with BeagleBone BlackHands On Embedded Linux with BeagleBone Black
Hands On Embedded Linux with BeagleBone BlackDaniele Costarella
 
Development of a wireless sensor network powered by energy harvesting techniques
Development of a wireless sensor network powered by energy harvesting techniquesDevelopment of a wireless sensor network powered by energy harvesting techniques
Development of a wireless sensor network powered by energy harvesting techniquesDaniele Costarella
 
Software libero nei sistemi embedded
Software libero nei sistemi embeddedSoftware libero nei sistemi embedded
Software libero nei sistemi embeddedDaniele Costarella
 

Mais de Daniele Costarella (8)

Fondamenti di GNU/Linux: FileSystem e Partizioni
Fondamenti di GNU/Linux: FileSystem e PartizioniFondamenti di GNU/Linux: FileSystem e Partizioni
Fondamenti di GNU/Linux: FileSystem e Partizioni
 
Arduino e stampa 3D - Le nuove frontiere della robotica homemade
Arduino e stampa 3D - Le nuove frontiere della robotica homemadeArduino e stampa 3D - Le nuove frontiere della robotica homemade
Arduino e stampa 3D - Le nuove frontiere della robotica homemade
 
energy-harvesting-pres-final-std
energy-harvesting-pres-final-stdenergy-harvesting-pres-final-std
energy-harvesting-pres-final-std
 
Linux Embedded per l'automazione
Linux Embedded per l'automazioneLinux Embedded per l'automazione
Linux Embedded per l'automazione
 
Development of a Wireless Sensors Network powered by Energy Harvesting techni...
Development of a Wireless Sensors Network powered by Energy Harvesting techni...Development of a Wireless Sensors Network powered by Energy Harvesting techni...
Development of a Wireless Sensors Network powered by Energy Harvesting techni...
 
Hands On Embedded Linux with BeagleBone Black
Hands On Embedded Linux with BeagleBone BlackHands On Embedded Linux with BeagleBone Black
Hands On Embedded Linux with BeagleBone Black
 
Development of a wireless sensor network powered by energy harvesting techniques
Development of a wireless sensor network powered by energy harvesting techniquesDevelopment of a wireless sensor network powered by energy harvesting techniques
Development of a wireless sensor network powered by energy harvesting techniques
 
Software libero nei sistemi embedded
Software libero nei sistemi embeddedSoftware libero nei sistemi embedded
Software libero nei sistemi embedded
 

Electronics LAB [with Arduino] | DAY 2

  • 1. ELECTRONICS LAB [WITH ARDUINO] Daniele Costarella Teatro Carlo Gesualdo / Casina Del Principe – Avellino – 28 > 31 agosto 2013 Salvatore Carotenuto >>> DAY #2
  • 2. Rights to copy Electronics LAB [with Arduino]28 > 31 agosto 2013 2 Attribution – ShareAlike 3.0 Unported You are free: ● to Share - to copy, distribute and transmit the work ● to Remix – to adapt the work Under the following conditions: Attribution – You must attribute the work in the manner specified by the authors. Share Alike – If you alter, transform, or build upon this work, you may distribute the resulting work only under the same or similar license to this one. Your fair use and other rights are in no way affected by the above. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/.
  • 3. Il programma di oggi La tecnica PWM: ● controllo di LED; ● controllo di piccoli carichi; Effetti luminosi: ● LED fading; ● i LED RGB; ● sequence generators; 3Electronics LAB [with Arduino]28 > 31 agosto 2013
  • 4. La tecnica PWM 28 > 31 agosto 2013 Electronics LAB [with Arduino] 4 Rimontiamo il seguente circuito:
  • 5. La tecnica PWM 28 > 31 agosto 2013 Electronics LAB [with Arduino] 5 Cosa succede se facciamo lampeggiare molto velocemente il LED? // Modulazione di larghezza di impulso (PWM) #define LED 13 // LED sul pin 13 void setup() { pinMode(LED, OUTPUT); // imposta il pin come output } void loop() { digitalWrite(LED, HIGH); // accende il LED delay(10); // aspetta 10 millisecondi digitalWrite(LED, LOW); // spegne il LED delay(10); // aspetta 10 millisecondi }
  • 6. La tecnica PWM 28 > 31 agosto 2013 Electronics LAB [with Arduino] 6 Il duty cycle Periodo TON TOFF Tempo Ampiezza
  • 7. La tecnica PWM 28 > 31 agosto 2013 Electronics LAB [with Arduino] 7 Il duty cycle Duty Cycle 50% Duty Cycle 75% Duty Cycle 25%
  • 8. La tecnica PWM 28 > 31 agosto 2013 Electronics LAB [with Arduino] 8 Facciamo alcuni esperimenti 1. 10ms acceso e 10ms spento 2. 5 ms acceso e 15ms spento 3. 75 ms acceso e 5ms spento
  • 9. La tecnica PWM 28 > 31 agosto 2013 Electronics LAB [with Arduino] 9 I pin PWM dedicati il PWM è una tecnica per ottenere risultati analogici con mezzi digitali Funzione Spiegazione analogWrite(pin, valore) Scrive un valore analogico (una forma d'onda PWM) sul pin passato come parametro. Parametri: pin: il pin da usare valore: compreso tra 0 (sempre spento) e 255 (sempre acceso)
  • 10. La tecnica PWM 28 > 31 agosto 2013 Electronics LAB [with Arduino] 10 Il duty cycle Duty Cycle 50% - analogWrite(pin, 128) Duty Cycle 75% - analogWrite(pin, 192) Duty Cycle 25% - analogWrite(pin, 64)
  • 11. La tecnica PWM 28 > 31 agosto 2013 Electronics LAB [with Arduino] 11 Il nuovo circuito: utilizziamo i pin PWM dedicati
  • 12. La tecnica PWM 28 > 31 agosto 2013 Electronics LAB [with Arduino] 12 Cosa succede se facciamo lampeggiare molto velocemente il LED? // Modulazione di larghezza di impulso (PWM) #define LED 9 // LED sul pin 9 (PWM) void setup() { pinMode(LED, OUTPUT); // imposta il pin come output } void loop() { analogWrite(LED, 128); // duty cycle al 50% }
  • 13. La tecnica PWM 28 > 31 agosto 2013 Electronics LAB [with Arduino] 13 Facciamo alcuni esperimenti, ora però con i pin dedicati 1. LED acceso allo 0%; 2. LED acceso al 25%; 3. LED acceso al 50%; 4. LED acceso al 75%; 5. LED acceso al 100%;
  • 14. La tecnica PWM 28 > 31 agosto 2013 Electronics LAB [with Arduino] 14 Solo per i LED?
  • 15. La tecnica PWM 28 > 31 agosto 2013 Electronics LAB [with Arduino] 15 Esempio: controlliamo un motore
  • 16. La tecnica PWM 28 > 31 agosto 2013 Electronics LAB [with Arduino] 16 Transistor ● Il motore DC utilizza più potenza di quella che Arduino è in grado di erogare. ● Se connettiamo il motore direttamente ai pin di Arduino, rischiamo di danneggiare la scheda. ● Utilizziamo, allora, un piccolo transistor (Es. PN2222) come switch che, utilizzando una piccola corrente da Arduino è in grado di pilotare correnti più elevate (motore).
  • 17. La tecnica PWM 28 > 31 agosto 2013 Electronics LAB [with Arduino] 17 Transistor ● Il transistor ha tre terminali. La maggior parte della corrente fluisce dal Collettore all'Emettitore. Ciò avviene se “accendiamo” il transistor, ossia se facciamo fluire una corrente nella Base. ● Il resistore connesso a D3 limita la corrente di Base. Se connettiamo il motore direttamente ai pin di Arduino, rischiamo di danneggiare la scheda. ● Il diodo è inserito per la protezione del circuito.
  • 18. La tecnica PWM 28 > 31 agosto 2013 Electronics LAB [with Arduino] 18 Esempio 1: rampa // Modulazione di larghezza di impulso (PWM) #define MOTOR 3 // controllo motore sul pin 3 void setup() { pinMode(MOTOR, OUTPUT); // imposta il pin come output } void loop() { analogWrite(MOTOR, 64); // motore al 25% delay(1000); // aspetta 1 secondo analogWrite(MOTOR, 128); // motore al 50% delay(1000); // aspetta 1 secondo analogWrite(MOTOR, 192); // motore al 75% delay(1000); // aspetta 1 secondo analogWrite(MOTOR, 255); // motore al 100% delay(1000); // aspetta 1 secondo }
  • 19. La tecnica PWM 28 > 31 agosto 2013 Electronics LAB [with Arduino] 19 Esempio 2: variamo la velocità manualmente // Esempio 2: DC Motor int motorPin = 3; void setup() { pinMode(motorPin, OUTPUT); Serial.begin(9600); while (! Serial); Serial.println("Velocità [da 0 a 255]: "); } void loop() { if (Serial.available()) { int speed = Serial.parseInt(); if (speed >= 0 && speed <= 255) { analogWrite(motorPin, speed); } } }
  • 20. Elementi di programmazione 28 > 31 agosto 2013 Electronics LAB [with Arduino] 20 Il ciclo for Simbolo Spiegazione for (valore_iniziale, test, incremento) { // … < codice da ripetere > // … } Esegue un blocco di codice per un certo numero di volte, ossia finchè la condizione test è vera. for (i = 0; i<100; i++) { // … < codice da ripetere > // … } Esempio: esegue un blocco di codice per 100 volte
  • 21. Giochi di luce 28 > 31 agosto 2013 Electronics LAB [with Arduino] 21 LED fading #define LED 9 // LED collegato al pin 9 int fadeValue = 0; // valore del fade void setup() { pinMode(LED, OUTPUT); // imposta il pin come output } void loop() { // esegue un ciclo da 0 a 254 (fade in) for (fadeValue = 0 ; fadeValue < 255; fadeValue++) { //impostiamo la luminosità del LED analogWrite(LED, fadeValue); delay(10); } // // esegue un ciclo da 255 a 1 (fade out) for(fadeValue = 255 ; fadeValue > 0; fadeValue--) { //impostiamo la luminosità del LED analogWrite(LED, fadeValue); delay(10); } }
  • 22. Giochi di luce 28 > 31 agosto 2013 Electronics LAB [with Arduino] 22 LED fading #define LED 9 // LED collegato al pin 9 int fadeValue = 0; // valore del fade void setup() { pinMode(LED, OUTPUT); // imposta il pin come output } void loop() { // esegue un ciclo da 0 a 254 (fade in) for (fadeValue = 0 ; fadeValue < 255; fadeValue++) { //impostiamo la luminosità del LED analogWrite(LED, fadeValue); delay(10); } // // esegue un ciclo da 255 a 1 (fade out) for(fadeValue = 255 ; fadeValue > 0; fadeValue--) { //impostiamo la luminosità del LED analogWrite(LED, fadeValue); delay(10); } }
  • 23. Giochi di luce 28 > 31 agosto 2013 Electronics LAB [with Arduino] 23 LED RGB
  • 24. Giochi di luce 28 > 31 agosto 2013 Electronics LAB [with Arduino] 24 LED RGB: montiamo il circuito
  • 25. Giochi di luce 28 > 31 agosto 2013 Electronics LAB [with Arduino] 25 LED RGB: lo sketch //Flussi 2013 DAY 2: RGB LED int redPin = 11; int greenPin = 10; int bluePin = 9; void setup() { pinMode(redPin, OUTPUT); pinMode(greenPin, OUTPUT); pinMode(bluePin, OUTPUT); } void loop() { setColor(255, 0, 0); // red delay(1000); setColor(0, 255, 0); // green delay(1000); setColor(0, 0, 255); // blue delay(1000); setColor(255, 255, 0); // yellow delay(1000); setColor(80, 0, 80); // purple delay(1000); setColor(0, 255, 255); // aqua delay(1000); }
  • 26. Giochi di luce 28 > 31 agosto 2013 Electronics LAB [with Arduino] 26 LED RGB: lo sketch // continua void setColor(int red, int green, int blue) { analogWrite(redPin, red); analogWrite(greenPin, green); analogWrite(bluePin, blue); }
  • 27. Giochi di luce 28 > 31 agosto 2013 Electronics LAB [with Arduino] 27 LED RGB: cose da fare ● Variare il ritardo ● Altri effetti di luce (YouTube, Google)
  • 28. Giochi di luce 28 > 31 agosto 2013 Electronics LAB [with Arduino] 28 LED chaser
  • 29. Giochi di luce 28 > 31 agosto 2013 Electronics LAB [with Arduino] 29 LED chaser: lo sketch int LED1 = 12; int LED2 = 11; int LED3 = 10; int LED4 = 9; int LED5 = 8; void setup() { pinMode(LED1, OUTPUT); pinMode(LED2, OUTPUT); pinMode(LED3, OUTPUT); pinMode(LED4, OUTPUT); pinMode(LED5, OUTPUT); }
  • 30. Giochi di luce 28 > 31 agosto 2013 Electronics LAB [with Arduino] 30 LED chaser: lo sketch void loop() { digitalWrite(LED1,HIGH); delay(100); digitalWrite(LED1,LOW); delay(25); digitalWrite(LED2,HIGH); delay(100); digitalWrite(LED2,LOW); delay(25); digitalWrite(LED3,HIGH); delay(100); digitalWrite(LED3,LOW); delay(25); digitalWrite(LED4,HIGH); delay(100); digitalWrite(LED4,LOW); delay(25); digitalWrite(LED5, HIGH); delay(100); digitalWrite(LED5, LOW); delay(25); }
  • 31. Giochi di luce 28 > 31 agosto 2013 Electronics LAB [with Arduino] 31 LED chaser: cose da fare ● Variare il ritardo ● Pilotare più LED ● Largo alla fantasia!
  • 32. Giochi di luce 28 > 31 agosto 2013 Electronics LAB [with Arduino] 32 Pilotare più LED: meglio usare uno Shift Register
  • 33. Giochi di luce 28 > 31 agosto 2013 Electronics LAB [with Arduino] 33 Pilotare più LED: lo Shift Register 74HC595 ● Si può pensare allo Shift Register come un oggetto in grado di conservare 8 bit in memoria ● Per scrivere tali valori utilizziamo i pin Data e Clock del chip
  • 34. Giochi di luce 28 > 31 agosto 2013 Electronics LAB [with Arduino] 34 Pilotare più LED: meglio usare uno Shift Register /* Flussi 2013 DAY 2: 8 LED e uno Shift Register */ int latchPin = 5; int clockPin = 6; int dataPin = 4; byte leds = 0; void setup() { pinMode(latchPin, OUTPUT); pinMode(dataPin, OUTPUT); pinMode(clockPin, OUTPUT); }
  • 35. Giochi di luce 28 > 31 agosto 2013 Electronics LAB [with Arduino] 35 Pilotare più LED: meglio usare uno Shift Register void loop() { leds = 0; updateShiftRegister(); delay(500); for (int i = 0; i < 8; i++) { bitSet(leds, i); updateShiftRegister(); delay(500); } } void updateShiftRegister() { digitalWrite(latchPin, LOW); shiftOut(dataPin, clockPin, LSBFIRST, leds); digitalWrite(latchPin, HIGH); }