arduino n° 2 (astronave)
DESCRIPTION
Lezione n° 2 Arduino starter kitTRANSCRIPT
13/04/2023
Arduino n° 2 (astronave)accensione di 3 LED
a comando secondo precise temporizzazioni
1/9
13/04/2023
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 rossiPulsante rilasciato (0): si accende il led verde.
2/9
13/04/2023
Schema elettrico
3/9
13/04/2023
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 220W
• Interruttore (pulsante): un lato all’alimentazione e l’altro al piedino 2 di ARD; ed anche una resistenza da 10 KW tra massa e il piedino dell’interruttore collegato al pin2.
4/9
13/04/2023
Schema di montaggio
5/9
13/04/2023
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/9
13/04/2023
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 W
7/9
13/04/2023
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/9
13/04/2023
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/9