Sketch per sensore geotecnico
#include <LiquidCrystal.h>
LiquidCrystal lcd(12,11,5,4,3,2);//Pin utilizzati per il display
int Analogic=0; // Ingresso Analogico 0
int Teta = 0; // Angolo di inclinazione
void Alarm(); // Routine di allarme
int pin = 7;
unsigned long pulse_High;
double f;
double m=1e-3;
void setup ()
{
lcd.begin(16,2); // Attiva le due righe del display
pinMode(pin, INPUT);
}
void loop()
{
 lcd.setCursor(0,0);
 lcd.print ("Vin= @= ");
================= Lettura del dato analogico ==================
double adc = analogRead(Analogic);
double Vin = adc/1024*5;
lcd.setCursor(4 ,0);
lcd.print (Vin);
======================================================
================ Lettura del dato digitale ====================
 pulse_High = pulseIn(pin, HIGH);
 f=1/(pulse_High*2*m);
 lcd.setCursor(0 ,1);
 lcd.print(" KHz");
 lcd.setCursor(0 ,1);
 lcd.print (f);
======================================================

 if (f > 1.1)
 {
 lcd.setCursor(14,0);
 lcd.print ("3");
 lcd.setCursor(14,1);
 lcd.print ("<");
 Alarm();
 }
 if (f < 0.9)
 {
 lcd.setCursor(14,0);
 lcd.print ("3");
 lcd.setCursor(14,1);
 lcd.print (">");
 Alarm();
 }
 if (f > 0.9 && f < 1.1)
 {
 lcd.setCursor(14,0);
 lcd.print (Teta);
 }
 delay (1000);
}
void Alarm()
{
tone (8,1000,1500); //Pin, Frequenza, Durata in ms.
}


