Lezione 3 su Arduino: Sensori di distanza (to be continued)

Lezione 3 su Arduino: Sensori di distanza (to be continued)

In questa terza lezione su Arduino, vedremo come utilizzare alcuni sensori, che ci permetteranno di fare delle misure, sugli oggetti che si avvicino al sensore. Il meccanismo della lettura della distanza è abbastanza semplice: il sensore manda una onda sonora, di cui si conosce la velocità e attraverso il calcolo del tempo impiegato dall’onda a ritornare indietro, è possibile calcolare la distanza dell’oggetto.

Requisiti per la lettura della distanza 

  • LED Schermata 2013-05-24 alle 09.40.56Costo pochi euro
  • Ultrasonic Sensore SR04 logo Costo 5 euro ed è acquistabile su Ebay

 

1° Programma: Leggiamo la distanza dell’oggetto dal sensore e accendiamo un LED

In questo programma, sfrutteremo il sensore ad ultrasuoni per calcolare la distanza di un oggetto in movimento e faremo accedere un LED, qualora questo oggetto si trovi ad una distanza inferiore ad un determinato valore. Per quanto riguardi i collegamenti, basta seguire quelli mostrati nella seguente figura. Inoltre sarà necessario inserire un LED al PIN 13, con l’anodo in quest’ultimo pin e il catodo collegato a massa.

2wire_bb

 

 

 

/* Programma che fa accedere un LED rosso, quando c'è un oggetto ad una certa distanza
 HC-SR04 sensore di distanza
 VCC al arduino 5v 
 GND al arduino GND
 Echo al Arduino pin 7 
 Trig al Arduino pin 8
 */

#define echoPin 7 // Echo Pin
#define trigPin 8 // Trigger Pin
#define LEDPin 13 // LED

int maximumRange = 200; // Maximum range 
int minimumRange = 10; // Minimum range 
long duration, distance; 

void setup() {
 Serial.begin (9600);
 pinMode(trigPin, OUTPUT);
 pinMode(echoPin, INPUT);
 pinMode(LEDPin, OUTPUT); // Inizializza il PIN del LED
}

void loop() {
/* La seguente funzione permette di ricavare la distanza a cui si trova un oggetto, vicino al sensore */
 digitalWrite(trigPin, LOW); 
 delayMicroseconds(2); 

 digitalWrite(trigPin, HIGH);
 delayMicroseconds(10); 

 digitalWrite(trigPin, LOW);
 duration = pulseIn(echoPin, HIGH);

/* Calcola la distanza in centimetri dall'oggetto*/
 distance = duration/58.2;

 if (distance <= minimumRange){
/* Si accedende il LED rosso, se l'oggetto si trova a meno di una certa distanza*/
 Serial.println("-1");
 digitalWrite(LEDPin, HIGH); 
 }
 else {
/* Viene mostrata la distanza nel seriale */
 Serial.println(distance);
 digitalWrite(LEDPin, LOW); 
 }

 delay(50);
}

Distance_LED

 

 

 

Blogger