• 15 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

Vous pouvez obtenir un certificat de réussite à l'issue de ce cours.

J'ai tout compris !

Créez votre premier programme sur Arduino

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Dans ce chapitre, je vais aborder la base de la base du début du commencement. C'est-à-dire que ce qui va être dit là est incontournable et nécessaire. J'ai l'air d'insister un peu ? Tout à fait. Car une fois cette première étape passée, vous aurez mis un pied dans la programmation Arduino. Et comme lorsqu’on se lève le matin, il est préférable que ce soit sur le bon pied !

Nous allons commencer par observer la structure de base d'un programme et du même coup faire un tour du fonctionnement de l'interface de programmation.

Nous découvrirons ensuite la LED 13 et nous apprendrons à la faire clignoter.

Ce chapitre sera aussi l’occasion de faire un rapide survol du principe de compilation et du fonctionnement général du microcontrôleur.

Si tout cela vous paraît facile, tant mieux, mais vous allez voir que notre premier programme va nous réserver quelques surprises...

La structure de base d'un programme Arduino

Bon, il faut savoir que le langage utilisé par le logiciel Arduino pour programmer le microcontrôleur est basé sur les langages C/C++. 

Vous allez de ce pas créer les premières lignes de votre premier programme Arduino. À partir de maintenant, il va falloir admettre que si votre programme plante, ce n'est pas la faute de l'ordinateur ou de l'Arduino, mais la vôtre. En effet, un ordinateur, même de la taille de l'Arduino, va vous obéir au doigt et à l'oeil, mais jamais ne réfléchira par lui-même. Donc si la série d'instructions que vous lui donnez l'amène à sa destruction, et bien il se détruira. Ou au mieux, il se bloquera. Nous allons donc devoir apprendre à éviter ces situations énervantes que provoquent les bugs.

Mais voyons plutôt notre premier programme. Je vais vous demander d'ouvrir le logiciel Arduino, pour le moment nous n'allons pas connecter la carte à votre ordinateur. Une fois la fenêtre d'accueil ouverte, vous allez taper dans la zone blanche ce qui suit (soyez rigoureux et faites attention aux ponctuations et majuscules) :

void setup()
{
    
}

void loop()
{
    
}

Voici ce que ça donne sur votre console de programmation :

Résultat dans la fenêtre du logiciel Arduino

