Sommaire.

C’est quoi Arduino ?

Arduino Uno est une carte avec un micro-contrôleur (c’est à dire un processeur) AT mega 328, et une horloge de 16 Mhz, avec de 32 Ko de mémoire pour des programmes. C’est une carte open source, c’est à dire qu’en principe tout le monde peut construire sa carte arduino sans avoir à verser de droit d’auteur, les plans de câblage sont en accès libre (ce n’est pas notre but ici).

arduino_comC’est une carte très simple, et très proche d’une carte d’ordinateur. Elle contient entre autre des entrées :

  • 14 broches (pin) numériques (numérotées sur la carte de 0 à 13) qui peuvent être utilisées comme entrée numérique ou comme sortie numérique grâce à des instructions comprises par la carte (pinMode() ou digitalWrite() ou digitalRead()). La résolution de ces broches est de 2^{7} c’est à dire de 0 à 127.
  • 1 communication série (c’est la broche Rx pour recevoir des informations et Tx pour transmettre des informations).
  • 6 broches analogiques (numérotées sur la carte de 0 à 5) qui peuvent être utilisées comme entrée analogique avec une résolution de 2^{10} c’est à dire de 0 à 1023.

La carte arduino peut se programmer à l’aide d’un langage de programmation proche du C++ (voici quelques éléments de langageici )

La carte arduino a été créée en Italie par une équipe rassemblée autour de
Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino et David Mellis.

Et enfin, on peut ajouter à cette carte d’autres cartes, des shields (boucliers en anglais) pour lui permettre d’acquérir d’autres fonctionnalités (communication Wifi, contrôle de moteur pour robot, communication Ethernet).

Installation et premier programme Arduino.

IDE Arduino

Avant d’utiliser la carte Arduino Uno, il faut télécharger le logiciel d’environnement intégré qui permettra de créer des programmes et de les charger sur la carte (Arduino IDE 1.0.5 par exemple).

EDI_arduino_telechargement

Programme de test.

Le premier programme que nous allons faire est très simple, il consiste à allumer et éteindre une LED. Ce programme va nous permettre de tester l’IDE, la carte et le montage électronique.

Quelques rappels d’électronique.

Pour ce montage, il faut une résistance d’une valeur de 330 ohms, sur les résistances il existe un code de couleur permettant de connaître leur valeur.

r10kOOn place la bande or ou argentée à droite, la lecture se fait de la gauche vers la droite.

  • Si la résistance a 4 bandes de couleur, la couleur de la première bande donne un chiffre, la seconde le deuxième chiffre et la troisième bande le facteur multiplicateur (sur cette diode, deux bandes oranges et une marron soit 330), la dernière bande (or ou argentée) donne la précision.
  • Si la résistance a 5 bandes de couleur, la couleur de la première bande donne un chiffre, la seconde le deuxième chiffre, la troisième bande donne le troisième chiffre et la quatrième bande donne le facteur multiplicateur, la dernière bande (or ou argentée) donne la précision.
  • Sur le site suivant, on peut déterminer valeur d’une résistance à partir de son code couleur.

Il faut aussi une diode électroluminescente (LED), ces diodes ont un sens de montage dans le circuit qu’il faut respecter sans quoi la diode grille et n’est plus utilisable.

led_rouge_comLa diode a deux broches :

  • l’une est grande c’est l’anode (c’est à dire la broche positive) qu’il faudra brancher à une tension de 5v.
  • l’autre est plus petite, c’est la cathode (c’est à dire la broche négative) qu’il faudra brancher à la masse (GND ground)

Dans le circuit, il faudra limiter le courant dans la LED avec une résistance de 330 Ohms.

Câblage.

Il faut commencer par câbler les éléments comme sur le schéma ci-dessous.

La résistance de 330 Ohms est reliée à la broche digitale n° 2, la masse (GND) prise sur la carte est reliée à la broche – de la LED.

Enfin il faut relier l’ordinateur à la carte à l’aide du câble USB (celui-ci permettra d’alimenter la carte et de charger le programme).

mont_test_arduino_LED

Mise en place du programme.

Lancer l’EDI d’Arduino, vous devez obtenir la fenêtre ci-dessous.
EDI_arduino_com
Dans cette fenêtre, vous allez copier le code suivant :

/*
   Programme de test permettant d'allumer et d'éteindre une diode.
   
*/
const int led_rouge = 2;       //définition de la broche digitale n°2 pour la LED.

void setup()                   //fonction d'initialisation de la carte
{
   pinMode(led_rouge, OUTPUT); //initialisation de la broche 2 en sortie.
}

void loop()                    //fonction principale, elle se répète (s’exécute) à l'infini
{
   digitalWrite(led_rouge, HIGH);    // allume la LED
   delay(2000);                      // fait une pause de 2 secondes
   digitalWrite(led_rouge, LOW);     // éteint la LED
   delay(2000);                      // fait une pause de 2 secondes
}

Puis cliquez sur le bouton televerser “téléverser.”
Si tout fonctionne bien, la LED se met à clignoter.

Analyse du programme.

Un programme arduino est toujours composé au minimun de deux fonctions :

  • La fonction setup(), qui permet l’initialisation, et qui n’est exécutée qu’une seule fois.
  • et la fonction loop(), qui tourne en boucle.

