Arduino n° 2 (astronave)
accensione di 3 LED
a comando secondo precise
temporizzazioni
1/911/03/2014
Schema a blocchi
Input :Pulsante ARDUINO
Output
i tre LED
Input: il pulsante ha due stati 0/1 non premuto / premuto. Definisco lo stato
del pulsante e chiamo la variabile switchstate
Output: i led hanno due stati acceso /spento, 1/0
Specifiche di progetto:
Pulsante premuto (1): si accendono i led rossi
Pulsante rilasciato (0): si accende il led verde.
2/911/03/2014
Schema elettrico
3/911/03/2014
Collegamenti HW
• PIN digitali 3,4,5 all’anodo (piedino lungo)dei
Led ( rossi 4 e 5 verde 3)
• Catodo (piedino corto)dei Led a massa
attraverso la resistenza da 220
• Interruttore (pulsante): un lato
all’alimentazione e l’altro al piedino 2 di ARD;
ed anche una resistenza da 10 K tra massa e
il piedino dell’interruttore collegato al pin2.
4/911/03/2014
Schema di montaggio
5/911/03/2014
Specifiche dei LED
• La caduta di tensione ai capi del LED varia in
funzione del colore:
colore rosso: 1,8 V
colore giallo: 1,9 V
colore verde: 2,0 V
colore arancio: 2,0 V
colore blu: 3,0 V
colore bianco: 3,0 V
6/911/03/2014
Calcolo della resistenza
• Equazione della maglia
• E = RI + VD dove
• E tensione di alimentazione (5V)
• R valore della resistenza;
• I corrente (circa 10 mA); V caduta di
tensione ai capi del diodo LED.
• R = (E – V) / I
• = (5 – 1,8) / 10 mA =
• (3,2 /15 ) Kohm = 0,213 Kohm
• Prendo il valore commerciale di 220
7/911/03/2014
SW programma
• /* Arduino Starter Kit example Project 2 - Spaceship Interface */
• int switchstate = 0;
• void setup(){
• pinMode(3,OUTPUT);
• pinMode(4,OUTPUT);
• pinMode(5,OUTPUT);
• pinMode(2,INPUT);
• }
• void loop(){
• switchstate = digitalRead(2);
• if (switchstate == LOW) {
• digitalWrite(3, HIGH); // turn the green LED on pin 3 on
• digitalWrite(4, LOW); // turn the red LED on pin 4 off
• digitalWrite(5, LOW); // turn the red LED on pin 5 off
• }
• else {
• digitalWrite(3, LOW); // turn the green LED on pin 3 off
• digitalWrite(4, LOW); // turn the red LED on pin 4 off
• digitalWrite(5, HIGH); // turn the red LED on pin 5 on
• delay(250);
• digitalWrite(4, HIGH); // turn the red LED on pin 4 on
• digitalWrite(5, LOW); // turn the red LED on pin 5 off
• delay(250);
• }
• }
• // Create a global variable to hold the
• // state of the switch. This variable is persistent
• // throughout the program. Whenever you refer to
• // switchState, you’re talking about the number it holds
• // declare the LED pins as outputs
• // declare the switch pin as an input
•
• // read the value of the switch
• // digitalRead() checks to see if there is voltage
• // on the pin or not
• // if the button is not pressed
• // blink the red LEDs
• // this else is part of the above if() statement.
• // if the switch is not LOW (the button is pressed)
• // the code below will run
• // wait for a quarter second before changing the light
• delay(250);
• // wait for a quarter second before changing the light
• delay(250);
8/911/03/2014
Modifica programma
• 1) I led rossi si devono accendere con
intermittenza di mezzo secondo
• 2) I led rossi si devono accendere in
successione ma il primo deve restare 1
secondo acceso ed il secondo mezzo secondo.
• 3) Cambiare le specifiche di input in questo
modo:
– Pulsante premuto (1): si accende il led verde.
– Pulsante rilasciato (0): si accendono i led rossi.
9/911/03/2014

