Découverte de l'IDE Arduino

Les instructions élémentaires

DéfinitionLe langage Arduino

A présent que vous avez une vision globale sur le fonctionnement de la carte Arduino, nous allons pouvoir apprendre à programmer avant de nous lancer dans la réalisation de programmes très simple pour débuter ! Pour pouvoir programmer notre carte, il nous faut trois choses :

- Un ordinateur

- Une carte Arduino

- Et connaitre le langage Arduino

C'est ce dernier point qu'il nous faut acquérir. Le but même de ce chapitre est de vous apprendre à programmer avec le langage Arduino. Cependant, ce n'est qu'un support de cours que vous pourrez parcourir lorsque vous devrez programmer tout seul votre carte. En effet, c'est en manipulant que l'on apprend, ce qui implique que votre apprentissage en programmation sera plus conséquent dans les prochains chapitres que dans ce cours même.

Fondamental

Le langage Arduino est très proche du C et du C++.

Un minimum de code

Avec Arduino, nous devons utiliser un code minimal lorsque l'on crée un programme. Ce code permet de diviser le programme que nous allons créer en deux ou trois grosses parties. Nous avons détaillé ce point en début de chapitre. Comme illustré ici.

DéfinitionLa Fonction

Dans ce code se trouvent deux fonctions. Les fonctions sont en fait des portions de code.

Cette fonction setup() est appelée une seule fois lorsque le programme commence. On appelle cette fonction : « fonction d'initialisation« .

On y retrouvera la mise en place des différentes Entrées / Sorties et quelques autres réglages.

C'est un peu le check-up de démarrage. Une fois que l'on a initialisé le programme il faut ensuite créer son « cœur », autrement dit le programme en lui même : la fonction loop().

1
/* **************************
2
 *  Mon premier Programme
3
 *  Lycée DAMPIERRE STI2D
4
 *  Nom_Prénom
5
 *  Mail
6
******************************** */
7
//Ceci est un commentaire
8
//déclaration des variables
9
10
11
void setup()
12
{
13
  // ici on configure les entrées / sorties
14
15
}
16
17
void loop() 
18
{
19
  // ici, le programme, il se répétera à l'infini  
20
}

C'est donc dans cette fonction loop() où l'on va écrire le contenu du programme. Il faut savoir que cette fonction est appelée en permanence, c'est-à-dire qu'elle est exécutée une fois, puis lorsque son exécution est terminée, on la ré-exécute et encore et encore. On parle de boucle infinie.

Remarque

A titre informatif, on n'est pas obligé d'écrire quelque chose dans ces deux fonctions. En revanche, il est obligatoire de les écrire, même si elles ne contiennent aucun code !

MéthodeAgir sur une sortie numérique (D0 à D13)

L'instruction digitalWrite(1,HIGH) ; permet de mettre à l'état haut donc à 5V la sortie digital D1

Quand on écrit l'instruction digitalWrite(1,LOW) ; la sortie D1 se met à l'état bas donc à 0V

En fonction de la configuration effectué dans setup() vous pouvez agir sur l'état des sorties avec cette instructions.

Dans le programme ci-dessous, observer la configuration en sortie de D13 à l'aide de l'instruction pinMode() ;

A l'aide des fichier ci-dessous, réalisé le montage et faite l'expérience de l'instruction.

DigitalWrite.ino

MéthodeAcquérir la valeur d'une entrée numérique

digitalRead() ; est utilisé pour Lit l'état (= le niveau logique) d'une broche précise en entrée numérique, et renvoie la valeur HIGH (HAUT en anglais) ou LOW (BAS en anglais).

NB : Cette instructions renvoie la valeur d'une entrée numérique. Cette valeur devra être stocké dans une variables local de nature entière (int).

Pour pouvoir lire une broche en tant qu'entrée numérique :

configurer cette broche en entrée avec l'instruction pinMode(broche, INPUT);

activer le "rappel au plus" interne dans le cas d'un bouton poussoir avec l'instruction digitalWrite(broche, HIGH)

A l'aide des fichier ci-dessous, réalisé le montage et faite l'expérience de l’instruction.

DigitalRead.ino

Attention

Dans ce programme, la broche 13 reflète fidèlement l'état de la broche 7 qui est une entrée numérique.

REMARQUE :

Si la broche numérique en entrée n'est connectée à rien, l'instruction digitalRead() peut retourner aussi bien la valeur HIGH (HAUT en anglais) ou LOW (BAS en anglais) ( et cette valeur peut changer de façon aléatoire)

Les broches analogiques peuvent être utilisées en entrée et sont désignées par les numéro 14 (entrée analogique 0) à 19 (entrée analogique 5).

RemarqueEffet de rebond

La broche numérique 13 est plus difficile à utiliser que les autres en tant qu'entrée numérique car elle est associée à une résistance et sa LED soudées sur le circuit imprimé de la carte sur la plupart des cartes. Si vous activez la résistance interne de rappel au plus de 20K, cela mettra la borche à 1,7V au lieu des 5V théoriques car la LED et la résistance associées à la broche abaisse la tension, qui est toujours considérée au niveau BAS (LOW). Ainsi, si vous devez utiliser la broche 13 en tant qu'entrée numérique, utiliser une résistance de rappel au plus externe.

MéthodeLa Lecture Analogique

Lire la tension sur une broche analogique

Un truc très sympa avec Arduino, c'est que c'est facile à prendre en main. Et ça se voit une fois de plus avec l'utilisation des convertisseurs numérique – > analogique ! En effet, vous n'avez qu'une seule nouvelle fonction à retenir : analogRead() !

ANALOGREAD(PIN)

Cette fonction va nous permettre de lire la valeur lue sur une entrée analogique de l'Arduino. Elle prend un argument et retourne la valeur lue :

L'argument est le numéro de l'entrée analogique à lire (explication ci-dessous)

La valeur retournée (un int) sera le résultat de la conversion analogique- >numérique

Sur une carte Arduino Uno, on retrouve 6 CAN. Ils se trouvent tous du même côté de la carte, là où est écrit « Analog IN » :

Les 6 entrées analogiques sont numérotées, tout comme les entrées/sorties logiques. Par exemple, pour aller lire la valeur en sortie d'un capteur branché sur le convertisseur de la broche analogique numéro 3, on fera : valeur = analogRead(3);.

Attention

Ne confondez pas les entrées analogiques et les entrées numériques ! Elles ont en effet le même numéro pour certaines, mais selon comment on les utilise, la carte Arduino saura si la broche est analogique ou non.

Mais comme vopus etes des programmeurs intelligents et organisés, vous nommerez les variables proprement pour bien travailler comme dans les fichiers ci-dessous.

AnalogRead.ino

FondamentalConclusion

Nous avons vue au travers de trois exemples comment exploiter les entrées/sorites numériques ainsi que les entrées analogiques. Il est impératif de ne pas mélanger ces deux types de grandeur différentes. Pour la suite, nous allons aborder les structures de répétitions.

ComplémentLe Moniteur Série

Exemple du moniteur série

1
void setup() {
2
  Serial.begin(115200);
3
}
4
5
void loop() {
6
  Serial.println("test");
7
}

Si vous désirez plus d'information sur le moniteur série rendez vous ici

  1. Mont_DigitalWrite.PNG
  2. digitalRead.PNG
PrécédentPrécédentSuivantSuivant
AccueilAccueilImprimerImprimer Jp Bielawski - Lycée Dampierre Licence : Domaine PublicRéalisé avec Scenari (nouvelle fenêtre) modèle documentaire TechnOpale