Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
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
4. 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
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