Premier programme avec Arduino

· Read in about 6 min · (1267 words)

J’ai récemment fait acquisition d’un Arduino pour un projet personnel. Durant ma phase d’apprentissage, j’ai pu faire quelques circuits électronique avec la carte Arduino.

Dans cet article, je vais vous montrer mon premier petit programme réalisé avec Arduino. Pour l’instant, j’ai fait une carte relativement simple: 3 LEDs de différentes couleurs (rouge, vert et bleu) vont s’allumer et nous allons contrôler avec un bouton poussoir.

Qu’est-ce qu’est un courant électrique ?

Avant de commencer, petit rappel sur les courants électriques. Un courant électrique, c’est le résultat du déplacement des charges positives + et négatives - dans un conducteur. On parle aussi d’intensité du courant électrique pour déterminer la quantité d’électricité dans le courant dans un intervalle de temps et elle se mesure en Ampère (A).

La différence de potentiel électrique est l’une des caractéristiques qui permettent de définir l’électricité et représente la différence électrique sur deux points du circuit. C’est cette différence qui crée le courant électrique. Cette différence de potentiel est mesuré en voltage (V).

Dans un circuit électrique, les composants peuvent être soumis à une résistance et qui induit une perte d’énergie, cette résistance est mesurée en ohm.

Il existe la loi d’Ohm qui permet de mettre en relation toutes ces données électriques: U = R.I, où U est la tension électrique exprimée en Volt, R est la résistance électrique en Ohm et I est l’intensité électrique exprimée en Ampère.

Ca l’air d’être compliqué comme ça, donc faisons une analogie avec une rivière qui s’écoule du haut d’une montagne vers le bas de la montagne. Pour illustrer tout ceci avec les termes électriques, le haut de la montagne représente le voltage, c’est-à-dire la capacité maximale du potentiel électrique, la descente de la rivière représente l’intensité et durant cette traversée de la montagne, la rivière va rencontrer des obstacles et réduisant ainsi le débit de la rivière, c’est la résistance.

Il est important que comprendre les notions de Voltage, d’Ampérage et de résistance car ces informations sont fournies dans les datasheets des composants et c’est utile pour identifier les résistances qui vont se brancher sur ces composants pour éviter que le courant électrique ne grillent nos composants.

Schéma technique & câblage

Pour ce premier petit programme, nous allons brancher 3 LEDs de couleur rouge, verte et bleue, ainsi qu’un bouton poussoir. Au démarrage de la carte, toutes les LEDs, sont éteintes, puis, lors de l’appuie sur le bouton poussoir, les LEDs vont s’allumer les unes après les autres, puis elles s’éteignent.

Pour réaliser ce programme, nous aurons besoin des composants suivants:

  • 3 LEDs de différentes couleurs
  • 3 résistances de 220 Ohm
  • 1 résistance de 10 kOhm
  • 1 bouton poussoir
  • Des fils de branchements

Voici le schéma électrique que nous allons mettre en place:

Schéma électrique

Comme le montre la figure ci-dessus, nous allons brancher sur le 5V de la carte Arduino notre bouton poussoir et à la sortie du bouton poussoir qui sera relié au pin 2, ainsi qu’une résistance de 10KOhm.

Sur les pins de 3 à 5, nous allons connecter la partie anode de la LED, c’est-à-dire le + sur le pin et sur la pâte cathode de la led, qui est le -, nous allons connecter une résistance de 220Ohm.

Mais pourquoi avoir pris une résistance de 220 Ohm ? C’est une question que je m’étais posé en lisant le livre d’apprentissage et en effectuant mes recherches, j’ai trouvé ma réponse :). Chaque LED possède des caractéristiques qui lui permettent de supporter la charge de courant qu’on lui injecte, ces valeurs sont fournies dans le datasheet du constructeur. Dans le cas de mes LEDs, j’ai pu regarder dans le datasheet disponible sur le site internet d’Arduino les caractéristiques de ces composants. Prenons exemple sur la LED rouge, elle supporte maximum 5V et 30mA.

Pour obtenir la valeur d’une résistance, nous devons utiliser la formule de la loi d’ohm: U = R.I. Nous connaissons U et I, la formule est donc: R = U/I.