Pour ceux qui ont la dernière version d’Arduino (version 1.6.5 au mois d'octobre 2015), ces lignes apparaîtront par défaut dans la fenêtre,  je vous demanderai de tout effacer et d'écrire à partir de la page blanche, c'est pour mieux comprendre la suite.

Alors vous avez sûrement remarqué que les mots se colorent lorsqu'on les a saisis. C'est un petit plus très pratique qui s'appelle la coloration syntaxique. Elle très employée en informatique. Elle nous permet de faire la différence entre les mots clés du langage utilisé, et les autres.

Pour les artistes sensibles de la pupille du genre :

"tou vois, zé n'aime pas tlo lé orange là, sour les mots, zé verrais plouto oune bleu tourquoisse."

Je suis désolé de leur annoncer que nous n'avons pas le choix de la couleur, mais ça reste très pratique !

Je ne vais pas ici donner la liste de tous les mots utilisés par le logiciel Arduino, nous les apprendrons lorsque nous en aurons besoin. Mais dans le programme au-dessus, vous venez d'en rencontrer trois : void, setup(), loop(). Retenez-les !

Regardons à nouveau le programme, nous observons des parenthèses et des accolades. Pour les utilisateurs de Windows, ça reste assez évident à obtenir. Pour ceux qui ont un Mac, l'accolade s'obtient en utilisant la combinaison : alt+( ou alt +).

Le menu du logiciel

Intéressons-nous maintenant au menu proposé par le logiciel :

Menu du logiciel pour Arduino

Ces cinq boutons sont quasiment les seuls que nous aurons à utiliser pour lancer le programme (nous verrons d'autres fonctionnalités par la suite). Nous allons donc les étudier un par un dans ce chapitre. Vous remarquerez qu'en les survolant, un texte d'aide s'affiche sur la droite des icônes.

Le premier bouton à gauche :  le V de vérifier.

Ce bouton permet de vérifier votre programme. C'est-à-dire que le logiciel Arduino va chercher si ce que vous avez écrit est conforme à ce qui est attendu.

Allez-y, cliquez dessus. Si vous avez bien écrit les lignes que je vous ai demandées dans la section précédente, vous obtenez en bas, dans la fenêtre noire, un texte du genre : 

Message de compilation sans erreur

Ça signifie que le programme est correct.

Qu'est-ce que la compilation ?

De le savoir ne vous changera pas la vie, mais je comprends les curieux. En fait le programme que vous écrivez n'est pas celui que recevra l'Arduino. C'est un programme adapté pour que les humains le lisent et le comprennent sans trop de difficulté. La machine, elle, ne comprend que le langage machine, une succession de 1 et de 0, qu'elle va interpréter et exécuter. La compilation est la transformation du langage de programmation utilisé par l'homme, en langage machine utilisé par la machine. C'est d'ailleurs le rôle de l'interface pour l'Arduino. 

Vous pouvez maintenant essayer de modifier votre programme en enlevant la première accolade, vous cliquez la vérification et vous obtenez en bas un message du genre :

Exemple de message d'erreur
Exemple de message d'erreur

On sent tout de suite à la couleur qu'il se passe quelque chose de pas net, et on a raison !

Le logiciel de l'Arduino propose aussi un petit débuggeur. Il ne va pas vous réparer tout seul l'erreur, mais il vous indique où il pense qu'elle se trouve. C'est ce qui se passe dans notre cas. Pour comprendre un peu ce qui ce passe, il faut lire le message d'erreur :

  • "sketch_feb20a.ino" c'est le nom de votre programme.

  • "4:1"  signifie que ligne 4 caractère 1, le programme bloque pour la compilation.

  •  "expected" un truc,  indique le type d'erreur. Mais ce n'est pas toujours la bonne raison.

Les erreurs fréquentes sont que vous avez oublié de taper quelque chose ou que vous n'avez pas respecté le format attendu. Dans les premiers temps, vous oublierez surtout des points-virgules et des fermetures d'accolades ou de parenthèses. Plus tard, les problèmes se corseront car le logiciel ne verra pas forcément d'erreur et pourtant votre programme ne fera pas ce que vous souhaitez. Mais nous n'en sommes pas là. (Je vois à votre tête décomposée Lukas que la perspective de réfléchir sans aide vous paraît inaccessible, rassurez-vous, tout le monde finit par y arriver !)

Pour réparer l'erreur dans notre cas, remettez l'accolade, puis cliquez à nouveau sur le bouton Vérifier. Tout devrait rentrer dans l'ordre.

Passons à l'icône suivante :

La flèche de téléverser

MESDAMES ET MESSIEURS, JE VOUS ANNONCE OFFICIELLEMENT QUE VOUS POUVEZ CONNECTER LA DERNIÈRE MERVEILLE TECHNOLOGIQUE, J'AI NOMMÉ L'ARDUINO, À VOTRE ORDINATEUR PERSONNEL GRÂCE AU CÂBLE USB !

Et là, c'est pas gagné pour tout le monde. En effet en fonction de votre système, l'Arduino va ou non être reconnu. Sur Windows, vous devrez peut-être attendre qu'il installe un pilote de périphérique. Il n'y a pas trop le choix, il faut le faire.

Une fois connectés, vous pouvez cliquer sur l'icône avec la flèche pour téléverser le programme. Le logiciel va donc transférer votre programme compilé (transformé en langage machine) dans la mémoire du microcontrôleur de l'Arduino. Une fois cette opération effectuée, l'Arduino gardera ce programme en mémoire et l'exécutera tant qu'il sera alimenté en électricité. Il sera donc autonome et ne dépendra plus de l'ordinateur !

Mais au fait, il fait quoi ce programme qu’on vient d’écrire ?

Et bien il ne fait rien ! Strictement rien ! Pas facile, essayez vous-mêmes, on fait toujours un truc. Là ça ne fait rien ! Sauf que c'est l'ossature même de TOUS les programmes que nous ferons par la suite. C'est le code de base. Quel que soit le programme, on commence par taper ça, et ensuite on remplit ce qu'il faut où il faut.

Maintenant que vous connaissez la forme de base d'un programme, attaquons-nous à du lourd ! Construisons un programme qui fait quelque chose.

La LED 13

Puisque nous avons la carte Arduino sous les yeux, observons-la un peu.

Image de l'Arduino avec Fritzing
Schéma d'une carte Arduino

Ceci est une image simplifiée obtenue avec le logiciel Fritzing. Elle reprend les parties importantes de la carte. Nous allons nous intéresser au haut de cette image (orientez votre Arduino pour que ça corresponde). Vous voyez des trous numérotés de 0 à 13, puis GND et AREF.

Un peu en dessous, vous voyez 3 petits rectangles notés L, TX et RX, et un autre à droite noté ON.

Ces rectangles sont des LED, c’est-à-dire des “Light-Emitting Diodes”. Nous verrons plus tard ce que c’est, pour le moment il suffit de comprendre que ça peut s’allumer. Ici nos 4 LEDs peuvent briller dans plusieurs cas :

  • La LED ON est verte quand l'Arduino est sous tension.

  • Les LEDs TX et RX clignotent quand l'Arduino reçoit ou envoie des informations.

  • La LED L clignote si on appuie sur le bouton reset, sinon elle ne fait rien tant qu'on ne lui a pas dit.

C'est la LED L que nous allons allumer grâce à notre petit programme. Une diode s'allume quand elle est parcourue par le bon courant, dans le bon sens. 

La force de l'Arduino (entre autre)  est d'envoyer du courant, ou non, par les connexions numérotées de 0 à 13. Et la diode L s'allume quand on dit à l'Arduino d'envoyer du courant dans la connexion 13. C'est pour ça que je l'appelle la LED 13.

Vous verrez qu'elle est bien pratique et qu'elle peut servir dans certains cas pour nous aider à débugger. Savoir l'allumer et l'éteindre à volonté est une opération de base sur l'Arduino.

Les étapes du programme sont assez simples :

  1. On dit à l'Arduino que nous voulons que la connexion 13 puisse envoyer du courant (et pas en recevoir).

  2. On dit à l'Arduino d'envoyer du courant dans la connexion 13.

Programmer l'Arduino c'est transformer ces instructions en langage codé. Et ça vous ne pouvez pas le deviner seuls.

Voici donc le programme à taper et à envoyer à l'Arduino (attention à nouveau à la ponctuation et aux majuscules !) :

void setup()
{
    pinMode(13,OUTPUT);  //Signale à l’Arduino que la connexion 13 doit pouvoir envoyer du courant
    digitalWrite(13,HIGH);  //Demande à l’Arduino d’envoyer du courant dans la connexion 13
}

void loop()
{

}

Et voici le rendu coloré du logiciel Arduino :

Programme pour allumer la LED 13
Programme pour allumer la LED 13

     

J'attire votre attention sur des nouveaux mots-clés : pinMode(), digitalWrite(), OUTPUT, HIGH.

Ils ne sont pas colorés pareil, nous verrons plus tard pourquoi. Vous observez que la structure de tout à l'heure n'a pas changé, on a juste ajouté entre les accolades deux instructions.

Le nombre 13 n'est pas anodin, c'est bien la connexion 13 qui est en jeu.

Ben c'est bien beau tout ça, mais comment on l'éteint cette diode maintenant ?

On ne peut pas l'éteindre. Même si vous appuyez sur le reset de l'Arduino, la diode se rallume. Il fait ce qu'on lui a demandé. Pour l'éteindre, il faut donc lui envoyer un nouveau programme qui va lui dire d'éteindre la diode.

Les mots clés en bleu dans le logiciel, sont spéciaux. Ils s'écrivent en majuscules. Ce sont des valeurs que l'Arduino connaît et utilise. Dans notre cas, le mot clé HIGH (Lukas, on prononce plutôt "hhaï" que "igue") signifie "valeur haute". Il existe son contraire : LOW qui signifie "valeur basse". On pourrait aussi dire que HIGH vaut 1 et LOW vaut 0, ou encore que HIGH veut dire que la connexion est à +5V et LOW, qu'elle est à est à 0V.

Je vous laisse modifier le programme (et le téléverser) afin que la diode s'éteigne. Il est important d'essayer seul de chercher la solution, de débugger et de finalement trouver. Regarder la correction sans avoir réfléchi par soi-même avant est beaucoup moins formateur.

Ça y est, vous avez trouvé la solution ? Alors vérifiez la correction ! 

Vous avez trouvé cela un peu long jusqu'à maintenant ? Faites une petite pause si besoin : un petit café, un petit tour dehors... ce qui vous plaît pour vous changer les idées 5 minutes ! (Non Lukas, cette proposition est hors-sujet)

Lorsqu'on débute vraiment (je ne parle pas de ceux qui ont déjà touché du code) ces concepts peuvent paraître abstraits et déroutants. L'expérience vous aidera par la suite à mieux créer des liens entre tout ce que vous aurez ingurgité.

Bon si vous êtes prêts, nous allons attaquer notre premier programme plus compliqué. On a allumé la diode, on l'a éteinte, et si on la faisait clignoter maintenant ?

Votre premier programme : «Blink Blink !» 

À chaque fois que vous décidez de réaliser un programme, il est important de savoir à l'avance, le plus précisément possible ce que vous voulez obtenir. Il est toujours tentant de se lancer directement dedans et de modifier au fur et à mesure,  mais plus votre programme sera complexe, plus le modifier pour intégrer des nouvelles possibilités sera compliqué. Dans notre cas, ça devrait aller. Ce programme va nous permettre de mieux comprendre la structure de base du programme Arduino et la raison des deux séries d'accolades.

Ouvrez le logiciel pour l'Arduino et cliquez sur l'icône de nouveau programme et nommez-le "BlinkBlink". 

Nous voulons faire clignoter la LED 13 donc les étapes seraient :

  1. Nous indiquons à l'Arduino que la connexion 13 doit pouvoir envoyer du courant

  2. Nous indiquons d'envoyer du courant dans la connexion 13 (la diode s'allume)

  3. Nous indiquons d'arrêter d'envoyer du courant dans la connexion 13 (la diode s'éteint)

  4. Nous voulons ensuite recommencer au point numéro 2 à l'infini.

Les points 1, 2 et 3 vous pouvez maintenant les programmer sans problèmes. Là où ça se complique, c'est le point 4.

Et là l'Arduino, et sa structure de base, nous facilitent la tâche. En effet les accolades sont des sortes de capsules. Tout ce qui est entre les accolades est considéré comme un bloc d'instructions. Nous avons dans le programme deux sortes d'accolades : celles qui suivent l'instructionsetup() et celles qui suivent l'instructionloop().

Jusqu'à maintenant, nos instructions ont été mises dans les accolades de "setup". Nous dirons qu'elles sont dans le setup. Ces instructions ne sont lues et activées qu'une seule fois.

Les instructions mises dans les accolades de "loop" seront lues et activées à l'infini !

Ce qui donne en représentation graphique :

Fonctionnement de la structure de base du programme
Fonctionnement de la structure de base du programme

Prenons l'exemple du pseudo-programme suivant :

void setup()
{
    instruction 1;
    instruction 2;
}

void loop()
{
    instruction 3;
    instruction 4;
}

Voici le cheminement du programme :

Ligne

Ce que fait le programme

1

Il se prépare à lire le bloc setup()

2

Il repère le début du bloc setup()

3

Il exécute l'instruction 1

4

Il exécute l'instruction 2

5

Il repère la fin du setup()

6

Pas d'influence sur le programme

7

Il se prépare à lire le bloc loop() à l'infini

8

Il repère le début du bloc de la loop()

9

Il exécute l'instruction 3

10

Il exécute l'instruction 4

11

Il rencontre la fin du bloc loop() donc il recommence au début du bloc (en 8)

9

Il exécute l'instruction 3

10

Il exécute l'instruction 4

11

Il revient en 8, etc.

Et cela jusqu'à l'infini ou presque, ou tant qu'il aura du courant.

Ce tableau vous paraît sûrement bien long. C’est fait exprès ! Il permet de bien différencier une exécution unique (setup) d'une exécution en boucle (loop), de plus il rappelle que les accolades montrent des limites de blocs d'instructions de programme. C'est à retenir absolument pour la suite.

Alors du coup ça change un peu ce qu'on doit écrire si l'on veut que ça clignote à l'infini. Je vous laisse chercher un peu...

Voici la solution que vous pourriez proposer dans l'état actuel de vos connaissances :

void setup()
{
    pinMode(13,OUTPUT);
}

void loop()
{
    digitalWrite(13,HIGH);
    digitalWrite(13,LOW);
}

Si vous avez trouvé cette solution seul(e)s, c'est que vous avez compris.

Téléversez et observez !

Et là... c'est le drame ! En effet, tout est ok, Arduino exécute la première instruction une fois dans le setup, puis la loop exécute le reste à l'infini : j'allume, j'éteins, j'allume, j'éteins. Et pourtant la diode reste allumée !

Voilà exactement la situation la plus délicate pour un programmeur : il n'y a pas de bug, tout paraît nickel et pourtant le résultat n'est pas là. Alors que faire ?

Dans votre cas vous êtes juste victimes du léger sadisme de celui qui vous guide dans ce cours, c'est à dire MOUA. En effet je ne vous ai pas tout dit, mais il fallait en passer par là. Nous allons devoir aborder un peu de physique (non Lukas, je parle de sciences physiques) et plus particulièrement les notions de fréquences et de périodes. Ne vous alarmez pas, ça coule tout seul.

Fréquence et période

Quand on se penche un peu sur la documentation de l'Arduino, on peut lire :

"Chaque module possède au moins un régulateur linéaire 5 V et un oscillateur à quartz 16 MHz (ou un résonateur céramique dans certains modèles)."

Ça veut dire que d'une part, la tension de sortie au niveau des connexions est de cinq volts (nous y reviendrons plus tard) et que notre processeur est cadencé (j'adore ce mot) à 16 MHz (seize méga hertz)

Alors j'entends déjà vos cloches à questions sonner et dire :

C'est quoi un méga hertz ?

Et bien dites-vous que c'est simple (ça met dans un bonne disposition mentale) car le hertz c'est l'unité de mesure de la fréquence (comme le mètre est l'unité de mesure de la distance).

