SIK Experiment Guide for the Arduino 101/Genuino 101 Board (French)

This Tutorial is Retired!

This tutorial covers concepts or technologies that are no longer current. It's still here for you to read and enjoy, but may not be as useful as our newest tutorials.

Pages
Contributors: D___Run___
Favorited Favorite 0

Expérience 5 : Lire la pression d'un bouton

Introduction

Jusqu'à présent, nous nous sommes principalement intéressés aux sorties. Nous allons maintenant examiner l'autre extrémité du spectre et nous amuser avec des entrées. Dans l'expérience 2, nous avons utilisé une entrée analogique pour lire le potentiomètre. Ici, nous allons lire l'une des entrées les plus courantes et simples (un bouton-poussoir) à l'aide d'une entrée numérique. Ce bouton nous servira à alterner les différentes couleurs sur la LED RVB.

Composants nécessaires

Vous aurez besoin des composants suivants :

  • 1 plaque Breadboard
  • 1 carte Arduino 101 ou Genuino 101
  • 1 LED RVB
  • 3 résistances 100 Ω
  • 8 cavaliers
  • 1 bouton-poussoir
  • 1x résistances 10 kohms

Vous n'avez pas le SIK ?

Pour réaliser cette expérience sans le SIK, nous vous suggérons d'utiliser les composants suivants :

Breadboard - Self-Adhesive (White)

Breadboard - Self-Adhesive (White)

PRT-12002
$5.50
48
Jumper Wires - Connected 6" (M/M, 20 pack)

Jumper Wires - Connected 6" (M/M, 20 pack)

PRT-12795
$2.10
2
Momentary Pushbutton Switch - 12mm Square

Momentary Pushbutton Switch - 12mm Square

COM-09190
$0.55
4
LED - RGB Clear Common Cathode

LED - RGB Clear Common Cathode

COM-00105
$2.25
3
Resistor 10K Ohm 1/6th Watt PTH - 20 pack

Resistor 10K Ohm 1/6th Watt PTH - 20 pack

COM-11508
$0.95

Resistor 100 Ohm 1/4th Watt PTH - 20 pack

COM-13761
Retired

Vous aurez également besoin d'une carte Arduino 101 ou Genuino 101.

Arduino 101

DEV-13787
9 Retired

Genuino 101

DEV-13984
Retired

Lectures suggérées

Avant de poursuivre ce guide, nous vous recommandons de vous familiariser avec les concepts des tutoriels suivants :

Présentation du bouton-poussoir

alt text

Un bouton-poussoir momentané ferme le circuit uniquement lorsque l'on appuie dessus. Il possède quatre broches réparties en deux ensembles (chacun composé de deux broches). Quand vous appuyez sur le bouton et entendez un « clic », le bouton établit le contact avec les deux ensembles et permet au courant de traverser le circuit.

Comment savoir quelles broches sont reliées ? Les boutons fournis dans ce kit ne peuvent rentrer dans la rainure de la plaque breadboard que dans une seule direction. Une fois le bouton bien inséré dans la plaque breadboard (dans la rainure), les broches sont reliées horizontalement. Les broches situées vers le haut de la plaque sont connectées, tout comme celles situées vers le bouton.

Note : Tous les boutons ne présentent pas ce format. Consultez la fiche technique de votre bouton spécifique pour déterminer les broches reliées.

Branchement du matériel

Vous êtes prêt à tout raccorder ? Consultez le schéma de câblage et les photos ci-dessous pour savoir comment faire.

Faites particulièrement attention aux marquages indiquant comment placer les composants sur la plaque breadboard, car les composants polarisés ne peuvent être connectés à un circuit que dans une direction.

Schéma de câblage de l'expérience

alt text

Pour agrandir le circuit, cliquez sur le schéma.

Entrée numérique

Précédemment, nous avons utilisé les broches analogiques pour l'entrée. À présent, nous allons utiliser les broches numériques, également pour l'entrée. Comme les broches numériques ne connaissent que les signaux Haut et Bas (HIGH et LOW), elles sont parfaites pour créer une interface avec les boutons-poussoirs et les commutateurs, qui n'ont également que deux états (allumé et éteint).

Nous allons relier un côté du bouton-poussoir à la terre et l'autre côté à une broche numérique. Lorsque nous appuyons sur le bouton-poussoir, la broche se connecte à la terre ; la carte Arduino la lit donc comme étant « LOW ».

Mais que se passe-t-il quand vous n'appuyez pas sur le bouton ? Dans cet état, la broche est déconnectée de tout, état que nous appelons « flottant ». La broche est-elle lue comme un signal HIGH ou LOW ? C'est difficile à dire, car il n'y a pas de connexion solide, ni au 3,3 V, ni à la terre. La broche pourrait donc être les deux.

Pour régler ce problème, nous allons connecter une petite résistance (10K ou 10 000 Ohms) entre la broche de signal et le 3,3 V. Cette résistance de « rappel » garantit que lorsque vous n'appuyez PAS sur le bouton, la broche aura toujours une faible connexion au 3,3 V et sera donc lue comme un signal HIGH.