Dans la fonction setup(), on effectue qu’une seule action, on affecte la broche digitale n°2 de la carte en sortie (cette broche enverra 5v à la diode ou 0 v) grâce à la fonction pinMode(led_rouge, OUTPUT).
Dans la fonction loop(), on commence par envoyer 5 v (HIGH) à la diode grâce à la fonction digitalWrite(led_rouge, HIGH);, puis on fait une pause de 2000 ms (c’est à dire 2s) grâce à la fonction delay(2000);, ensuite on envoie 0 v (LOW) à la diode avec la fonction
digitalWrite(led_rouge, LOW);, après une nouvelle pause, on refait toutes ces instructions.

A vous de jouer, modifiez ce circuit en ajoutant un interrupteur, ainsi, sans changer le programme, on pourra faire clignoter la LED ou la laisser éteinte en appuyant sur l’interrupteur.
inter_1_1

Réponse.

Chenillard.

Un chenillard est un ensemble de plusieurs diodes qui s’allument et s’éteignent. Dans cet exemple, nous allons faire un chenillard composé de 6 LED. Dans le montage, il faudra :

  • 6 LED.
  • 6 résistances de 330 Ohms.
  • 6 entrées digitales de la carte Arduino.

Voici le schéma de câblage.

6LED
Attention au sens des LED.

Le programme.

Au départ, toutes les LED sont éteintes, puis la première LED s’allume, puis elle s’éteint, la deuxième s’allume, puis la deuxième s’éteint, la troisième s’allume, etc… à la fin la 6e LED s’éteint et la première s’allume, et ainsi de suite.
Comme sur cette vidéo.

A vous de trouver le programme.
Réponse.

Compteur binaire.

A partir du même montage (6 LED), on peut fabriquer un compteur binaire.
Le but de ce programme est d’allumer les LED afin de faire afficher des nombres.
Par exemple, si le nombre décimal à afficher est 5 (5 s’écrit 101 en binaire) alors les LED allumées doivent être la première et la troisième (000 101; le chiffre 1 signifie LED allumée).
Pour faire ce programme, on pourra utiliser une fonction affiche_nombre_decimal(int nombre) qui affiche des LED qui correspondent à un nombre décimal.

void affiche_nombre_decimal(int nombre)
{
  for(i=0;i<6;i++)
  {
    switch (i)
    {
      case 0: ...
      case 1: 
      ...
    }
  }
}

Dans cette fonction, on pourra utiliser la fonction bitRead(nombre, i) qui lit le i-ème bit de la variable nombre, et renvoie cette valeur (1 ou 0).
Cette fonction peut être utilisée comme argument de la fonction digitalWrite() afin d’afficher la LED.

Dans le programme principal, il suffira alors de faire une boucle avec à l’intérieur un appel à la fonction
affiche_nombre_decimal(int nombre).

void loop()                     //fonction principale
{
  int i;
  for (i=0;...;...)           // Compte de 0 à 10 décimal
  {
    affiche_nombre_decimal(i);  // allume les LED qui correspondent à la valeur binaire du nombre i
    delay(duree);               // pause
  }
}

C’est à vous de coder le programme.
Réponse.

Liaison série.

La liaison USB de la carte arduino uno sert d’alimentation pour la carte et aussi de liaison série.
Par cette liaison série, on peut communiquer avec la carte, et la faire communiquer.
Le montage que l’on va faire ici est très simple, puisqu’on va juste brancher la liaison série vers l’ordinateur.
usb_arduino
Dans l’EDI d’Arduino, copier le code suivant :

/* 
    Programme de communication avec une carte Arduino par le port série.
*/
void setup()
{
  Serial.begin(9600); //Initialise le débit de connexion à 9600 bauds (vitesse de 9600 bits par seconde)
}
void loop()
{
  Serial.println("Bonjour les amis, c'est moi Arduino !");//Affiche le message sur le terminal de l'ordinateur.
  delay(1000); //Pause d'une seconde.
}

Téléversez…
comm_arduino_Bonjour_1
Rien ne se passe !
C’est normal.
La carte communique avec l’ordinateur par la liaison série, pour voir cette communication, il faut cliquer sur le bouton “Moniteur Série” terminal (en haut à droite). Cela ouvre une fenêtre de visualisation de la communication série avec la carte.
comm_arduino_Bonjour_2

Fonctionnalités de ce programme.

Pour initialiser la communication série, il faut définir la vitesse de communication, c’est la fonction Serial.begin(9600) qui s’en charge.
9600 bauds c’est la vitesse, cela veut dire que les informations seront envoyées à 9600 bits par seconde.
Ensuite, on se contente d'”écrire” dans la liaison série, le message “Bonjour les amis, c’est moi Arduino !”,
grâce à la fonction Serial.println(“Bonjour les amis, c’est moi Arduino !”).

Quelques références :

  • Le site arduino qui permet de télécharger l’environnement de développement intégré, de consulter des essais et un forum utilisateur, et de se renseigner sur les autres cartes.
  • HackSpark pour acheter du matériel (cartes, capteurs, fils, …)
  • Seeed Kit Wiki permettant de débuter avec de nombreux montages et codes.

Laisser un commentaire