n'afficher la valeur que si le rhéostat a bougé

Bonjour,

Dans un petit programme du débutant que je suis et que j'ai téléchargé, j'affiche la valeur en volts d'une sortie analogique sur le moniteur série.
Le moniteur fait donc défiler cette valeur en permanence, mon but serait de ne l'afficher qu'une fois tant qu'elle reste identique, donc de ne réafficher une autre valeur que si le rhéostat a bougé.
Je cale sur ce problème que je me suis posé.

/*
ReadAnalogVoltage
Reads an analog input on pin 0, converts it to voltage, and prints the result to the serial monitor.

OPEN THE SERIAL MONITOR TO VIEW THE OUTPUT >>
Attach the center pin of a potentiometer to pin A0, and the outside pins to +5V and ground.

This example code is in the public domain.
*/

// the setup routine runs once when you press reset:
void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);
}

// the loop routine runs over and over again forever:
void loop() {
// read the input on analog pin 0:
int sensorValue = analogRead(A0);
// Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):
float voltage = sensorValue * (5.0 / 1023.0);
// print out the value you read:
Serial.println(voltage);
}

Merci,

Bruno

salut ,

il faut mettre votre code entre balise code svp , comme ceci , merci d ' avance .

pour faire ce que vous voulez on se sert generalement de " != " qui veut dire : " different de " dans une condition .

if ( mavariable1 != ma variable2 ) { // si mavariable1 est differente de mavariable2 alors :
serial.println(mavariable2); // j ' imprime sur la sortie serie la valeur de mavariable2.
}

Tu crées une variable supplémentaire, soit globale soit static dans la loop, dans laquelle tu stockes la valeur précédente. Puis après la mesure, tu compares la valeur mesurée avec la valeur précédente et si elles sont différentes, tu affiches et tu mets à jour la valeur précédente avec la valeur courante.

Merci,

Je fais un essai entre balises comme indiqué et je me remets au travail

[/*
ReadAnalogVoltage
Reads an analog input on pin 0, converts it to voltage, and prints the result to the serial monitor.

OPEN THE SERIAL MONITOR TO VIEW THE OUTPUT >>
Attach the center pin of a potentiometer to pin A0, and the outside pins to +5V and ground.

This example code is in the public domain.
*/

// the setup routine runs once when you press reset:
void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);
}

// the loop routine runs over and over again forever:
void loop() {
// read the input on analog pin 0:
int sensorValue = analogRead(A0);
// Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):
float voltage = sensorValue * (5.0 / 1023.0);
// print out the value you read:
Serial.println(voltage);
}]

Voir ici

/*
  ReadAnalogVoltage
  Reads an analog input on pin 0, converts it to voltage, and prints the result to the serial monitor.

  OPEN THE SERIAL MONITOR TO VIEW THE OUTPUT >> 
  Attach the center pin of a potentiometer to pin A0, and the outside pins to +5V and ground.

  This example code is in the public domain.
*/


// the setup routine runs once when you press reset:
void setup() {
  // initialize serial communication at 9600 bits per second:
  Serial.begin(9600);
}

// the loop routine runs over and over again forever:
void loop() {
  // read the input on analog pin 0:
  int sensorValue = analogRead(A0);
  // Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):
  float voltage = sensorValue * (5.0 / 1023.0);
  // print out the value you read:
  Serial.println(voltage);
}

good !!

c ' est bien plus agreable a lire comme ca !

/*
  ReadAnalogVoltage
  Reads an analog input on pin 0, converts it to voltage, and prints the result to the serial monitor.

  OPEN THE SERIAL MONITOR TO VIEW THE OUTPUT >>
  Attach the center pin of a potentiometer to pin A0, and the outside pins to +5V and ground.

  This example code is in the public domain.
*/


// the setup routine runs once when you press reset:
void setup() {
  // initialize serial communication at 9600 bits per second:
  Serial.begin(9600);
}

// the loop routine runs over and over again forever:
void loop() {
  // read the input on analog pin 0:
  int sensorValue = analogRead(A0);
  // Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):
  float voltage = sensorValue * (5.0 / 1023.0);
  // print out the value you read:
  Serial.println(voltage);
int sensorValueNumberTwo = analogRead(A0);
if ( sensorValueNumberTwo !=  sensorValue ) {
// faire ce que vous voulez ici
}
else { // on poireaute 1000 millisecondes
delay (1000);
}
}

Merci et désolé, je vais essayer de créer cette variable supplémentaire...

Bonne soirée,

Bruno