Et la fréquence c'est juste le nombre de fois par seconde qu'une action est faite. Par exemple si je tape 10 touches par seconde sur mon clavier, ma fréquence de frappe est de 10 hertz, on note 10 Hz.

Voici quelques exemples de fréquences :

Exemple

Fréquence

Action

Respiration

0,5 Hz

1 respiration toutes les 2 secondes

Seconde

1 Hz

1 seconde toutes les secondes (je précise,on ne sait jamais  )

Pouls humain

1,2 Hz

1,2 battement par seconde soit 72 par minute environ

Courant alternatif

50 Hz

50 oscillations par seconde

La du diapason

440 Hz

440 oscillations par seconde

Ondes FM

entre 23 et 95 KHz

entre 23 000 et 95 000 vibrations par seconde

Arduino

16 MHz

soit 16 000 000 d'actions machine par seconde

Processeur actuel

3 Ghz

soit 3 000 000 000 d'actions machine par seconde

Ça donne une bonne idée de ce qu'est un Hertz (Lukas, si vous continuez de m'encombrer l'appareil auditif avec votre marque de location de voiture, je vous colle une fessée cadencée à 3 Hz dont vous me direz des nouvelles !)

Comme disait monsieur unePierre : tout est relatif (petite blague pour germanistes )

Si notre Arduino est bien moins rapide que des processeurs actuels, il est bien plus rapide que nous !

