Ciao a tutti avrei bisogno di una mano per far funzionare questo sketch.
Deve contare gli impulsi (5V) sul pin 2 di arduino (ho messo un interruttore e una resistenza tra 2 e GND)
#include <U8glib.h> // U8glib library
int ingresso = 2; //Piedino di ingresso sensore
int flusso; //Quantità di gocce
volatile int count; //Variabile di conteggio
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0 | U8G_I2C_OPT_NO_ACK | U8G_I2C_OPT_FAST); // Fast I2C / TWI
void setup() {
pinMode (ingresso, INPUT); //Imposta piedino 2 in ingresso
attachInterrupt (0, impulso, RISING); //Configura interrupt 0 pin 2
Serial.begin (9600); //Velocità seriale
u8g.begin();
}
void loop() {
Serial.println ("ContaImpulsi");
bool S=digitalRead(2);
count = 0; //Resetta il conteggio
interrupts(); //Abilita gli interrupt
delay (30000); //Pausa di 30 secondi
noInterrupts(); //Disabilita gli interrupt
flusso = (count*2);
Serial.print (flusso); //Scrive a schermo la variabile flusso
Serial.println (" imp/min");
u8g.firstPage();
do
{
// Scrivo lettura
u8g.setFont(u8g_font_helvB12); // select font u8g_font_fub17r
u8g.drawStr(40, 30, "Rate"); // put string of display at position Y, X
u8g.setPrintPos(40, 50); // set position
u8g.print(flusso, 1); //
u8g.println(" imp/min");
} while ( u8g.nextPage() );
}
void impulso() {
count = count + 1; //Incrementa count di 1
}
il problema è che il conteggio è totalmente sballato
probabilmente la lettura è affetta da rumore ma non riesco proprio ad eliminarlo. C'è un modo per rendere la lettura più robusta?



