Inizio loop con ingresso sensore o pulsante

intanto ho risolto, bastava mettere il decimale anche in almeno di uno dei due moltiplicandi in modo da avere anche il prodotto con decimali.

Momentaneamente il tutto funziona.
poi implementerò altre funzioni nel display come contatore cronometro e magari anche l'ora.

A presto!!

Gustavo

Ciao Leo & Company:
Mentre provavo a fare dei test mi sono reso conto che mi da la frequenza ad ogni impulso ma a me servirebbe che la frequenza sia dimezzata. Ho pensato a dividere per 2 con una semplice operazione ma mi ritrovo che mi da due frequenze non uguali a ogni colpo.
La soluzione sarebbe riuscire a conteggiare un solo impulso su due. Ho provato diverse soluzioni ma non ci riesco ancora ad avere il rilievo di un colpo su due.

Vi allego lo sketch definitivo per vedere se riuscirete a darmi una mano. Quasi sicuro è semplicisimo ma oggi non ci arrivo proprio!!!!

//Contacolpi con sistema di antirimbalzo del pulsante o del contatto di rilevamento
//Risultato della frequenza con decimali

// dai un nome agli ingressi e definisci il tipo di variabile
int ledrosso = 9;//variabili intere
int ledverde = 10;
int pulsante ;
int conteggio;//conteggio cicli per antirimbalzo
unsigned long cc;//conteggio cicli attivi per temporizzazione
float f;//frequenza (float = numero con decimale)
unsigned long t;//timer dei milisecondi
unsigned long previousMillis = 0;

//Richiamo librerie e definizioni segnali su piedini del display


#include <LCD5110_Basic.h>

LCD5110 myGLCD(3,4,5,6,7);
extern uint8_t SmallFont[];
extern uint8_t MediumNumbers[];
extern uint8_t BigNumbers[];

// setta uscite e ingressi
void setup()
{               
  pinMode(ledrosso, OUTPUT);  
  pinMode(ledverde, OUTPUT);  
  pinMode(pulsante, INPUT);
  Serial.begin(9600); //setta il monitor seriale
  
  //setup per display grafico
  
   myGLCD.InitLCD();
  myGLCD.setContrast(60);
  
  
}

// inizio del loop
void loop() 

{

  pulsante = digitalRead(2); //definizione ingresso digitale al pin()
  
  if (pulsante == HIGH)//se il pulsante viene premuto segui le operazioni sotto
                      //altrimenti saltale fino alla prima parentesi graffa
{ 
  digitalWrite(ledrosso, LOW);    // spegni il led rosso
  for (int conteggio=0; conteggio<=35; conteggio++)//conteggio di "x" cicli per creare l'antiriblalzo del pulsante
  {
  digitalWrite(ledverde, HIGH);  // accendi il led verde

Serial.println(f); //visualizza la frequenza al minuto

//Impostazioni numeri sul display
    
    myGLCD.setFont(BigNumbers);//numeri grandi sulla prima riga
    myGLCD.printNumF(float(f)/2, 1, CENTER, 0);//definizione conteggio dei numeri piccoli al centro dello schermo,con decimale(float) e divisione per due del prodotto
   

}
unsigned long currentMillis = millis();

 t = currentMillis - previousMillis;
    previousMillis = currentMillis; 
    
     f = 60000.0/t; //calcolo della frequenza al minuto   

 digitalWrite(ledverde, LOW);
}
   if (pulsante == LOW)//se il pulsante è rilasciato
  {
 digitalWrite(ledrosso, HIGH);   // accendi il led rosso, situazione di standby

}
}