Dans le cas de notre programme il clignote à un peu moins de 77 KHz, soit 77 000 fois j'allume/j'éteins par seconde. Notre œil ne perçoit des images différentes qu'en dessous de 25Hz. 

Solution : pour voir le clignotement, il faut ralentir l'Arduino.

Nous n'avons pas le choix, nous devons apprendre un nouveau mot clé : delay().

delay() indique à l'Arduino d'attendre. On a juste à mettre entre parenthèses le nombre de millisecondes que l'on souhaite. Ça nécessite un léger calcul mental : 1 s = 1000 ms.

Par exemple, l’instruction suivante :

delay (500);

met le programme en pause pendant 500 ms=0,5 s donc une demi-seconde.

On utilise donc l'instructiondelay() en écrivant la ligne de code où l'on veut que le programme fasse une pause. Je vous laisse essayer de modifier le programme pour que notre LED 13 s'allume 1 seconde et s'éteigne 1 seconde.

Et voici le corrigé :

void setup()
{
  pinMode(13,OUTPUT);
}

void loop()
{
  digitalWrite(13,HIGH);
  delay(1000);
  digitalWrite(13,LOW);
  delay(1000);
}

Amusez-vous maintenant à modifier les valeurs desdelay() pour obtenir des clignotements différents.

Les commentaires dans un programme

