[resolu]Problème pour delimiter port analogique

Bonjour. J’ai un petit problème avec une tension qui varie mais pas de 0 a 5v mais de 0,… À 4,…
J’utilise l’entrée analogue 0. Je n’ai donc pas la possibilité de pouvoir faire un pourcentage en divisant la valeur.
mon Max est de 880 sur 1023 et mon min est de 30 sur 1023.
Est ce possible de délimiter ou une autre solution?
Merci d’avance.

Salut,

la fonction map() est faite pour ça...

Gromain

Merci pour l’info, est ce que ma syntaxe est bonne? J’ai donné mes limites hautes et basses. Est il possible d’inverser les valeurs c’est à dire que la valeur pourcent est inversée. Si j’ai 5v j’ai 0% et si j’ai 0V j’ai 100%.(enfin plus du 0,… et du 80-90%).

float sensorValue;
float pourcent;

void setup() {
Serial.begin(9600);
Serial.println(“Video RSSI meter”);
}

void loop() {
sensorValue = analogRead(A0);
sensorValue= map(sensorValue, 130, 750, 750, 130);
pourcent = ((sensorValue /750)*100);

Serial.println("Reception: ");
Serial.println(pourcent);
delay (1000);
}

Yep!

Plus simplement en faisant :

pourcent = map(sensorValue, 130, 750, 0, 100);

Les valeurs receptionnées entre 130 et 750 seront ramenées directement à un pourcentage (entre 0 et 100)

Pour l'inversion faut tester ou prendre des valeurs négatives genre -100 à 0.

@+

Zoroastre.

C’est génial! Merci beaucoup!

Yep!

Tu as réussi l’inversion avec des valeurs positives ? Donnes nous la ligne de commande please ?

@+

Zoroastre.

Pas eu besoins d'inverser quoi que ce soit et ça fonctionne nickel:

float sensorValue; float pourcent;

void setup() { Serial.begin(9600); }

void loop() { sensorValue = analogRead(A0); pourcent = map(sensorValue, 180, 875, 0, 100);

Serial.println("Reception: "); Serial.println(pourcent); delay (1000); }