Résumé

Avec son petit microcontrôleur hautement performant et facilement programmable, la plate-forme libre Arduino a révolutionné le mouvement Do It Yourself. Se couplant aisément avec d’autres composants (écrans LCD, capteurs, moteurs…), elle est devenue aujourd’hui un élément indispensable dans de nombreux dispositifs électroniques. Sa simplicité d’utilisation, l’étendue de ses applications et son prix modique ont conquis un large public d’amateurs et de professionnels : passionnés d’électronique, designers, ingénieurs, musiciens…

Cet ouvrage de référence, remarquable par son approche pédagogique, vous fera découvrir le monde magique d’Arduino, en vous délivrant un peu de théorie et surtout beaucoup de pratique. Ses 19 projets concrets, avec code source disponible en ligne, vous permettront de juger du gigantesque potentiel de ce circuit imprimé qui n’a pas fini de faire parler de lui.

À qui s’adresse ce livre ?

Aux électroniciens, bricoleurs, bidouilleurs, hobbyistes, ingénieurs, designers, artistes…

Dans ce livre, vous apprendrez à :

créer un séquenceur de lumière

fabriquer un afficheur LCD

commander un moteur pas-à-pas

réaliser un shield

Sur www.serialmakers.com

• Téléchargez le code source des sketches Arduino présentés dans cet ouvrage

• Consultez les compléments (liens utiles, news, etc.)

Biographie auteur

Électronicien de formation, Erik Bartmann est aujourd’hui développeur pour le principal fournisseur européen d’infrastructures informatiques. Passionné d’électronique depuis toujours, il est l’auteur de plusieurs ouvrages sur Arduino, Processing et le Raspberry Pi, parus aux éditions O’Reilly.

O’REILLY®

www.editions-eyrolles.com

Erik Bartmann

LE GRAND LIVRE

D’ARDUINO

ÉDITIONS EYROLLES

61, bd Saint-Germain

75240 Paris Cedex 05

www.editions-eyrolles.com

Attention : la version originale de cet ebook est en couleur, lire ce livre numérique sur un support de lecture noir et blanc peut en réduire la pertinence et la compréhension.

Authorized French translation of the German edition of Die elektronische Welt mit Arduino entdecken by Erik Bartmann, ISBN 978-3-89721-319-7 © 2011 by O’Reilly Verlag GmbH & Co, KG. This translation is published and sold by permission of O’Reilly Media, Inc., which owns or controls all rights to sell the same.

Traduction autorisée de l’ouvrage en langue allemande intitulé Die elektronische Welt mit Arduino entdecken d’Erik Bartmann (ISBN : 978-3-89721-319-7)

Adapté de l’allemand par Patrick Chantereau

Validation technique : Olivier Decelle

En application de la loi du 11 mars 1957, il est interdit de reproduire intégralement ou partiellement le présent ouvrage, sur quelque support que ce soit, sans l’autorisation de l’Éditeur ou du Centre Français d’exploitation du droit de copie, 20, rue des Grands Augustins, 75006 Paris.

© Groupe Eyrolles, 2014, ISBN : 978-2-212-13701-9

CHEZ LE MÊME ÉDITEUR

Dans la collection « Serial Makers »

C. PLATT. – L’électronique en pratique.

N°13507, 2013, 344 pages.

M. RICHARDSON et S. WALLACE. – À la découverte du Raspberry Pi.

N°13747, 2014, 230 pages.

M. BERCHON. – L’impression 3D.

N°13522, 2013, 200 pages.

B. PETTIS, A. KAZIUNAS FRANCE et J. SHERGILL. – Imprimer en...

Avant-propos

Il est frappant de constater qu’aujourd’hui, nous sommes entourés d’objets préfabriqués qu’il n’est pas possible ou presque de modifier. Ajouté à cela, les médias (journaux, télévision, Internet…) qui nous assènent certaines pseudo-vérités que beaucoup tiennent pour acquises sans chercher plus loin. D’où le risque d’une mise sous tutelle insidieuse de l’individu, que nous ne devons absolument pas sous-estimer. Nous sommes très peu sollicités pour comprendre notre environnement quotidien : dans ce contexte, que reste-t-il de notre créativité ? En lisant ces lignes, vous vous demandez peut-être quel est le rapport avec Arduino et si vous avez en main le livre qu’il vous faut. Pas d’inquiétude, si j’ai choisi de débuter cet avant-propos par ce texte quelque peu provocateur mais somme toute réaliste, c’est parce que cet ouvrage va vous donner les moyens d’exprimer toute votre créativité.