Tous les programmeurs, ou codeurs, ont des conventions à respecter s'il souhaitent que leur travail soit considéré comme agréable et bien fait. Nous verrons au fil de ce cours quelques unes de ces conventions, et la première dès maintenant : 

Un programme se doit d'être commenté.

C'est-à-dire que lorsque l'on code, il est important, autant pour soi-même que pour ceux qui liront ou utiliseront votre travail, de donner des indications sur le fonctionnement du programme, l'utilité des variables et des fonctions (nous en parlerons plus loin) et bien d'autres choses.

Pour insérer un commentaire simple, il suffit de saisir le code // (double slash) et du coup, tout ce qui suivra dans la ligne sera lisible par un humain et transparent pour le programme.

Pour un bloc de commentaires (c’est-à-dire des commentaires sur plusieurs lignes à la suite) on utilise deux balises : /* et */

Voici donc notre programme avec des commentaires :

Exemple de programme commenté
Exemple de programme commenté

Un dernier point concernant cette partie avant de clore ce chapitre...

Sauvegarde et transfert de votre programme

Lorsque vous téléversez votre programme, il reste stocké dans le microcontrôleur. Vous pouvez débrancher ce dernier, le brancher à une pile 9V via la prise prévue à cet effet, ou à un autre ordinateur (sans lui envoyer de programme) et vous verrez que le programme que nous venons de concevoir tourne encore. Il est donc sauvegardé.

