banner

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 Costo pochi euro

  • Ultrasonic Sensore SR04  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.

 

 

 

12

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

/* Programma che fa accedere un LED rosso, quando c’è un oggettoad 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

 

intmaximumRange = 200; // Maximum range

intminimumRange = 10; // Minimum range

long duration, distance;

 

voidsetup() {

Serial.begin (9600);

pinMode(trigPin, OUTPUT);

pinMode(echoPin, INPUT);

pinMode(LEDPin, OUTPUT); // Inizializza il PIN del LED

}

 

voidloop() {

/* 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);

}