Arduino n° 2 (astronave)

  • 1.
    Arduino n° 2(astronave) accensione di 3 LED a comando secondo precise temporizzazioni 1/911/03/2014
  • 2.
    Schema a blocchi Input:Pulsante ARDUINO Output i tre LED Input: il pulsante ha due stati 0/1 non premuto / premuto. Definisco lo stato del pulsante e chiamo la variabile switchstate Output: i led hanno due stati acceso /spento, 1/0 Specifiche di progetto: Pulsante premuto (1): si accendono i led rossi Pulsante rilasciato (0): si accende il led verde. 2/911/03/2014
  • 3.
  • 4.
    Collegamenti HW • PINdigitali 3,4,5 all’anodo (piedino lungo)dei Led ( rossi 4 e 5 verde 3) • Catodo (piedino corto)dei Led a massa attraverso la resistenza da 220 • Interruttore (pulsante): un lato all’alimentazione e l’altro al piedino 2 di ARD; ed anche una resistenza da 10 K tra massa e il piedino dell’interruttore collegato al pin2. 4/911/03/2014
  • 5.
  • 6.
    Specifiche dei LED •La caduta di tensione ai capi del LED varia in funzione del colore: colore rosso: 1,8 V colore giallo: 1,9 V colore verde: 2,0 V colore arancio: 2,0 V colore blu: 3,0 V colore bianco: 3,0 V 6/911/03/2014
  • 7.
    Calcolo della resistenza •Equazione della maglia • E = RI + VD dove • E tensione di alimentazione (5V) • R valore della resistenza; • I corrente (circa 10 mA); V caduta di tensione ai capi del diodo LED. • R = (E – V) / I • = (5 – 1,8) / 10 mA = • (3,2 /15 ) Kohm = 0,213 Kohm • Prendo il valore commerciale di 220 7/911/03/2014
  • 8.
    SW programma • /*Arduino Starter Kit example Project 2 - Spaceship Interface */ • int switchstate = 0; • void setup(){ • pinMode(3,OUTPUT); • pinMode(4,OUTPUT); • pinMode(5,OUTPUT); • pinMode(2,INPUT); • } • void loop(){ • switchstate = digitalRead(2); • if (switchstate == LOW) { • digitalWrite(3, HIGH); // turn the green LED on pin 3 on • digitalWrite(4, LOW); // turn the red LED on pin 4 off • digitalWrite(5, LOW); // turn the red LED on pin 5 off • } • else { • digitalWrite(3, LOW); // turn the green LED on pin 3 off • digitalWrite(4, LOW); // turn the red LED on pin 4 off • digitalWrite(5, HIGH); // turn the red LED on pin 5 on • delay(250); • digitalWrite(4, HIGH); // turn the red LED on pin 4 on • digitalWrite(5, LOW); // turn the red LED on pin 5 off • delay(250); • } • } • // Create a global variable to hold the • // state of the switch. This variable is persistent • // throughout the program. Whenever you refer to • // switchState, you’re talking about the number it holds • // declare the LED pins as outputs • // declare the switch pin as an input • • // read the value of the switch • // digitalRead() checks to see if there is voltage • // on the pin or not • // if the button is not pressed • // blink the red LEDs • // this else is part of the above if() statement. • // if the switch is not LOW (the button is pressed) • // the code below will run • // wait for a quarter second before changing the light • delay(250); • // wait for a quarter second before changing the light • delay(250); 8/911/03/2014
  • 9.
    Modifica programma • 1)I led rossi si devono accendere con intermittenza di mezzo secondo • 2) I led rossi si devono accendere in successione ma il primo deve restare 1 secondo acceso ed il secondo mezzo secondo. • 3) Cambiare le specifiche di input in questo modo: – Pulsante premuto (1): si accende il led verde. – Pulsante rilasciato (0): si accendono i led rossi. 9/911/03/2014