/*
Visualizzare su un display la distanza rilevata tramite un sensore di prossimità, facendo lampeggiare un led se questa diminuisce sotto i 10cm
*/
#include <LiquidCrystal_I2C.h>
#define ALLARMLIMIT 10
#define LEDPIN 8
#define TRIGGERPIN 3
#define ECHOPIN 2
LiquidCrystal_I2C lcd (0x27,20,4);
void setup() {
lcd.init(); /*inizializzazione*/
lcd.backlight(); /*credo che serva per la illuminazione dello schermo lcd (?)*/
pinMode(LEDPIN, OUTPUT);
pinMode(TRIGGERPIN, OUTPUT);
pinMode(ECHOPIN, INPUT);
lcd.clear();
}
int leggi_distanza(){
digitalWrite(TRIGGERPIN, LOW);
delayMicroseconds(50); /*faccio dei piccoli delay perchè sennò sarebbe troppo veloce */
digitalWrite(TRIGGERPIN, HIGH);
delayMicroseconds(50);
digitalWrite(TRIGGERPIN, LOW);
int durata = pulseIn(ECHOPIN,HIGH);
int distanza = durata * 0.034 / 2;
//formula in base al sensore trovata su internet
return distanza; //ovviamente ritorno la distanza perchè sennò non avrebbe senso questa funzione
}
void loop() {
// put your main code here, to run repeatedly:
int distanza = leggi_distanza();
lcd.setCursor(0,0);
lcd.print("Distanza: ");
lcd.print(distanza);
lcd.print(" cm");
if(distanza > ALLARMLIMIT){
digitalWrite(LEDPIN, LOW);
}else{
digitalWrite(LEDPIN, HIGH);
}
}