4. So: Vrms = Vmax/2. if ((frq >= 10000)&& (frq < 100000)) {range=4; floatfrq=floatfrq/1000;}; This one should be good: FreqMeasure Library, for Measuring Frequencies in the 0.1 to 1000 Hz range, or RPM Tachometer Applications Give it a try, I'm curious if that is okay for you. 4 years ago, how to make your coding compatible to arduino wemos d1 r1?urgent, Question Thanks Rodmcm! Then I put the output to the digital PIN 2 of Arduino UNO. One thing I forgot to mention in my previous post. FreqMeasure.countToFrequency() appears to take the array values and return a float, the calculation of which depends on the type of processor that the code is running on and hence its frequency. Google not working for you? sign in The difference between the start time and this time is used to calculate the RE to RE timing. For low freqencies it is lower. Poll the pin connected to the input pin on the rising edge (or falling edge), at beginning of the measurement. You are looking for a frequency counter (1Hz-3MHz) that can also display period time? That's certainly a great learning experience. else The hardware is simple, all you need is a 2x16 LCD display. } }, pinMode(5,INPUT); Three measurement time intervals are also available - 0.1, 1 and 10 seconds. Otherwise, I could use the half of the period as the pulse width of the signal i.e. Most likely because the free running timer0 interrupts used by the arduino start-up code to support the delay () and millis () and micros () function would add a element of variable latency to responding to the timer interrupt used by the frequency counter function. Palliser Counter1 : 16 bits / used to count the frequency impules Counter2 : 8 bits / used to genarate a 1000ms or 100ms gate time for measurement I use "bitClear (TIMSK0,TOIEO)" instead of "TIMSK0 &=~ (1<