Pages: [1]   Go Down
Author Topic: [resolu]Problème pour delimiter port analogique  (Read 552 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 34
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
« Last Edit: May 31, 2011, 04:47:42 pm by voodou » Logged

Pays de la betise
Offline Offline
Sr. Member
****
Karma: 4
Posts: 418
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Salut,

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

Gromain
Logged

"pour résoudre un gros problème, il est souvent plus facile de le diviser en petits problèmes élémentaires..."

projet domotique xPLDuino
IRC: freenode #xplduino

0
Offline Offline
Newbie
*
Karma: 0
Posts: 34
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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);
}
« Last Edit: May 31, 2011, 04:38:19 pm by voodou » Logged

0
Offline Offline
God Member
*****
Karma: 2
Posts: 802
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
« Last Edit: May 31, 2011, 04:38:18 pm by zoroastre » Logged

Veuillez indiquer [RESOLU] dans l'entête du titre en éditant votre premier message smiley-wink

0
Offline Offline
Newbie
*
Karma: 0
Posts: 34
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

C'est génial! Merci beaucoup!
Logged

0
Offline Offline
God Member
*****
Karma: 2
Posts: 802
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Yep!

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

@+

Zoroastre.
Logged

Veuillez indiquer [RESOLU] dans l'entête du titre en éditant votre premier message smiley-wink

0
Offline Offline
Newbie
*
Karma: 0
Posts: 34
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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);
}
Logged

Pages: [1]   Go Up
Jump to: