lcd.setCursor(0, 1);
int AFCvalue = analogRead(A1); // Read the AFC input on analog pin 1:
float AFC = AFCvalue * (4.5 / 1023.0); // Convert the AFC value (which goes from 0 - 1023) to a voltage (0 - 5V)
if (AFC>2) // A videosignal wil be present higher then 2 volts!
{
digitalWrite(Lockled, HIGH); // Turn Lock LED "ON" when Tuner are Locked on frequency
lcd.setCursor(0,0);
lcd.print(" L ");
lcd.print(AFC);
delay(dt);
}
else
{
digitalWrite(Lockled, LOW); // Turn Lock LED "OFF" when Tuner have no signal
lcd.setCursor(0,0);
lcd.print(" U ");
lcd.print(AFC);
delay(dt);
The output on the LCD "2,38" volt.
My project need a more specific value. example 2,3875 volt. So 4 or maybe 5 digits more are exacter.
My project need a more specific value. example 2,3875 volt. So 4 or maybe 5 digits more are exacter.
If you just want to see more decimal places on your display, do:
lcd.print(AFC,4);
Of course, as other have pointed out, the extra decimals really mean nothing since the ADC on the Arduino is not that accurate. The best you could hope for is about 1 part in 500 accuracy, on a good day, with the wind in the right direction and all that. And the 3-figure output you've already gotten is more than good enough to represent that.
That works great! is there a way to turn off the rounding?
For example I have a float 118.225, I only want to display the first 2 decimal places but lcd.print(COM1A); returns 118.23.
Write your own function. Not rounding is not a good idea. Why do you want to do that?
I'm simulating an aviation radio. 118.225 is a communication frequency. The 3rd decimal place is used for tuning calculation but is not displayed to the pilot. So on my LCD I need it to say COM1 = 118.22 , but when I turn my rotary encoder I'm adding .025 to the frequency. So I need to keep the 3 decimal precision but only display the first 2.
I'm simulating an aviation radio. 118.225 is a communication frequency. The 3rd decimal place is used for tuning calculation but is not displayed to the pilot. So on my LCD I need it to say COM1 = 118.22 , but when I turn my rotary encoder I'm adding .025 to the frequency. So I need to keep the 3 decimal precision but only display the first 2.