Mais il n'est plus accessible !

C'est-à-dire que vous ne pouvez pas faire l'opération inverse qui consisterait à sortir le programme de l'Arduino pour le mettre sur le logiciel de votre ordinateur.

C'est la raison pour laquelle il vous faut sauvegarder votre travail. C'est le bouton le plus à droite (une flèche vers le bas) proposé par le logiciel : 

 

D'ailleurs, la dernière version propose la sauvegarde avant même de compiler.

Vos fichiers sont stockés dans un dossier accessible depuis le logiciel par le menu en haut : on choisit  "Fichier" puis "Carnet de croquis" et on voit apparaître ses sauvegardes. On retrouve le même dossier dans le dossier où vous avez installé l'Arduino.

Pour l'ouvrir, vous pouvez utiliser l'autre bouton (flèche vers le haut), qui vous ouvre le menu dans lequel vous verrez dans notre cas "BlinkBlink".

Mais que sont donc tous ces autres croquis proposés : 01.Basics, 02.Digital,... ? 

Si vous vous posez cette question, c'est que vous avez ouvert le dossier "Exemples" qui se trouve en dessous de "Carnet de croquis". C'est bon signe, c'est que vous commencez à prendre en main le logiciel (qu'on appelle aussi IDE pour Integrated Development Environment, c'est-à-dire environnement de développement intégré). Ces autres croquis sont la force de l'IDE, en effet, ce sont des exemples de programmes proposés par Arduino (ou parfois par les concepteurs de bibliothèques) pour nous aider à utiliser correctement les mots clés du langage. Ce sont en fait des exemples. Je vous invite à les parcourir. C'est souvent commenté en anglais, mais il va falloir s'y habituer car la langue de Shakespeare est la base de la communication entre développeurs.

Vous verrez que rapidement, avec ces exemples et la documentation du site officiel (dont nous parlerons plus tard) vous volerez vite de vos propres ailes !

En résumé

Vous savez maintenant connecter votre Arduino, écrire la structure de base d'un programme, sauvegarder et transférer le programme dans le microcontrôleur, et débugger certaines erreurs de code.

Vous avez appris les mots-clés : 

  • setup() qui s'exécute qu'une fois ;

  • loop() qui s'exécute à l'infini ;

  • void (qui se met toujours devant loop et setup et dont vous comprendrez le sens plus loin dans ce cours) ;

  • pinMode() qui permet de définir une sortie en mode envoi d'électricité ou non ;

  • digitalWrite() qui envoie de l'électricité par une sortie ;

  • delay() qui met le programme en pause pendant un nombre défini de millisecondes.

Vous savez aussi que les accolades délimitent des blocs d'instructions et que le point-virgule termine une instruction.

Vous savez enfin que la connexion 13 est reliée à une LED (diode électroluminescente), que vous pouvez maintenant allumer ou éteindre.

Je pense que vous êtes prêt(e)s pour la suite et je vous en félicite !

(Quelqu'un peut réveiller Lukas ?)

Exemple de certificat de réussite
Exemple de certificat de réussite