Megistone Megistone
Megistone Megistone
  • Home
  • Principi Fondamentali di Elettrotecnica
    • Continua
    • Alternata

      User

      Joomla! Pages

      Template Layouts

      Content layouts

      Article Layouts

    • Macchine Elettriche
      • Trasformatori
      • Motori Asincroni
      • Motori in Corrente Continua
    • Controlli Automatici
      • Sistemi Elettronici di Controllo
        • Classificazione e Struttura
        • Sistemi di Trasduzione
        • Elettronica di Potenza
        • Elettronica di Comando
        • Attuatori Elettrici Industriali
      • Logica Booleana
      • Sistemi di Controllo a Logica Programmabile
        • Evoluzione delle Logiche di Controllo
        • Gli Elementi Costitutivi di un PLC
        • Funzionamento di un PLC
        • Terminali e Linguaggi di Programmazione
        • Criteri di Scelta di un PLC
        • Reti di Comunicazione
    • Il Personal Computer
      • L'Elaboratore Elettronico
      • Un computer per tutti i gusti
      • È dando che si riceve
      • Dentro il Personal Computer
      • Memorie
      • Le memorie del computer
      • da 5 MB a 50.000 MB: le memorie di massa
      • Le interfacce: EIDE e SCSI
    • Reti Locali
      • Reti LAN
      • Reti LAN e WAN
      • Le linee di trasmissione di reti
    • Corso di Informatica
      • Evoluzione delle Macchine da calcolo
      • Hardware e software
      • Le basi di numerazione
      • Codifica delle informazioni
      • Logica Booleana
      • Gli automi a stati finiti
      • Gli Algoritmi
      • Le Strutture Dati
      • I Sistemi Operativi
      • Il Sistema Operativo MS-DOS
    • Linguaggi
      • Linguaggio C/C++
      • Linguaggio Java
      • Linguaggio Python
    • Laboratorio Virtuale
      • Tabelle di Elettrotecnica
      • Calcolo dei Codici Colori delle Resistenze
    • Mettiti alla prova
    • Schede
    • Io Robot
    • Arduino
    • EV3
    • Fisica

istruzione IF...ELSE

L’istruzione IF...ELSE si usa per scegliere tra due alternative.

Con un pulsante e due LED, progetta un sistema in cui:

  • con il pulsante rilasciato si accende solo il LED rosso;
  • premendo il pulsante si accende solo il LED verde.

Il codice dello sketch:

/*
1 pulsante e 2 LED:
- pulsante rilasciato --> LED rosso ON, verde OFF
- pulsante premuto --> LED rosso OFF, verde ON
(L'istruzione IF...ELSE)
*/

bool puls; // la variabile booleana puls memorizza lo stato del pulsante
const int pinPuls=7; // uguaglia la costante pinPuls a 7 (pin del pulsante)
const int pinRosso=12; // uguaglia la costante pinRosso a 12 (pin del LED rosso)
const int pinVerde=13; // uguaglia la costante pinVerde a 13 (pin del LED verde)

void setup(){
pinMode(pinPuls, INPUT_PULLUP); // imposta il pin digitale 7 come input (con pull-up interno)
pinMode(pinRosso, OUTPUT); // imposta il pin digitale 12 come output
pinMode(pinVerde, OUTPUT); // imposta il pin digitale 13 come output
}

void loop(){
puls = digitalRead(pinPuls); // leggi il bit sul pin 7, collegato al pulsante
// e memorizzalo nella variabile puls

if (puls==1){ // se puls=1 (pulsante rilasciato)
digitalWrite(pinRosso, HIGH); // LED rosso ON (pin 12)
digitalWrite(pinVerde, LOW); // LED verde OFF (pin 13)
}
else { // altrimenti se puls=0 (pulsante premuto)
digitalWrite(pinRosso, LOW); // LED rosso OFF (pin 12)
digitalWrite(pinVerde, HIGH); // LED verde ON (pin 13)
}
}

Nello sketch si può notare che:

  • sono state definite le costanti intere pinPuls=7, pinRosso=12 e pinverde=13, che memorizzano i pin a cui sono collegati il pulsante e i due LED; queste sono poi richiamate nello sketch. In questo modo il programma è più leggibile e, nel caso in futuro tu volessi modificare i pin a cui sono collegati i componenti, sarà sufficiente variare il contenuto delle costanti all’inizio dello sketch.
  • È stata usata l’istruzione IF...ELSE per compiere due azioni differenti secondo il valore della variabile puls: se è soddisfatta la condizione tra parentesi (puls==1), sono eseguite le istruzioni del blocco tra le graffe successive, altrimenti quelle del blocco dopo l’else.
  • Il simbolo = è usato per assegnare un valore a una variabile/costante, ad esempio puls()=0.
  • Il simbolo == è usato nelle espressioni per effettuare un confronto (il risultato è booleano, vero o falso), ad esempio nella istruzione if(puls==1) l’espressione tra parentesi è VERA se puls vale 1. È equivalente scrivere if(puls) ma, per maggiore chiarezza, evidenziamo la condizione completa. La sintassi dell’istruzione IF...ELSE è:

if (espressione) {

// blocco di istruzioni A

 

}

else {

// blocco di istruzioni B

}

Se espressione è VERA si esegue il blocco di istruzioni A, altrimenti viene eseguito il blocco B.
L’else è facoltativo e va eliminato se non esiste alternativa ad A :

 

if (espressione) {

// blocco di istruzioni A

}

 

Share on:

Articolo precedente: Il ciclo FOR Indietro Articolo successivo: Leggere un pulsante in input e pilota un LED Avanti