Avancé : Lorsque vous serez habitué aux résistances de rappel et saurez quand il faut les utiliser, vous pourrez activer les résistances de rappel internes sur le processeur ATmega dans Arduino. Voir http://arduino.cc/en/Tutorial/DigitalPins pour plus d'informations.

Ouverture du sketch

Ouvrez l'EDI Arduino sur votre ordinateur. Le codage en langage Arduino contrôlera votre circuit. Ouvrez le code du Circuit 5 en accédant au « Code du guide SIK 100 » que vous avez précédemment téléchargé et placé dans votre dossier « Examples ».

Pour ouvrir le code, cliquez sur : File > Examples > 101 SIK Guide Code > Circuit_05

Vous pouvez également copier et coller le code suivant dans l'EDI Arduino. Cliquez sur Télécharger et observez ce qu'il se passe.

language:cpp
/*
SparkFun Inventor's Kit
Example sketch 05

PUSH BUTTONS

  Use pushbuttons for digital input

This sketch was written by SparkFun Electronics,
with lots of help from the Arduino community.
This code is completely free for any use.
Visit http://learn.sparkfun.com/products/2 for SIK information.
Visit http://www.arduino.cc to learn about the Arduino.

*/

// First we'll set up constants for the pin numbers.
// This will make it easier to follow the code below.

 // pushbutton pin
 const int buttonPin = 3;

 //RGB LED pins
 const int redPin = 11;    
 const int greenPin = 10;
 const int bluePin = 9;

//create a variable to store a counter and set it to 0
int counter = 0;
void setup()
{
  // Set up the pushbutton pins to be an input:
  pinMode(buttonPin, INPUT);

  // Set up the RGB pins to be an outputs:
  pinMode(redPin, OUTPUT);  
  pinMode(greenPin,OUTPUT);
  pinMode(bluePin,OUTPUT);
}

void loop()
{
 // local variable to hold the pushbutton states
  int buttonState;  

  //read the digital state of buttonPin with digitalRead() function and store the           //value in buttonState variable
  buttonState = digitalRead(buttonPin);

  //if the button is pressed increment counter and wait a tiny bit to give us some          //time to release the button
  if (buttonState == LOW) // light the LED
  {
    counter++;
    delay(150);
  }

  //use the if satement to check the value of counter. If counter is equal to 0 all         //pins are off
  if(counter == 0)
  {
   digitalWrite(redPin,LOW);
   digitalWrite(greenPin,LOW);
   digitalWrite(bluePin,LOW);
  }

  //else if counter is equal to 1, redPin is HIGH
  else if(counter == 1)
  {
   digitalWrite(redPin,HIGH);
   digitalWrite(greenPin,LOW);
   digitalWrite(bluePin,LOW);
  }

  //else if counter is equal to 2 greenPin is HIGH
  else if(counter ==2)
  {
   digitalWrite(redPin,LOW);
   digitalWrite(greenPin,HIGH);
   digitalWrite(bluePin,LOW);
  }

  //else if counter is equal to 3 bluePin is HIGH
  else if(counter ==3)
  {
   digitalWrite(redPin,LOW);
   digitalWrite(greenPin,LOW);
   digitalWrite(bluePin,HIGH);
  }

  //else reset the counter to 0 (which turns all pins off)
  else
  {
   counter =0;
  }
}

À propos du code

pinMode(buttonPin, INPUT);

Les broches numériques peuvent servir d'entrées et de sorties. Avant toute chose, vous devez indiquer à la carte Arduino dans quelle direction vous allez.

buttonState = digitalRead(buttonPin);

Pour lire une entrée numérique, utilisez la fonction digitalRead(). Elle renvoie HIGH si 3,3 V sont présents au niveau de la broche ou LOW pour 0 V.

if (button1State == LOW)

Comme nous avons connecté le bouton à la terre, elle lit LOW quand vous appuyez sur le bouton. Ici, nous utilisons l'opérateur « d'équivalence » ("==") pour savoir si quelqu'un appuie sur le bouton.

Ce que vous devez voir

La LED doit s'allumer quand vous appuyez sur l'un des boutons et s'éteindre quand vous appuyez sur les deux (examinez le code pour savoir pourquoi !). Dans le cas contraire, vérifiez que vous avez monté correctement le circuit et téléchargé le code sur votre carte. SI le problème persiste, consultez la section Dépannage.

alt text

Dépannage

La LED ne s'allume pas

Le bouton-poussoir étant carré, il peut facilement être placé dans le mauvais sens. Faites-le tourner à 90 degrés pour voir s'il fonctionne.

Déçu ?

Ne vous inquiétez pas. Ces circuits sont tous extrêmement simples pour faciliter la manipulation des composants mais en les réunissant, vous pourrez créer ce que vous voulez.