Strumenti Utente

Strumenti Sito


fisica:strumenti:controllo_led_della_distanza_con_arduino

LAB2GO Scienza

Controllo LED della distanza con Arduino

Controllo LED della distanza con Arduino utilizzando l'ultrasuono

Strumenti

Un Arduino,un breadboard,due resistenze a 220 omega, una LED rosso, una LED verde, uno anodo da collegare al pin ground (GND) e quattro catodi (due per collegare collegare con l'ultrasuono, uno per LED rosso, e uno per LED verde )

Esperienze

Si collega Arduino con la PC. Poi si collega un anodo al pin GND e al breadboard, un catodo al pin9 e all'entrata dell'ultrasuono, un catodo al pin10 e all'entrata dell'ultrasuono, un catodo al pin8 e al LED rosso, un catodo al pin7 e al LED verde. Tra LED ed anodo si collega una resistenza. Dopo aver collegato tutto, sul programma di Arduino su PC si inserisce con i seguenti codici:

//dichiara output pin per LED 
const int pinVerde   = 7;
const int pinRosso   = 8; 
//dichiara pin per ultrasuoni
const int pinTrigger = 9;
const int pinEcho    = 10;
void setup() {
//definisce pin per ultrasuoni
  pinMode(pinTrigger, OUTPUT);
  pinMode(pinEcho, INPUT);
  Serial.begin(9600);
  Serial.print( "Sensore Ultrasuoni: ");
//definisce per LED
  pinMode(pinVerde,OUTPUT);
  pinMode(pinRosso,OUTPUT);
}
 
void loop() { 
  // imposta l'uscita del trigger LOW
  digitalWrite(pinTrigger, LOW);
  // imposta l'uscita del trigger HIGH per 10 microsecondi
  digitalWrite(pinTrigger, HIGH);
  delayMicroseconds(10);
  digitalWrite(pinTrigger, LOW);
  // calcolo del tempo attraverso il pin di echo
  long durata = pulseIn(pinEcho, HIGH);
  long distanza = durata/58.31;  
  Serial.print("distanza: ");
  // dopo 38ms è fuori dalla portata del sensore
  if( durata > 38000 ){
    Serial.println("Fuori portata");
  }
  else{ 
    Serial.print(distanza); 
    Serial.println(" cm");
  }   
  // Aspetta 1000 microsecondi prima di generare l'impulso successivo
  delay(1000);
  //imposta OUTPUT per LED
  digitalWrite(pinVerde, LOW);
  digitalWrite(pinRosso, LOW);
 if(distanza < 10){
    digitalWrite(pinRosso, HIGH);
  }
  else{ 
    digitalWrite(pinVerde, HIGH);
  }   
}

Con questi codici, quando la distanza dal sensore è minore di 10 centimetri, accende LED rosso, altrimenti verde. E quando il tempo di ricevere la segnale per l'ultrasuono è maggiore di 38ms, la situazione viene considerata “fuori portata”.

Foto e video

fisica/strumenti/controllo_led_della_distanza_con_arduino.txt · Ultima modifica: 2021/05/12 14:14 da marco.fu