« Exercices de lecture de capteurs » : différence entre les versions

De Fab Lab Sud31-Val d'Ariège
Aller à la navigation Aller à la recherche
(Initialisation de la page)
 
 
(7 versions intermédiaires par 2 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
== Résumé ==
*Lecture numérique : le bouton.
*Lecture analogique : la photo-résistance.
*Lecture d'une valeur numérique : le bouton.
*Lecture d'une valeur analogique : la photo-résistance.

== Lecture d'une valeur numérique ==

=== Notes ===
*Évoquer le pull up / pull down pour éviter valeurs flottantes (+ résistance interne de 100 MΩ)

=== Branchement ===
[[Fichier:lecture_bouton.png|200px|thumb|right|Branchements pour une lecture de bouton]]

*La broche 5V de l'Arduino à un côté du bouton poussoir
*L'autre côté du bouton poussoir à
**Une patte d'une résistance de 10 kΩ
**Une patte d'une résistance de 330 Ω
*L'autre patte de la résistance de 10 kΩ à la broche GND de l'Arduino
*L'autre patte de la résistance de 330 Ω à la broche 9 de l'Arduino

<br clear=all>

=== Code source ===
<pre>
// La fonction setup est exécutée une unique fois quand on appuie sur le bouton RESET ou alimente la carte
void setup() {
// Initialise la broche 9 comme entrée
pinMode(9, INPUT);

// Initialise la console série
Serial.begin(9600);
}

// La fonction loop est exécutée indéfiniment
void loop(){
// Lit l'état du bouton
byte etat = digitalRead(9);

// Affiche l'état du bouton dans la console série
if (etat == HIGH) {
Serial.println("Bouton pressé");
} else {
Serial.println("Bouton relaché");
}

delay(100);
}
</pre>

== Lecture d'une valeur analogique ==

=== Notes ===
*Illustrer le problème de valeurs flottantes
*Notion de pont diviseur de tension
<pre>

Vin ---
|
R1
|
|---- Vout
|
R2
|
GND ---

Vout = Vin x R2 / (R1+R2)

</pre>

=== Branchement ===
[[Fichier:lecture_analogique.png|200px|thumb|right|Branchements pour une lecture analogique]]

*La broche GND de l'Arduino à une patte d'une résistance de 10 kΩ
*La patte de la résistance à une patte de la photo résistance
*L'autre patte de la photo résistance à la broche 5V de l'Arduino
*La broche A0 de l'Arduino à la jonction de la photo résistance et de la résistance de 10 kΩ

<br clear=all>

=== Code source ===
<pre>
// La fonction setup est exécutée une unique fois quand on appuie sur le bouton RESET ou alimente la carte
void setup() {
// Initialise la console série
Serial.begin(9600);
}

// La fonction loop est exécutée indéfiniment
void loop(){
// Lit l'état de l'entrée analogique 0
int valeur = analogRead(A0);

// Affiche la valeur brute et la valeur convertie en volt dans la console série
Serial.print("Valeur brute : ");
Serial.print(valeur);
float tension = 5.0 / 1024.0 * (float)valeur;
Serial.print(" ; tension : ");
Serial.print(tension);
Serial.println("V");

delay(100);
}
</pre>

Dernière version du 20 septembre 2015 à 07:52

Résumé

  • Lecture d'une valeur numérique : le bouton.
  • Lecture d'une valeur analogique : la photo-résistance.

Lecture d'une valeur numérique

Notes

  • Évoquer le pull up / pull down pour éviter valeurs flottantes (+ résistance interne de 100 MΩ)

Branchement

Branchements pour une lecture de bouton
  • La broche 5V de l'Arduino à un côté du bouton poussoir
  • L'autre côté du bouton poussoir à
    • Une patte d'une résistance de 10 kΩ
    • Une patte d'une résistance de 330 Ω
  • L'autre patte de la résistance de 10 kΩ à la broche GND de l'Arduino
  • L'autre patte de la résistance de 330 Ω à la broche 9 de l'Arduino


Code source

// La fonction setup est exécutée une unique fois quand on appuie sur le bouton RESET ou alimente la carte
void setup() {
  // Initialise la broche 9 comme entrée
  pinMode(9, INPUT);

  // Initialise la console série
  Serial.begin(9600);
}

// La fonction loop est exécutée indéfiniment
void loop(){
  // Lit l'état du bouton
  byte etat = digitalRead(9);

  // Affiche l'état du bouton dans la console série
  if (etat == HIGH) {
    Serial.println("Bouton pressé");
  } else {
    Serial.println("Bouton relaché");
  }

  delay(100);
}

Lecture d'une valeur analogique

Notes

  • Illustrer le problème de valeurs flottantes
  • Notion de pont diviseur de tension

Vin ---
      |
      R1
      |
      |---- Vout
      |
      R2 
      |
GND ---

Vout = Vin x R2 / (R1+R2)

Branchement

Branchements pour une lecture analogique
  • La broche GND de l'Arduino à une patte d'une résistance de 10 kΩ
  • La patte de la résistance à une patte de la photo résistance
  • L'autre patte de la photo résistance à la broche 5V de l'Arduino
  • La broche A0 de l'Arduino à la jonction de la photo résistance et de la résistance de 10 kΩ


Code source

// La fonction setup est exécutée une unique fois quand on appuie sur le bouton RESET ou alimente la carte
void setup() {
  // Initialise la console série
  Serial.begin(9600);
}

// La fonction loop est exécutée indéfiniment
void loop(){
  // Lit l'état de l'entrée analogique 0
  int valeur = analogRead(A0);

  // Affiche la valeur brute et la valeur convertie en volt dans la console série
  Serial.print("Valeur brute : ");
  Serial.print(valeur);
  
  float tension = 5.0 / 1024.0 * (float)valeur;
  Serial.print(" ; tension : ");
  Serial.print(tension);
  Serial.println("V");

  delay(100);
}