L’électronique est un vaste domaine, idéal pour donner libre cours à son imagination, selon son envie et son humeur. C’est pourquoi cet ouvrage ne se contente pas de présenter des montages prêts à l’emploi. Certes, il en faut, mais son but premier est de fournir des pistes au lecteur pour qu’il développe ses propres circuits. Les kits de montage électrique, à assembler selon un « schéma F », sont d’emblée efficaces et attrayants, et garantissent que tout fonctionne comme son inventeur l’a souhaité. Mais soyons honnêtes : monter un tel circuit constitue-t-il un exploit remarquable ? Certainement pas. En se présentant comme un creuset d’idées,...

Partie I

Les bases

Chapitre

1

Qu’est-ce qu’un microcontrôleur ?

Si vous n’y tenez plus et que vous voulez déjà brancher votre Arduino et procéder à la première expérimentation, vous pouvez sauter allègrement ce chapitre, qui décrit les principes du microcontrôleur, et y revenir peut-être plus tard.

Un microcontrôleur est un circuit intégré (ou IC, Integrated Circuit), qui rassemble sur une puce plusieurs éléments complexes dans un espace réduit. Au temps des pionniers de l’électronique, on soudait un grand nombre de composants encombrants, tels que les transistors, les résistances ou les condensateurs, sur des cartes plus ou moins grandes. Aujourd’hui, tout peut loger dans un petit boîtier en plastique noir muni d’un certain nombre de broches. Ces dernières sont les connexions du circuit intégré au moyen desquelles s’effectue la communication. La figure 1-1 montre un microcontrôleur ATmega328, qu’on trouve sur la carte Arduino.

Figure 1-1
Microcontrôleur ATmega328 (source : Atmel)

