Objectifs

  1. Comprendre la différente entre une valeur Int et Float
  2. Savoir convertir une valeur Int vers Float
  3. Exemple d’utilisation d’une entrée analogique
  4. Savoir calculer l’erreur relative
  5. Etc.

Int

  • char (8 bits), int (16), byte (16), unsigned int (16), long (32)
  • Valeurs entières, discrets
  • La définie des valeurs (max, min) dépend du type de la variable
  • Le pas d’incrémentation minimale est égal à « 1 »
  • Le pas de décrémentation minimale est égal à « -1 »
  • On ne peut pas avoir un pas fractionnel (Ex: 0.1,1.5, etc.)

float, double

  • Valeurs réelles sur 32 bits (float) ou 64 bits (double)
  • Inclut les valeurs entières
  • On peut avoir un pas fractionnel

float (32 bits) Vs double (64 bits)

format float 32 bits

format float 64 bits

Comment convertir une valeur int en float ?

Val_float=(float)Val_int;

Comment convertir une valeur float en int ?

Val_int=Val_float;          // Conversion automatique

// ou bien

Val_int=(int)Val_float;   // Conversion forcée

Exemple

*/

unsigned int ADC_int, A0_int;

float A0_float=0.00;




void setup() {

  // Init serial port

  Serial.begin(9600);

}




void loop() {

  // Lecture entrée analogique A0

  ADC_int=analogRead(A0);




  // Conversion valeur en tension (INT)

  A0_int=5*ADC_int/1023;




  // Conversion valeur en tension (INT)

  A0_float=5.0*(float)ADC_int/1023.0;




  // Affichage des valeurs

  Serial.print("Tension en V, (INT): ");Serial.println(A0_int); 

  Serial.print("Tension en V,  (FLOAT): ");Serial.println(A0_float);

  Serial.print("Erreur en (mV): ");Serial.println(A0_float-(float)A0_int);

  Serial.print("Erreur relative (%): ");Serial.println(100.0*(A0_float-(float)A0_int)/(float)A0_int);

  Serial.print("\n");




  // Loop delay

  delay(1000);  

}
Click to rate this post!
[Total: 0 Average: 0]

1 réflexion sur “Arduino #37: Int Vs float”

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Retour en haut

You have successfully subscribed to the newsletter

There was an error while trying to send your request. Please try again.

FPGA | Arduino | Matlab | Cours will use the information you provide on this form to be in touch with you and to provide updates and marketing.