Pour reprendre notre exemple de la LED rouge, nous devons connaître sa résistance électrique, mais nous avons le voltage (5V) et son ampérage (30mA), ce qui nous donne le résultat suivant: R = 5 / 0.03 = 166 Ohm. Nous pouvons donc utiliser une résistance de 220 Ohm, cela ne va pas griller notre LED.

Grâce à cette formule, nous pouvons aussi déduire l’intensité maximale de la LED: I = V / R = 5 / 220 = 0.0227 = 23mA. On se rapproche des 30mA maximum que la LED peut supporter. Par ailleurs, nous n’avons que des résistances de 220 Ohm fournit, même si nous pouvons augmenter/réduire les valeurs des résistances en fonction du branchement: série ou dérivation.

Chaque résistance de 220 Ohm sera ensuite reliée à la masse (GND).

Voilà mon premier circuit électrique:

Montage final

Réalisation du programme

Maintenant que nous avons réalisé notre montage, nous allons pouvoir faire le code. Pour cela, il faut d’abord téléchargé l’IDE d’arduino. Lorsque l’installation est terminée, nous pouvons connecter notre arduino à l’ordinateur via un câble USB.

Pour contrôler le circuit électrique, Arduino fournit deux principales fonctions: void setup() et void loop(). C’est dans ces fonctions que nous allons écrire notre code.

Tout d’abord, nous allons créer deux variables dites ‘globales’ en dehors de ces fonctions:

int leds[3];
int LEDS = 3;

La première variable est un tableau d’entier qui va contenir le pin de connexion vers l’une des LED et la seconde variable est le nombre de LEDs dans ce tableau. Dans la fonction setup, nous allons initialiser notre variable int leds[3] et de configurer nos pins grâce à la méthode pinMode():

// Defines our LEDS connected in pin
leds[0] = 5; // Red
leds[1] = 4; // Blue
leds[2] = 3; // Green
  
pinMode(leds[0], OUTPUT);
pinMode(leds[1], OUTPUT);
pinMode(leds[2], OUTPUT);
pinMode(2, INPUT);

Dans cette configuration, nous indiquons à Arduino que les pins de 3 à 5 sont en sortie, c’est-à-dire que le courant va alimenter nos LED et sur le pin 2, la source d’énergie sera en entrée. Maintenant passons à la fonction loop pour allumer nos LEDs. Notre bouton poussoir va permettre de contrôler nos LEDs, nous devons donc récupérer l’état, c’est-à-dire s’il a été appuyé ou pas. Pour permettre de récupérer l’état d’un composant, nous devons utiliser la fonction digitalRead() qui prend en paramètre le pin de connexion. La valeur de retour (HIGH ou LOW) de cette fonction sera stockée dans une variable que nous appellerons switchState.

Reste maintenant à allumer les LEDs ou les éteindres en fonction de l’état du bouton poussoir stockée dans la variable switchState. Pour modifier l’état d’une LED, nous utilisons la méthode digitalWrite():

for (int i = 0; i < LEDS; i++)
      digitalWrite(leds[i], LOW);

Nous avons fini avec le code, reste plus qu’a déployé le code sur l’Arduino et voir nos LEDs s’allumer lorsque nous appuyons sur le bouton.

Voici le code complet:

int leds[3];
int LEDS = 3;
 
void setup() {
  // Defines our LEDS connected in pin
  leds[0] = 5; // Red
  leds[1] = 4; // Blue
  leds[2] = 3; // Green
  
  pinMode(leds[0], OUTPUT);
  pinMode(leds[1], OUTPUT);
  pinMode(leds[2], OUTPUT);
  pinMode(2, INPUT);
}

void loop() {
  int switchState = digitalRead(2);  

  // If push button isn't pushed
  if (switchState == LOW){
    for (int i = 0; i < LEDS; i++)
      digitalWrite(leds[i], LOW);
  }
  else{
    for (int i = 0; i < LEDS; i++){
      digitalWrite(leds[i], HIGH);
      delay(1000); // Add a delay of 1s
    }
  }
}

Conclusion

Les débuts sur arduino sont très prometteuris, je m’amuse vraiment à faire des circuits, même si mes connaissances en électronique sont limités, mais je ferais d’autres articles à ce sujet.

Pour ceux qui souhaitent s’initier dans l’électronique, je recommande vivement Arduino.