Questa risorsa è stata scritta dagli studenti dell'Istituto ITIS "Enrico Mattei" di Urbino, della classe 3B/EN nell'a.s. 2021/2022, all'interno del corso di Sistemi automatici per le superiori 1.

Per favore, prima di apportare modifiche, attendi sino alla fine dell'anno scolastico (termina il 30 giugno 2022) oppure contatta il docente di riferimento Giacomo Alessandroni nel caso venissero rilevati contenuti non in linea con le linee guida della comunità.

Se leggi questo avviso ad anno scolastico concluso puoi rimuoverlo.

Questa lezione descrive come realizza un emulatore porta AND a tre ingressi con Arduino, il cui fine è accendere un led solo se i 3 interruttori sono accesi.

laboratorio
laboratorio
Porta AND con Arduino
Tipo di risorsa Tipo: laboratorio
Materia di appartenenza Materia: Sistemi automatici per le superiori 1
Avanzamento Avanzamento: laboratorio completa al 50%

Sensori e attuatori

modifica

Led: Un LED è un particolare tipo di diodo a giunzione p-n formato da sottili strati di materiale semiconduttore e in grado di emettere luce quando attraversato da corrente.

Interruttore: l'interruttore è un'apparecchiatura elettrica di comando che serve a stabilire o interrompere la continuità elettrica e metallica in un circuito elettrico.

Schema di montaggio

modifica
 
int Pulsante1=5; //pin del Pulsante
int Pulsante2=4;
int Pulsante3=3; 
int Led=2;       //pin del Led

void setup()
{
    pinMode(Pulsante1, INPUT); //impostazione pin input
    pinMode(Pulsante2, INPUT);
    pinMode(Pulsante3, INPUT);
    pinMode(Led, OUTPUT);      //impostazione pin output
}
void loop() {
	if(digitalRead(Pulsante1) == HIGH) { //se tutti gli interruttori sono accesi 
		if(digitalRead(Pulsante2) == HIGH) {
			if(digitalRead(Pulsante3) == HIGH) {
   				 digitalWrite(Led, HIGH); //il led si accende
			}
		}
	}
	if(digitalRead(Pulsante1) == LOW) { //se anche un solo interruttore è spento
		digitalWrite(Led, LOW); //il led si spegne
	}
	if(digitalRead(Pulsante2) == LOW) { 
		digitalWrite(Led, LOW); 
	}
	if(digitalRead(Pulsante3) == LOW) {  
		digitalWrite(Led, LOW); 
	}
  
}

Espansioni suggerite

modifica

A questo progetto si possono applicare altri led che verranno accesi dalla porta AND, oppure aggiungere altri interruttori per aumentare i punti di accensione.