2010-06-18 8 views
2

Salut, j'ai le code suivant:avec Arduino et analogiques Les valeurs Min Max

sVal = analogRead(potPin); // read the value from the sensor 
    valMin = min(sVal, 1); 
    valMax = max(sVal, 128); 
    constrain(sVal,valMin,valMax); 

    itoa(sVal, res, 10); 
    println(res); 
    println(" "); 
    delay(150); 
    clearScreen(); 

Maintenant, pour une raison quelconque, la sortie sur l'écran GLCD est presque constamment 1023. je voudrais le minimum pour le potentiomètre est égal à 1 et le maximum à 128.

Répondre

5

Votre code indique un manque de compréhension des fonctions min, max et contrainte. Je vous suggère de lire la documentation plus attentivement.

En attendant, voici ce que je pense vous êtes après:

sVal = analogRead(potPin); 
sVal = sVal/8 + 1; //scale value [0.. 1023] to [1.. 128] 

itoa(sVal, res, 10); 
println(res); 
println(" "); 
delay(150); 
clearScreen(); 
+0

Merci, Je l'ai relu;) –

3

il y a aussi une fonction de mappage de gamme déjà dans l'API, par exemple:

res = map(analogRead(potPin), 0,1023, 1,128); 
Questions connexes