/*
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,2); //Indirizzo, colonne, righe dello schermo
float distance = 0;
void setup()
{
Serial.begin(9600);
pinMode(TRIGGERPIN, OUTPUT);
pinMode(ECHOPIN, INPUT);
pinMode(LEDPIN, OUTPUT);
lcd.begin(A4, A5);
}
void loop()
{
// Inizio di misura
digitalWrite(TRIGGERPIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIGGERPIN, LOW);
// Lettura dei risultati
float duration = pulseIn(ECHOPIN, HIGH);
distance = duration / 58;
lcd.print("Distance cm: ");
lcd.print(distance);
// Lampeggio di led se scende sotto i 10 cm
if (distance < 10) {
digitalWrite(LEDPIN, HIGH);
}
else {
digitalWrite(LEDPIN, LOW);
}
delay(1000);
lcd.clear();
}