Avec ses dimensions réduites, il dispose pourtant d’une grande puissance de calcul. En fait, il suffit de le souder sur une carte et de le mettre sous tension pour pouvoir l’utiliser. Certes, il manque encore quelques composants (par exemple, des stabilisateurs de tension, des...

Chapitre

2

La carte Arduino

Je vais commencer par vous présenter la pièce maîtresse de tous les montages de ce livre : la carte à microcontrôleur Arduino.

Figure 2-1
La carte à microcontrôleur Arduino

Sur cette image, vous ne pouvez évidemment pas vous rendre compte à quel point les dimensions de la carte Arduino sont réduites (environ 7 cm de large et 5 cm de long) ; elle est vraiment très maniable, tient sans problème dans une main et s’avère vraiment compacte.

Au fil des années, plusieurs cartes Arduino ont été développées. J’ai choisi de prendre l’exemple de la Uno, car c’est la plus populaire.

Les composants les plus divers y sont reconnaissables (voir figure 2-2), lesquels feront l’objet d’une explication détaillée. Certains penseront certainement qu’on ne peut pas concevoir quelque chose de sérieux sur une surface aussi réduite. Mais grâce à la miniaturisation des composants ces dernières années, ce qui nécessitait auparavant cinq puces électroniques n’en requiert aujourd’hui plus qu’une.

Le plus gros élément qui saute directement aux yeux est le microcontrôleur proprement dit. Il est de type ATmega328.

Figure 2-2
Que trouve-t-on sur la carte Arduino ?

Ces éléments sont les plus importants de la carte Arduino mais, bien entendu, cela ne veut pas dire que les autres sont à négliger.

Voici les principales caractéristiques de la carte Arduino :

• microcontrôleur ATmega328 ;

• tension de service 5 V ;

• 14 entrées et sorties numériques (6 sorties commutables en MLI) ;

• 6 entrées analogiques (résolution 10 bits) ;

• 32 Ko de mémoire flash (0,5 Ko occupé par le chargeur d’amorçage ou bootloader) ;

• 2 Ko de SRAM ;

• 1 Ko d’EEPROM ;

• fréquence d’horloge 16 MHz ;

• interface USB.

Une question simple me vient à l’esprit. Quand je regarde la carte, je me demande ce qu’elle peut bien avoir de spécial. Puis-je communiquer d’une manière quelconque avec le microcontrôleur et, si oui, comment ?

Comme vous pouvez le constater, un certain nombre d’entrées ou de sorties sont disponibles pour communiquer avec la carte Arduino. Elles constituent l’interface avec le monde extérieur et permettent d’échanger des données avec le microcontrôleur, comme l’indique le schéma 2-3.

Figure 2-3
Entrées et sorties de la carte Arduino

Le microcontrôleur Arduino, représenté en bleu à gauche, peut communiquer avec nous via certaines interfaces. Certains ports servent d’entrées (flèche rose), et d’autres d’entrées et de sorties (flèche verte). Un port est ici un chemin d’accès défini au microcontrôleur, pratiquement une porte vers l’intérieur qu’il est possible d’actionner.

Vous apercevez également des réglettes de raccordement noires sur ses bords supérieur et inférieur.

Pas si vite ! Quelque chose ne colle pas. Notre microcontrôleur doit avoir des ports d’entrée et de sortie aussi bien analogiques que numériques. Or, je ne vois sur ce schéma que des entrées comme ports analogiques. Où sont les sorties ?

Bien observé, Ardus ! Mais le schéma est tout à fait correct. La raison en est la suivante et fera l’objet d’une explication plus détaillée : notre carte Arduino n’est pas équipée de sorties analogiques séparées. Cela peut paraître bizarre au premier abord, mais certaines broches numériques sont détournées de leur destination première et servent de sorties analogiques.

Maintenant, vous devez vous demander comment tout cela fonctionne ! Voici donc un avant-goût de ce qui sera expliqué dans la section « Que signifie MLI ? » du chapitre 8, page 154, consacrée à la modulation de largeur d’impulsion. Il s’agit d’un procédé dans lequel le signal présente des phases à niveau haut et des phases à niveau bas plus ou moins longues. Si la phase à niveau haut, dans laquelle le courant circule, est plus longue que celle à niveau bas, une lampe branchée par exemple sur la broche correspondante éclairera visiblement plus fort que si la phase à niveau bas était la plus longue. Plus d’énergie sera donc apportée en un temps donné sous forme de courant électrique. À cause de la persistance rétinienne de notre œil, nous ne pouvons différencier des événements changeant rapidement que sous certaines conditions, et un certain retard se produit aussi lorsque la lampe passe de l’état allumé à celui éteint, et réciproquement. Cela m’a tout l’air d’une tension de sortie qui se modifie, bizarre non ?

En tout cas, ce mode de gestion des ports présente d’emblée un inconvénient. Quand vous utilisez une ou plusieurs sorties analogiques, c’est au détriment de la disponibilité des ports numériques – il y en a alors d’autant moins à disposition – mais cela ne saurait nous gêner outre mesure, car nous n’atteignons pratiquement pas les limites de la carte. De ce fait, nous n’avons pas de restriction sur les montages expérimentaux à tester.

Une question encore, avant que vous ne poursuiviez sur votre lancée : qu’est-ce que le chargeur d’amorçage (ou bootloader) dont vous avez parlé dans les informations de base sur la carte Arduino ?

Ah oui...

Chapitre

3

Les bases de l’électronique

Pour utiliser une carte Arduino, il est préférable d’avoir quelques connaissances en électronique. Ce chapitre en rappelle les principales notions :

• les grands principes de l’électronique ;

• les notions de courant, tension et résistance ;

• la loi d’Ohm ;

• le circuit fermé ;

• les composants passifs et actifs ;

• les principaux composants électriques et électroniques ;

• le circuit intégré.

Mais si vous connaissez déjà les bases de l’électronique, vous pouvez passer au chapitre suivant.

Vous avez dit électronique ?

On entend souvent dire que notre monde ne serait pas ce qu’il est aujourd’hui sans l’électronique, qu’on retrouve désormais dans tous les domaines. Mais, en définitive, que sait-on vraiment de l’électronique ?

Dans le terme électronique, on retrouve le mot « électron ». Les électrons circulent dans un conducteur, par exemple un fil de cuivre, et leur mouvement donne naissance à un courant électrique. Le but est de faire suivre à ce dernier certains trajets, d’établir ou d’interrompre sa circulation, autrement dit d’en garder le contrôle. Quand on y parvient, il est possible de réaliser des choses fantastiques.

Ici, on maîtrise un phénomène qu’on ne voit pas à l’œil nu et qui n’est reconnaissable qu’aux effets produits. Nous modélisons les processus les plus divers, que nous commandons ou contrôlons à volonté. Sur un espace microscopique, nous amenons les électrons à effectuer les trajets souhaités. En fait, c’est ça l’électronique.

Le flux d’électrons

Les électrons sont d’infimes particules élémentaires qui circulent à vitesse élevée dans un conducteur. Voici quelques-unes de ces propriétés caractéristiques :

• charge négative (–1,602176 × 10⁻¹⁹ C) ;

• pratiquement sans masse (9,109382 × 10⁻³¹ kg) ;

• stable (durée de vie supérieure à 10²⁴ ans).

Je n’ai pas hésité à filmer pour vous, à l’aide d’une caméra ultraperfectionnée, un conducteur traversé par un courant pour que vous puissiez visualiser ces minuscules particules (voir figure 3-1). Elles vont toutes dans le même sens et sont responsables de la circulation du courant.

Figure 3-1
Électrons parcourant un conducteur en cuivre

Quand j’ai mentionné la charge négative de l’électron, vous aurez peut-être remarqué que la valeur –1,602176 × 10⁻¹⁹ C était très petite. L’unité de mesure est le coulomb (C). La charge Q circulant en un temps donné à travers un conducteur ayant une certaine section est exprimée à l’aide de la relation suivante :

Q = I · t

Il s’agit du produit entre l’intensité du courant I (en ampères) et le temps t (en secondes).

Figure 3-2
Parcours à travers un conducteur en cuivre sur une durée d’1 seconde

Sur cette vue de la migration des électrons à travers un conducteur en cuivre, j’ai marqué un tronçon que les électrons parcourent en 1 seconde. On peut retenir qu’une charge d’un coulomb a été transportée lorsqu’il y a eu le passage d’un courant d’un ampère pendant 1 seconde.

J’ai déjà utilisé tellement de fois le mot courant que je me dois maintenant d’en dire plus sur cette grandeur physique.

Le courant

Comme vous avez pu le voir dans la dernière formule, la charge et le courant sont reliés entre eux. On peut assimiler le courant à la circulation d’une charge électrique. Plus la charge circulant par unité de temps est importante, plus le courant électrique I est élevé.

La figure 3-3 représente un faible flux d’électrons. Seuls quelques porteurs de charge circulent par unité de temps ; on aura donc un faible courant.

Figure 3-3
Faible flux d’électrons : un petit nombre d’électrons génèrent peu de courant électrique.

À l’inverse, la figure 3-4 représente beaucoup de porteurs de charge circulant par unité de temps, qui donnent naissance à un fort courant dans le conducteur.

Figure 3-4
Flux d’électrons élevé : un grand nombre d’électrons génèrent un courant électrique important.

L’intensité de courant I est mesurée en ampères (A) ; 1’ampère constitue une très forte intensité pour des microcontrôleurs. La charge maximale d’une sortie numérique de votre carte Arduino est de l’ordre de 40 mA (ou 40 milliampères). Un milliampère représente un millième d’ampère (1 000 mA = 1 A).

La tension

Si l’on jette un œil aux dessins précédents schématisant des électrons parcourant un conducteur, il y a quelque chose que nous ne prenons pas en considération : pourquoi se déplacent-ils ? Notre monde est ainsi fait : chaque action a sa raison ou sa finalité correspondante ; nos gestes sont toujours commandés ou motivés par quelque chose. Il en va de même pour les électrons : ils vont tous dans le même sens et vers le même but. Une force motrice doit par conséquent agir. La comparaison de ce phénomène avec de l’eau qui s’écoule est très parlante. C’est cette analogie que j’ai utilisée dans ce chapitre.

Figure 3-5
Les électrons se déplacent en raison d’une différence de potentiel.

Ici, je devrais plutôt parler de différence de charge et non de différence de potentiel. Les charges électriques tendent toujours à compenser les différences de charge.

Prenons, par exemple, une pile chargée. Elle a deux bornes (ou pôles) entre lesquelles il existe une différence de charge. L’une de ces bornes présente un excès de charge et l’autre un manque de charge. Faute de liaison électrique entre les deux pôles, aucune charge ne peut se déplacer pour assurer cette compensation, et aucun courant ne peut par conséquent circuler.

La tension U se mesure en volts (V) et sert à estimer la différence de potentiel entre deux points.

Figure 3-6
La différence de charge ne peut être compensée, faute de liaison.

L’interruption entre les deux potentiels empêche toute compensation et aucun courant ne circule.

Figure 3-7
Une compensation de la différence de charge se produit.

C’est seulement quand une liaison est établie que les porteurs de charge peuvent se déplacer et qu’un courant peut circuler.

Combien de temps circule le courant jusqu’à ce que le côté gauche soit vide et...

Chapitre

4

Circuits électroniques simples

Au sommaire de ce chapitre :

• les circuits résistifs (montages en série et en parallèle) ;

• le diviseur de tension ;

• les circuits capacitifs (montages en série et en parallèle) ;

• les circuits avec transistors.

Puisque vous connaissez maintenant les bases de l’électronique grâce au chapitre précédent, passons à l’étape logique suivante qui consiste à associer plusieurs composants pour en faire un circuit. Pour que les débuts soient moins difficiles, je vais vous montrer quelques circuits de base ne nécessitant, pour la plupart, que très peu de composants. Dans la seconde partie du livre constituée de 19 montages Arduino, la complexité augmentera au fil des projets, mais vous pourrez toujours les construire en suivant les principes exposés ici. Ce chapitre ne se veut pas un précis des circuits électroniques de base, mais se focalise sur la compréhension des projets Arduino. Vous trouverez le cas échéant des explications plus détaillées dans les montages eux-mêmes. Ne vous inquiétez pas, vous saurez tout ce qu’il faut savoir le moment venu.

Les circuits résistifs

Une résistance dans un circuit électrique agit comme un limiteur de courant. La traversée de la résistance est rendue plus ou moins difficile aux électrons qui assaillent ce composant. Le principe est facile à comprendre.

Imaginez un grand nombre de personnes venues voir un concert, obligées de passer par une petite entrée de 2 mètres de large pour pénétrer dans la salle de spectacle. Les corps se touchent si bien que le flux des spectateurs se ralentit. Bien entendu, les gens ont tendance à transpirer et beaucoup de chaleur est émise. On avance moins vite que si l’entrée faisait par exemple 10 mètres de large.

Montages en série et en parallèle

Que se passe-t-il quand plusieurs résistances sont reliées selon une certaine configuration ? Cela devrait influer d’une manière ou d’une autre sur la résistance totale. Prenons deux exemples : le montage en série d’une part...

Chapitre

5

L’assemblage des composants

Les choses deviennent sérieuses et vous découvrez le matériel que vous pourrez bientôt utiliser. Vous connaissez maintenant les composants électroniques de base et il vous reste à savoir où et comment fixer ou relier entre eux les composants. Posons-nous les questions suivantes.

• Qu’entend-on par cartes ?

• Qu’est-ce qu’une plaque d’essais sans soudure, appelée également breadboard ?

• Qu’entend-on par cavaliers flexibles et à quoi servent-ils ?

• Peut-on éventuellement fabriquer ces cavaliers soi-même et à moindre coût ?

Qu’est-ce qu’une carte ?

De nos jours, on utilise une carte pour pérenniser un circuit. Une carte est une mince plaque de quelque 2 mm d’épaisseur, fabriquée dans un matériau tel que bakélite ou époxy, qui sert de support à divers composants. Il...

Chapitre

6

Le matériel utile

Les bons outils faisant les bons ouvriers, je ne peux que vous recommander le matériel mentionné ci-après. Évitez seulement de racheter les outils que vous avez déjà !

Si vous avez déjà vu à quoi ressemble un laboratoire d’électronique professionnel ou un atelier d’électronique, et si le domaine vous intéresse vraiment, vous avez sûrement eu du mal à contenir votre enthousiasme. La diversité des appareils de mesure avec leurs nombreux câbles colorés et la multiplicité des outils laissent le profane à la fois perplexe et émerveillé. C’est du moins ce que j’ai ressenti quand mon père m’a montré son poste de travail. Il travaillait alors sur l’une des nombreuses souffleries du Centre aéronautique et spatial allemand.

Je classe les outils présentés ici en deux catégories :

• Catégorie 1 : les must have!

Outils nécessaires pour votre travail.

• Catégorie 2 : les nice to have!

Outils non indispensables, mais qui peuvent faciliter votre travail.

Pinces diverses

La figure 6-1 présente les pinces qui vous seront les plus utiles :

• la pince coupante diagonale pour couper les fils ;

• la pince à becs longs pour tenir et placer des petits composants ;

• la pince universelle, pour tenir un...

Chapitre

7

Les bases de la programmation

Dans le chapitre 2, nous avons déjà un peu abordé la programmation. Je vous ai montré un premier programme, appelé sketch dans la terminologie Arduino, et vous ai donné quelques informations générales sur le langage de programmation C/C++. Mais je ne vous ai pas expliqué ce que programmer signifie. Nous savons qu’il faut un appareil – PC, Mac ou microcontrôleur comme notre carte Arduino – disposant d’une interface pour pouvoir communiquer avec nous. Matériel et logiciel sont dépendants l’un de l’autre et ne peuvent fonctionner qu’ensemble. Seuls les programmes insufflent une certaine forme de vie au matériel et lui permettent de réaliser ce que le programmeur – vous, donc – peut imaginer.

Qu’est-ce qu’un programme ou sketch ?

En programmation, on rencontre généralement deux éléments constitutifs.

Élément de programme n˚ 1 : l’algorithme

Le sketch est censé accomplir seul une certaine tâche. Pour cela, un algorithme, composé d’un ensemble d’étapes élémentaires nécessaires à cet accomplissement, est créé. Un algorithme est donc une règle de calcul traitée à la manière d’une recette de cuisine.

Imaginez que vous vouliez construire un boîtier en bois pour y loger votre carte Arduino, pour que cela soit un peu plus beau, plus ordonné et plaise également à vos amis. N’achetez pas de bois sans avoir préparé un plan répondant par exemple aux questions suivantes.

• Quelles sont les dimensions de la caisse ?

• De quelle couleur doit-elle être ?

• Où des ouvertures doivent-elles être pratiquées pour poser par exemple des interrupteurs ou des lampes ?

Après avoir réuni le matériel, passez à la fabrication proprement dite, en procédant étape par étape dans un certain ordre :

• choix des plaques de bois ;

• mise à dimension des plaques de bois ;

• ponçage des bords avec du papier de verre ;

• perçage de certaines plaques de bois, appelées à recevoir des ports ;

• vissage des plaques de bois entre elles ;

• mise en peinture du boîtier ;

• insertion de la carte Arduino et câblage des interrupteurs ou des lampes.

Telles sont les étapes par lesquelles il faut passer pour arriver à vos fins. Il en va de même pour l’algorithme.

Élément de programme n˚ 2 : les données

Vous avez très certainement soigneusement noté les dimensions sur le plan, de manière à pouvoir les consulter pendant la construction. Il faut faire en sorte que tout coïncide à la fin. Ces dimensions sont comparables aux données d’un sketch. L’algorithme utilise des valeurs temporaires qui l’aident dans son travail de prise en charge des différentes étapes. Il utilise pour cela une technique qui lui permet de stocker des valeurs et de les rappeler par la suite. Les données sont en effet sauvegardées dans des variables et disponibles à tout moment dans la mémoire. Vous en saurez bientôt plus.

Que signifie traitement des données ?

On entend par traitement des données l’utilisation d’un algorithme qui se sert de données en entrée pour en obtenir d’autres, modifie celles-ci par différents calculs et produit des résultats en sortie.

Figure 7-1
Le traitement des données

Qu’est-ce qu’une variable ?

Nous avons...

Chapitre

8

Programmation de la carte Arduino

Ce chapitre est consacré aux interfaces de notre carte Arduino. Ce sont des canaux de communication permettant une interaction entre la carte et le monde extérieur. Les thèmes abordés sont les suivants.

• À quoi correspondent les ports numériques ?

• À quoi correspondent les ports analogiques ?

• Qu’est-ce qu’un signal MLI ?

Les ports numériques

Les ports numériques de votre carte Arduino peuvent servir aussi bien d’entrées que de sorties. Mais ça ne veut pas dire pour autant que les broches 0 à 7 sont des entrées et que les broches 8 à 13 des sorties. Chacune des 14 broches numériques mises à disposition peut être configurée individuellement en entrée ou en sortie. Une instruction est utilisée à cet effet, laquelle définit le sens de circulation des données, broche par broche. L’instruction pinMode permet de programmer le numéro et le sens des données (INPUT ou OUTPUT) de chaque broche, en fonction de ce dont votre sketch a besoin.

Les entrées numériques

L’instruction pinMode est utilisée pour programmer une broche en entrée. La figure 8-1 montre les deux étapes nécessaires à la configuration et à l’interrogation d’une entrée numérique.

Figure 8-1
Configuration et lecture d’une entrée numérique sur la broche 5

La première étape consiste...

Partie II

Les montages

Montage

1

Le premier sketch

Au sommaire :

• la déclaration et initialisation d’une variable ;

• la programmation d’une broche numérique en sortie (OUTPUT) ;

• l’instruction pinMode() ;

• l’instruction digitalWrite() ;

• l’instruction delay() ;

• le sketch complet ;

• l’analyse du schéma ;

• la réalisation du circuit ;

• un exercice complémentaire.

Le phare "Hello World"

Eh bien Ardus, les choses deviennent maintenant sérieuses, sérieuses certes mais pas vraiment difficiles car nous allons avancer doucement. La plupart des manuels sur les langages de programmation commencent par la présentation d’un programme appelé Hello World. Ce programme est généralement le premier que le débutant est amené à découvrir. Il donne un premier aperçu de la syntaxe du nouveau langage de programmation et imprime le texte "Hello World" dans une fenêtre. Le nouveau langage de programmation se présente ainsi à vous et au reste du monde, et semble dire "Eh je suis là ! Utilisez-moi".

Nous avons à présent un petit problème car notre Arduino n’a pas d’écran à l’origine, et donc pas de console de visualisation pour nous informer. Alors que faire ? Si aucune communication sous une forme écrite n’est possible, alors peut-être l’est-elle avec des signaux optiques ou acoustiques? Nous optons pour la variante optique...

Montage

2

Interrogation d’un capteur

Au sommaire :

• la déclaration et l’initialisation de plusieurs variables ;

• la programmation des broches en tant qu’entrée (INPUT) et sortie (OUTPUT) ;

• l’instruction digitalRead() ;

• l’utilisation de la structure de contrôle if-else ;

• le sketch complet ;

• l’analyse du schéma ;

• la réalisation du circuit ;

• un exercice complémentaire.

Appuyez sur le bouton

Dans cet exemple, nous entendons aller à contre-courant et ne pas envoyer, comme dans notre premier sketch, des informations depuis notre carte Arduino vers l’extérieur, mais relier un composant à une broche, interroger l’état du composant et renvoyer celui-ci à une LED raccordée. Le comportement suivant doit être ici de mise :

• bouton-poussoir non enfoncé – LED éteinte ;

• bouton-poussoir enfoncé – LED allumée.

Composants nécessaires

1 LED rouge

1 bouton-poussoir

1 résistance de 10 kΩ

1 résistance de 330 Ω

Plusieurs cavaliers flexibles de couleurs et de longueurs différentes

Code du sketch

Le code du sketch pour cet exemple est le suivant :

int ledPin = 13;    //LED en broche 13

int buttonPin = 8;  //Bouton-poussoir en broche 8

int buttonState;    //Variable pour enregistrer l’état du bouton

void setup(){

pinMode(ledPin, OUTPUT);    //Broche LED en tant que sortie

pinMode(buttonPin, INPUT);  //Broche bouton-poussoir en tant

           //qu’entrée

}

void loop(){

buttonState = digitalRead(buttonPin);

if(buttonState == HIGH)

digitalWrite(ledPin, HIGH);

else

digitalWrite(ledPin, LOW);

}

Quand vous avez transmis le code, compilez-le comme vous avez appris et envoyez-le au microcontrôleur.

Pour aller plus loin

Une broche numérique opère de manière standard comme entrée et n’a donc pas besoin d’être programmée en tant que telle au moyen de l’instruction pinMode. C’est cependant utile pour une meilleure vue d’ensemble. Vous pouvez malgré tout laisser tomber cette...

Montage

3

Clignotement avec gestion des intervalles

Au sommaire :

• la déclaration et l’initialisation de plusieurs variables ;

• la programmation de plusieurs broches aussi bien comme entrée (INPUT) que comme sortie (OUTPUT) ;

• l’instruction digitalRead() ;

• l’instruction millis() ;

• l’utilisation de la structure de contrôle if-else ;

• le sketch complet ;

• l’analyse du schéma ;

• la réalisation du circuit ;

• un exercice complémentaire.

Appuyez sur le bouton-poussoir et il réagit

Dans notre premier exemple, nous avons vu comment interrompre l’exécution d’un sketch avec la fonction de retardement delay. La LED reliée à la broche de sortie numérique 13 clignotait à intervalles réguliers. Un tel circuit ou une telle programmation présente cependant un inconvénient que nous entendons déceler et éliminer. Pour cela, il faut approfondir un peu le circuit clignotant. Que se passerait-il si vous branchiez en plus un bouton-poussoir sur une entrée numérique pour interroger continuellement son état ?

Une LED est censée s’allumer si vous appuyez sur le bouton-poussoir. Peut-être voyez-vous déjà où je veux en venir ? Tant que l’exécution du sketch est prisonnière de la fonction delay, le traitement du code est interrompu et l’entrée numérique ne peut être interrogée. Vous appuyez donc sur le bouton-poussoir et rien ne se passe.

Composants nécessaires

1 LED rouge

1 LED jaune

1 bouton-poussoir

1 résistance de 10 kΩ

2 résistances de 330 Ω

Plusieurs cavaliers flexibles de couleurs et de longueurs différentes

Code du sketch

...

Montage

4

Le bouton-poussoir récalcitrant

Dans ce montage, vous verrez qu’un bouton-poussoir, ou aussi un interrupteur, ne se comporte pas toujours comme vous l’auriez voulu. Prenons pour exemple un bouton-poussoir qui, en théorie, ferme le circuit tant qu’il reste enfoncé, et le rouvre quand il est relâché. Rien de neuf en soi et rien de bien difficile à comprendre. Mais les circuits électroniques, dont le rôle consiste par exemple à déterminer le nombre exact de pressions sur le bouton-poussoir pour une exploitation ultérieure, posent un problème dont on ne peut se douter au départ.

Une histoire de rebond

Le mot-clé de ce montage est rebond. Appuyer sur un bouton-poussoir normal et même le maintenir enfoncé revient à fermer le contact mécanique une seule et unique fois dans le bouton-poussoir. Ce n’est pourtant pas le cas la plupart du temps, car le composant en question ouvre et referme plusieurs fois le contact dans un intervalle de temps très court, de l’ordre de la milliseconde. Les surfaces de contact d’un bouton-poussoir ne sont en général pas complètement lisses, et on peut voir de multiples aspérités et impuretés quand on les observe au microscope électronique. Ainsi, les points de contact des matériaux conducteurs ne se touchent pas instantanément et pas durablement au moment du rapprochement. L’effet en question peut aussi être obtenu par vibration ou montage sur ressorts du matériau, le contact étant alors brièvement fermé puis de nouveau ouvert plusieurs fois l’une derrière l’autre lors de la jonction.

Ces impulsions délivrées par le bouton-poussoir sont enregistrées et traitées en bonne et due forme par le microcontrôleur, c’est-à-dire comme si vous appuyiez très vite...