Bonsoir,
Dans un sckech, j'affiche la tension d'une batterie sur un lcd 4X20.
Je voudrais avoir un affichage avec uniquement une décimale après la virgule.
Ca marche sur le moniteur série de l'IDE, mais sur le lcd j'ai deux décimales.
C'est une variable float. Comment puis je procéder.
fifi82:
par contre tu peux me montrer ton montage pour mesurer la tension de la batterie ça m'intéresse
Il y a une solution logicielle pour évaluer la tension qui alimente l'ADC.
const long internalReferenceVoltage = 1108L; Valeur a régler en fonction des résultats donnés par la fonction suivante.
unsigned int battVolts; // Memorise la tension d'alimentation
for (int i = 0; i <= 3; i++) battVolts = getBandgap(); //4 readings seem required for stable value?
A0milliVolts = map(analogRead(value1), 0, 1023, 0, battVolts); // C'est ce qu'on voulait atteindre.
//La tension mesurée est maintenant indépendante de la tension d'alimentation de l'Arduino (dans les limites raisonnables)
// *** Routine de self-calibrage ***
// Function created to obtain chip's actual Vcc voltage value, using internal bandgap reference
// This provides ability to maintain A/D calibration with changing Vcc
// For 328 chip only, mod needed for 1280/2560 chip
int getBandgap(void)
{
// REFS1 REFS0 --> 0 1, AVcc internal ref.
// MUX3 MUX2 MUX1 MUX0 --> 1110 1.1V (VBG)
ADMUX = (0 << REFS1) | (1 << REFS0) | (0 << ADLAR) | (1 << MUX3) | (1 << MUX2) | (1 << MUX1) | (0 << MUX0); // Start a conversion
ADCSRA |= _BV( ADSC ); // Wait for it to complete
while ( ( (ADCSRA & (1 << ADSC)) != 0 ) ); // Scale the value
unsigned int results = (((internalReferenceVoltage * 1024L) / ADC) + 5L) ;
return results;