Costruire un circuito dotato di un input analogico costituito da un potenziometro ed un output digitale, costituito da tre led luminosi (verde, giallo, rosso) che si accendono alternativamente a secondo del valore dell’input analogico.

Collegheremo i LED ed il potenziometro nel seguente modo:

  • 3 LED collegato tra ai pin 13, 11 e 9.
  • 3 resistenze da 220 Ω da collegare tra i LED e i pin.
  • Potenziometro collegato all’ingresso analogico A0.

L’ingresso analogico può variare tra 0÷1023.
Il valore acquisito dall’ingresso A0 viene memorizzato nella variabile val. Stabiliamo (arbitrariamente) che se:

val≥682 si accende solo il LED rosso collegato al pin 13

341≤val<682 si accende solo il LED giallo collegato al pin 11

val<341 si accende solo il LED verde collegato al pin 9

il codice del programma: è il seguente:

int val = 0;
void setup() {
  pinMode(A0, INPUT);
  pinMode(13, OUTPUT);
  pinMode(11, OUTPUT);
  pinMode(9, OUTPUT);
  Serial.begin(9600);
}
void loop() {
   //legge il valore analogico in ingresso:
  val = analogRead(A0);
if(val>=682){
digitalWrite(13,HIGH); digitalWrite(11,LOW); digitalWrite(9,LOW);
}else if(val>=341 && val<682){
digitalWrite(13,LOW); digitalWrite(11,HIGH); 
digitalWrite(9,LOW);
}else{
digitalWrite(13,LOW); digitalWrite(11,LOW); digitalWrite(9,HIGH);
}//fine if-else-if
Serial.println(val); delay(2);
}

Il valore della variabile analogica acquisita è inviato al monitor seriale.