Vous êtes sur la page 1sur 78

Arduino lcole

Apprendre aux lves programmer sur Arduino, c'est non seulement leur donner la cl d'accs aux ordinateurs, mais aussi aux objets qui les entourent

v1.0 - janvier 2013


Frdric Genevey

Diduino Arduino

Merci Damien, Lionel, Kristijan et Nikola, lves de loption robotique 2012 des coles dEcublens, qui ont eu la difcile tche de tester ce cours.

Merci Arnold Pasche de mavoir mis le pied ltrier et pour ses conseils en matire de soudure et dlectricit.

Et enn un merci tout particulier au Professeur Jean-Daniel Nicoud pour sa prcieuse aide et son soutien.

http://www.edurobot.ch - 2012

Diduino Arduino
Prface !
propos dArduino et rfrences! Objectifs du plan dtudes romand! propos des schmas lectroniques! Se procurer le matriel!

7
7 8 10 11

Installer Arduino sur Mac: aide-mmoire !


Pilote! Installation du pilote! Installation du logiciel Arduino ! Conguration du logiciel Arduino ! Slection du port srie ! Slection du type de carte Arduino! Aide!

12
12 12 13 13 13 13 13

Matriel minimum!
Leons 1 8!

14
14

LEON 1: Dcouverte de la plateforme Arduino !


Arduino ou Diduino?! Constitution de la carte ! Le microcontrleur! Alimentation! La connectique! Connecteurs Diduino ! La platine dexprimentation!

15
16 17 18 18 19 21 21

Leon 2: la soudure !
http://www.edurobot.ch - 2012

22
3

Diduino Arduino
Leon 3: Les bases de llectronique !
Llectricit! Le circuit lectrique ! Les diodes! Les rsistances!

23
23 25 26 27

Leon 4: faire clignoter la LED !


Introduction! Le menu! La LED ! Code 1! Introduction au code!
Le droulement du programme ! Le code minimal! La fonction! Les instructions! Les points virgules ; ! Les accolades { }! Les commentaires ! Les accents!

30
30 31 32 32 33
33 34 34 35 35 35 36 36

Analyse du code 1 ! toi de jouer!! Monter une LED! Code 2! Variante: faire clignoter deux LEDs! Exercice 1:!

37 38 39 40 41 41

http://www.edurobot.ch - 2012

Diduino Arduino
Exercice 2:! 41

Leon 5: les variables !


Une variable, qu'est ce que c'est ?! Le nom d'une variable ! Dnir une variable ! Lincrmentation! Faire clignoter une LED 10 fois! Code 3! Analyse du code ! Faire clignoter deux LED 20 fois! Dnir les pattes du microcontrleur! Rsumons!!

42
42 42 43 44 45 45 46 47 48 49

valuation: K2000!
Introduction! Les objectifs ! tape1: Schmas! tape2: Programme!

50
50 51 52 53

Les feux de circulation!


tape1: Schmas! tape2: Programme! Corrig! Variantes !

54
55 56 57 57

Leon 6: Input!
Le bouton poussoir! Le bouton poussoir normalement ouvert (NO)!
http://www.edurobot.ch - 2012

58
58 58
5

Diduino Arduino
Le bouton poussoir normalement ferm (NF)! Les interrupteurs! Exercice 1: allumons cette LED! Exercice 2: mais par o passe le courant?! Protger lArduino ! Rsistance Pull-Down / Pull-Up! Circuit avec une une rsistance pull-down! Circuit avec une rsistance pull-up! Rsistance pull-down ou pull-up?! Exercice 3: montage avec rsistance pull-down (rappel au moins) ! Une petite variation de code! Petits exercices: bouton poussoir et LED qui clignote! 58 58 59 60 61 62 62 63 63 64 67 68

Evaluation: vers linni et au-del!!


Les objectifs ! Etape 1: les schmas ! tape2: Programme!

69
69 71 72

Leon 7: le barregraphe !
Introduction! Schmas!

73
73 73

http://www.edurobot.ch - 2012

Diduino Arduino Prface


propos dArduino et rfrences
Arduino est une plateforme open-source d'lectronique programme qui est base sur une carte microcontrleur et un logiciel. Arduino peut tre utilis pour dvelopper des objets interactifs, munis d'interrupteurs ou de capteurs, et peut contrler une grande varit de lumires, moteurs ou toutes autres sorties matrielles. Nous pensons quArdiuno a sa place lcole. Ce document est donc principalement destin aux enseignants et aux lves. Il sagit dune compilation de textes et dexercices, parfois repris in extenso depuis les sources suivantes: http://arduino.cc/fr/ http://sciences.siteduzero.com/tutoriel-3-515602-arduino-pour-bien-commencer-enelectronique-et-en-programmation.html http://mediawiki.e-apprendre.net/index.php/Diduino-Robot http://www.mon-club-elec.fr/pmwiki_mon_club_elec/pmwiki.php?n=MAIN.ARDUINO http://www.didel.com/diduino/Cours01.pdf http://www.didel.com/diduino/Cours02.pdf http://chamayou.franck.free.fr/spip/spip.php?article177 http://www.hexapod-arduino.com http://www.lagrottedubarbu.com http://blog.makezine.com/arduino/ http://www.ladyada.net/learn/arduino/ http://www.craslab.org/arduino/livrethtml/LivretArduinoCRAS.html http://arduino103.blogspot.ch http://www.semageek.com

En cas dutilisation de ce document, partiellement ou dans sa totalit, vous tes pris dy inclure ces sources. Ce cours ne permet quune introduction llectronique. Un cours bien plus complet et trs bien fait est disponible ici: http://sciences.siteduzero.com/tutoriel-3-483697-l-electronique-de-zero.html

http://www.edurobot.ch - 2012

Diduino Arduino
Objectifs du plan dtudes romand
Voici une partie des objectifs du PER abords avec ce cours:

Objectifs de la discipline MSN MSN 33 Rsoudre des problmes numriques et algbriques


en reconnaissant les caractristiques mathmatiques d'une situation et en la traduisant en critures numrique ou littrale en utilisant des proprits des oprations (+, -, x , :, puissance, racine carre et cubique) en choisissant l'outil de calcul le mieux appropri la situation propose en mobilisant l'algbre comme outil de calcul (quations), de preuve ou de gnralisation en construisant, en exerant et en utilisant des procdures de calcul (calcul rchi, algorithmes, calculatrice, rpertoire mmoris) avec des nombres rels en estimant un rsultat et en exerant un regard critique sur le rsultat obtenu

MSN 34 Mobiliser la mesure pour comparer des grandeurs


en connaissant le systme international d'units de mesures en explorant des aspects culturels et historiques lis au systme d'units en mobilisant l'instrument et l'unit de mesure adapts en exprimant une mesure dans diffrentes units en estimant l'importance relative des grandeurs dans un phnomne naturel ou social en estimant la mesure des grandeurs en calculant des grandeurs (rsistances, courant,)

MSN 35 Modliser des phnomnes naturels, techniques, sociaux ou des situations mathmatiques
en mobilisant des reprsentations graphiques (codes, schmas, tableaux, graphiques,) en associant aux grandeurs observables des paramtres en triant, organisant et interprtant des donnes en communiquant ses rsultats et en prsentant des modlisations

MSN 36 Analyser des phnomnes naturels et des technologies l'aide de dmarches caractristiques des sciences exprimentales
en formulant des hypothses en confrontant les hypothses mises des rsultats exprimentaux en dnissant des stratgies d'exploration et d'exprimentation en lien avec les hypothses mises en proposant des explications et en les confrontant celles de ses pairs et aux informations de mdias varis

http://www.edurobot.ch - 2012

Diduino Arduino
Objectifs de la discipline AC&M A 33 AC&M Exercer diverses techniques plastiques et artisanales
en matrisant des habilets de motricit globale et ne (souplesse, prcision, coordination, rapidit du geste,) en choisissant et utilisant divers outils et matriaux en fonction d'un projet en matrisant des gestes artisanaux spciques, en exerant la prcision en utilisant des techniques numriques

Objectifs de (FG) MITIC FG 31 Exercer des lectures multiples dans la consommation et la production de mdias et d'informations
en tudiant les manifestations de la socit de l'information et de la communication et certaines de ses consquences en analysant des images xes et animes au moyen de la grammaire de l'image en vriant les informations reues des mdias et en en produisant selon les mmes modes

Objectifs de (FG) Vivre ensemble et exercice de la dmocratie FG 34 Planier, raliser, valuer un projet et dvelopper une attitude participative et responsable
en prenant une part active et des responsabilits dans un projet en valuant ses actes et ses attitudes, en les ajustant si ncessaire en laborant les tapes du projet, en recourant aux ressources pertinentes et en les valuant en ngociant une dcision commune tout en tenant compte des intrts et des besoins particuliers en dbattant et en recherchant des rponses face des problmes concrets et des questions thiques

Objectifs de la discipline MEP MEP 34 Dvelopper des sujets, des projets favorisant une ouverture sur les sciences du pass, actuelles et du futur...
Familiarisation avec des faons de faire et de raisonner propres la logique robotique, notamment en: identiant les objectifs dune activit ainsi que les notions thoriques et pratiques qui en rsultent planiant, construisant et programmant le robot en fonction des observations et des mesures effectues testant le robot an didentier dventuelles erreurs de conception et en mettant en place des stratgies de remdiation Initiation l'utilisation d'outils et de procds simples an de faire fonctionner un robot de manire autonome 9

http://www.edurobot.ch - 2012

Diduino Arduino
propos des schmas lectroniques
Llectronique a ceci dintressant quon passe dun schma lectronique un montage, ou au contraire, du schma lectronique au montage. Dans les deux cas, cest une activit qui permet de travailler les objectifs suivants:

Objectifs de la discipline MSN MSN 35 Modliser des phnomnes naturels, techniques, sociaux ou des situations mathmatiques
en mobilisant des reprsentations graphiques (codes, schmas, tableaux, graphiques,) en associant aux grandeurs observables des paramtres en triant, organisant et interprtant des donnes en communiquant ses rsultats et en prsentant des modlisations

MSN 36 Analyser des phnomnes naturels et des technologies l'aide de dmarches caractristiques des sciences exprimentales
en formulant des hypothses en confrontant les hypothses mises des rsultats exprimentaux en dnissant des stratgies d'exploration et d'exprimentation en lien avec les hypothses mises en proposant des explications et en les confrontant celles de ses pairs et aux informations de mdias varis

Pour raliser les schmas lectroniques, nous utilisons les outils suivants, disponibles gratuitement sur Mac et PC:
Solve Elec: ! Fido Cadj: ! Fritzing: ! ! ! ! http://www.physicsbox.com/indexsolveelec2fr.html http://davbucci.chez-alice.fr/index.php?argument=elettronica/docadj/docadj.inc http://fritzing.org

http://www.edurobot.ch - 2012

10

Diduino Arduino
Se procurer le matriel
Ce cours est bas sur un module compatible Arduino, appel Diduino.

Nous avons choisi le Diduino, car il possde une platine dexprimentation directement intgre, et est livr avec de nombreux accessoires, tels que des rsistances, des LEDs, des capteurs... bref, tout ce quil est ncessaire pour dbuter sur Arduino. Enn, le Diduino ncessite que lon soude les connecteurs. Cela ajoute ainsi une comptence nos lves. Le matriel ncessaire est donc: Un Diduino (ou un Arduino) Du matriel lectronique de base: LEDs, rsistances, ls, boutons poussoirs... 1 fer souder et de ltain Le Diduino et tout le matriel ncessaire peuvent tre commands cette adresse: http://www.didel.com Il est aussi possible de commander du matriel Arduino et lectronique ces adresses:
Suisse: http://www.play-zone.ch http://www.conrad.ch

France & Belgique: http://mchobby.be http://www.conrad.fr http://www.zartronic.fr http://boutique.semageek.com/fr/ http://www.edurobot.ch - 2012 11

Diduino Arduino Installer Arduino sur Mac 1: aide-mmoire


!

Pilote
An de pouvoir connecter un Diduino sur un Mac, il faut au pralable installer un pilote srie-USB. La dernire version du pilote se trouve ici: http://www.ftdichip.com/Drivers/VCP.htm

Mac dot dun processeur PowerPC (G4, G5): choisir PPC Mac dot dun processeur Intel: 10.3 10.5: choisir x86 (32-bit) 10.6 et 10.7: choisir x86 (64-bit) Deux pilotes sont fournis: lun pour Mac OS 10.3 et lautre pour Mac OS 10.4 10.6. Ce dernier fonctionne aussi sous Mac OS 10.7 Lion. Installation du pilote Dcompresser larchive et ouvrir le pilote choisi. Suivre ensuite le processus dinstallation standard.

Pour installer le logiciel sur PC: http://arduino.cc/fr/Main/DebuterInstallationWindows http://www.edurobot.ch - 2012 12

Diduino Arduino

Installation du logiciel Arduino


Tlcharger le logiciel Arduino depuis cette page: http://arduino.cc/en/Main/ Software Une fois larchive dcompresse, glisser le logiciel dans les applications.

Conguration du logiciel Arduino


Slection du port srie Aller dans le menu Tools/Serial Port et slectionner choix /dev/tty.usbserial-A1015M7N ou /dev/ cu.usbserial-A1015M7N. Selon lusage, utiliser celui qui fonctionne le mieux. Slection du type de carte Arduino Aller dans le menu Tools/Board et slectionner Arduino Duemilanive w/ ATmega328

Aide
Erreur programmer is not responding lors de lenvoi du programme (upload) sur le robot: appuyer sur le bouton reset du robot avant chaque envoi du programme. Dbrancher et rebrancher le cble USB produit le mme effet.

Sources http://www.didel.com/diduino/Start.pdf http://arduino.cc/en/Guide/MacOSX http://fr.ossmanuals.net/_booki/arduino/arduino.pdf http://myarduino.blogspot.com


http://www.edurobot.ch - 2012 13

Diduino Arduino

Matriel minimum
Voici le matriel ncessaire pour raliser les exercices de ce cours:

Leons 1 8
1 Diduino ou 1 Arduino Uno avec une platine dexprimentation 6 LEDs rouges 2 LEDs jaunes ou oranges 2 LEDs vertes 6 rsistances de 220 ou 470 1 rsistance de 10k 1 condensateur de 10nF (en option) 2 boutons poussoirs Des cbles lectriques

http://www.edurobot.ch - 2012

14

Diduino Arduino LEON 1: Dcouverte de la plateforme Arduino


Quest-ce quun ordinateur? La rponse la plus vidente est sans doute de dire quun ordinateur, cest a:

Source: apple.com

Mais est-ce aussi simple? Car un ordinateur, cest aussi, cela:

Source: arduino.cc

cris ta dnition du mot ordinateur: !................................................................................................................................. !................................................................................................................................. Cite des objets qui contiennent des ordinateurs:

!................................................................................................................................. !................................................................................................................................. !.................................................................................................................................

http://www.edurobot.ch - 2012

15

Diduino Arduino
Arduino ou Diduino?
Arduino est un projet open-source. Cela signie que tout le monde a accs librement aux plans, au logiciel (et son code-source), ainsi quau langage de programmation. Tout le monde peut donc modier lArduino, crer des accessoires ou mme faire des copies de lArduino et les vendre. Les cartes originelles sont vendues par Arduino. Mais de nombreux autres fabricants en commercialisent, plus ou moins proches des originaux. Cest le cas de lentreprise Didel2 , qui commercialise le Diduino. Nous avons choisi de travailler avec le Diduino pour plusieurs raisons: Didel est une entreprise locale. Cela compte aussi. Le Diduino possde une platine dexprimentation (breadboard) intgre, ce qui facilite son utilisation en classe Le Diduino possde des connecteurs pour les Kidules3, ce qui permet dajouter de nombreuses fonctions et de raliser de nombreuses expriences. Le Diduino doit en partie tre mont et soud. Cest un excellent travail pour les lves. Ce cours reste nanmoins parfaitement utilisable avec un Arduino ou un compatible Arduino

Cherche et note les dnitions suivantes: Open-source !................................................................................................................................. !................................................................................................................................. !................................................................................................................................. Code source !................................................................................................................................. !.................................................................................................................................

2 3

http://www.didel.com http://www.didel.com/KidulesPub.pdf http://www.edurobot.ch - 2012 16

Diduino Arduino
Constitution de la carte

http://www.edurobot.ch - 2012

17

Diduino Arduino
Le microcontrleur
Voil le cerveau de notre carte. Cest lui qui va recevoir le programme que nous allons crer et qui va le stocker dans sa mmoire puis lexcuter. Grce ce programme, il va savoir faire des choses, qui peuvent tre : faire clignoter une LED, afcher des caractres sur un cran, envoyer des donnes un ordinateur... Sur le Diduino, le processeur est cach sous la platine dexprimentation.

Avant de xer la platine dexprimentation sur ton Diduino, fais un schma aussi prcis que possible de la carte et entoure en rouge le microcontrleur.

Alimentation
Pour fonctionner, une carte Arduino a besoin d'une alimentation. Le microcontrleur fonctionnant sous 5V, la carte peut tre alimente en 5V par le port USB ou bien par une alimentation externe qui est comprise entre 7V et 12V. Un rgulateur se charge ensuite de rduire la tension 5V pour le bon fonctionnement de la carte. Pas de danger de tout griller donc! Veuillez seulement respecter l'intervalle de 7V 15V (mme si le rgulateur peut supporter plus, pas la peine de le retrancher dans ses limites). Attention: ne surtout pas mettre de plus de 6V sur la carte Diduino. Il n'y a pas de rgulateur et donc pas de connecteur pour une alimentation extrieure. On peut mettre un bloc de 3 ou 4 accus (ou piles). La tension accepte va de 3 6V.

http://www.edurobot.ch - 2012

18

Diduino Arduino
La connectique
La carte Arduino ne possdant pas de composants (rsistances, diodes, moteurs...) qui peuvent tre utiliss pour un programme, il est ncessaire de les rajouter. Mais pour ce faire, il faut les connecter la carte. C'est l qu'interviennent les connecteurs de la carte. Sur les Arduino et sur beaucoup de cartes compatibles Arduino, les connecteurs se trouvent au mme endroit. Cela permet de xer des cartes dextension, appele shields.

http://www.edurobot.ch - 2012

19

Diduino Arduino

Sur Diduino, les sorties analogiques sont numrotes A14 A19. Sur Arduino, les sorties analogiques sont numrotes A0 A5.

http://www.edurobot.ch - 2012

20

Diduino Arduino
Connecteurs Diduino
+5V: ! ! Gnd: !! D0-D13:! A14-A19:! Kidules:! tension +5V masse (tension 0V) Connexions aux pattes du micro-contrleur Entres analogiques pour capteurs Connecteurs pour Kidules

La platine dexprimentation
La platine dexprimentation est intgre sur le Diduino. Elle permet de connecter les composants entre eux et de crer des circuits. Il y a 17 ranges. Dans chaque range, il y a deux groupes de 5 colonnes, spars par une tranche au milieu. Tous les connecteurs dans une range de 5 sont connects entre eux. Donc si on branche deux lments dans un groupe de 5 connecteurs, ils seront relis entre eux.

Sur la plupart des autres cartes Arduino, il ny a pas de breadboard. Il faut donc lacqurir part. Il en existe de plusieurs types et de plusieurs tailles.

http://www.edurobot.ch - 2012

21

Diduino Arduino Leon 2: la soudure


Certains modules Arduino, comme le Diduino, ncessitent un petit travail de soudure. Pour raliser cette tape: nous avons besoin: Dun fer souder, panne 4 ne De l souder, n De tresse dessouder, en cas derreur ventuellement, de graisse souder Dun support pour le module Dune pince coupante ne Apprendre souder: http://www.didel.com/Soudure.pdf http://mightyohm.com/les/soldercomic/translations/Souder%20c'est %20facile_FR.pdf

Attention!

Le fer souder va devenir trs chaud! Attention aux brlures! Ne pas respirer les vapeurs de soudure! Toxique! La soudure doit tre ralise aussi soigneusement que possible. Il faut prendre son temps et tre soigneux.
4

La panne est la pointe du fer souder http://www.edurobot.ch - 2012 22

Diduino Arduino Leon 3: Les bases de llectronique


Llectricit
Llectricit est un dplacement dlectrons dans un milieu conducteur. Pour que ces lectrons se dplacent tous dans un mme sens, il faut qu'il y ait une diffrence du nombre d'lectrons entre les deux extrmits du circuit lectrique. Pour maintenir cette diffrence du nombre d'lectrons, on utilise un gnrateur (pile, accumulateur, alternateur...) La diffrence de quantit dlectrons entre deux parties dun circuit sappelle la diffrence de potentiel et elle se mesure en Volts (V).

On peut comparer le fonctionnement dun circuit lectrique celui dun barrage hydrolectrique: Les lectrons seraient leau Le gnrateur serait le rservoir deau Les conducteurs sont naturellement les conduites forces Le consommateur (une ampoule ou une diode, par exemple) est la turbine, qui exploite lnergie du dplacement des lectrons
http://www.edurobot.ch - 2012 23

Diduino Arduino

Sur un barrage, plus la diffrence entre laltitude du niveau du rservoir et celui de la turbine est importante, plus la pression de leau sera importante. Pour un barrage on appelle cette diffrence daltitude hauteur de chute. Cela quivaut sur un circuit lectrique la diffrence de potentiel, qui se mesure en Volts (V) et se note U. Le dbit de leau (=la quantit deau qui scoule par unit de temps) correspond lintensit, aussi appele courant, qui est donc le dbit dlectrons. Elle se mesure en Ampres (A) et se note I. La puissance lectrique se note P et se mesure en Watts (W). Elle exprime la quantit de courant (I), transforme en chaleur ou en mouvement. Sur un barrage, elle correspond lnergie produite par la turbine.

La puissance P est le produit de la tension U et du courant I

Complte les expressions suivantes:

Pour une dcouverte ludique de llectricit, je vous conseille de regarder le Cest pas sorcier consacr ce thme: Partie 1: http://00.lc/cl Partie 2: http://00.lc/cm

http://www.edurobot.ch - 2012

24

Diduino Arduino
Le circuit lectrique
Ainsi, une pile est constitue dun milieu contenant de nombreux lectrons en trop, et dun second milieu en manque dlectrons. Quand on relie les deux ples de la pile (le + et le -) avec un l lectrique (le conducteur), les lectrons vont alors se dplacer du milieu riche vers le milieu pauvre. Si on intercale une lampe lectrique, le passage des lectrons va gnrer de la lumire.

Circuit lectrique Voici le schma lectrique du circuit ci-dessus:

Pile -

+ Lampe

Interrupteur

http://www.edurobot.ch - 2012

25

Diduino Arduino
Les diodes
Il est possible de remplacer lampoule par une diode lectroluminescente, aussi appele LED 5. Elle a la particularit de ne laisser passer le courant lectrique que dans un sens.
Rsine poxy Fil de liaison Cavit r chissante Puce semi-conductrice Enclume Borne

Grille de connexion

Anode

Cathode

Mplat

Le courant lectrique ne peut traverser la diode que dans le sens de lanode vers la cathode. On reconnait lanode, car il sagit de la patte la plus longue. Lorsque les deux pattes sont de mme longueur, on peut distinguer lanode de la cathode, par un mplat du ct de cette dernire. Le symbole de la LED est le suivant:

Attention: le courant produit par lArduino est trop important pour y brancher directement une LED dessus. Lutilisation dune rsistance est obligatoire, pour ne pas endommager la LED.

http://fr.wikipedia.org/wiki/Diode_lectroluminescente http://www.edurobot.ch - 2012 26

Diduino Arduino
Les rsistances
Une rsistance est un composant lectronique ou lectrique dont la principale caractristique est d'opposer une plus ou moins grande rsistance (mesure en ohms: ) la circulation du courant lectrique. On peut alors comparer, le dbit deau au courant lectrique I (qui est dailleurs le dbit dlectrons), la diffrence de pression la diffrence de potentiel lectrique (qui est la tension U) et, enn, le rtrcissement la rsistance R.

Courant de l'eau

Rtrcissement

Rsistance (milieu peu conducteur) Courant lectrique

Ainsi, pour une tension xe, plus la rsistance est faible, plus le courant la traversant est fort. Cette proportion est vrie par la loi dOhm:

http://www.edurobot.ch - 2012

27

Diduino Arduino

Une rsistance est un milieu peu conducteur; les lectrons peinent sy dplacer. Leur nergie se dissipe alors en gnral sous forme de chaleur. Cest ce principe utilis pour les bouilloires lectriques ou les ampoules laments. La valeur de la rsistance se mesure en Ohms (). La valeur dune rsistance est dtermine par ses bandes de couleurs.

Outre le tableau ci-dessus, on peut saider du petit mode demploi qui se trouve ici: http://www.apprendre-en-ligne.net/crypto/passecret/resistances.pdf La rsistance est schmatise de ces deux manires:

Un calculateur de valeurs de rsistances est disponible cette adresse: http://edurobot.ch/resistance/


http://www.edurobot.ch - 2012 28

Diduino Arduino

Quelle est la valeur de ces rsistances?

Et celle-ci?

http://www.edurobot.ch - 2012

29

Diduino Arduino Leon 4: faire clignoter la LED


Introduction
Le Diduino possde une LED monte sur le port 13.

Comme premier programme, nous allons la faire clignoter. La programmation se fait dans le logiciel Arduino.

http://www.edurobot.ch - 2012

30

Diduino Arduino

Le menu

Bouton 1 : ! ! ! Bouton 2 : ! Bouton 3 : ! Bouton 4 : ! Bouton 5 : !

Ce bouton permet de vrier le programme, il actionne un module qui cherche les erreurs dans le programme Envoi du programme sur lArduino Crer un nouveau chier Ouvrir un chier existant Enregistrer un chier

Commenons tout de suite par un petit code. Nous lanalyserons ensuite:

http://www.edurobot.ch - 2012

31

Diduino Arduino

La LED
Code 1
/* Code 1 - Edurobot.ch, destin au Diduino/Arduino Objectif: faire clignoter la LED monte sur le port 13 */ //***** FONCTION SETUP = Code d'initialisation ***** // La fonction setup() est excute en premier et une seule fois, au dmarrage du programme void setup() { pinMode(13, OUTPUT); Serial.begin(9600); } // Initialise la patte 13 comme sortie // Ouvre le port srie 9600 bauds // fin de la fonction setup() // dbut de la fonction setup()

//***** FONCTION LOOP = Boucle sans fin = coeur du programme ***** // la fonction loop() s'excute sans fin en boucle aussi longtemps l'Arduino est sous tension void loop() { digitalWrite(13, HIGH); delay(500); digitalWrite(13, LOW); delay(500); } // // // // // dbut de la fonction loop()

que

Met la patte 13 au niveau haut = allume la LED Pause de 500ms Met la patte 13 au niveau bas = teint la LED Pause 500ms

// fin de la fonction setup()

Tlcharger le code: !

http://www.edurobot.ch/code/code1.txt

Une fois le code crit (ou coll) dans la fentre de programmation, il faut lenvoyer sur le Diduino. Pour cela, il faut cliquer sur le bouton upload (tlverser), naturellement aprs avoir connect le Diduino lordinateur!
http://www.edurobot.ch - 2012 32

Diduino Arduino
Introduction au code Le droulement du programme Le programme se droule de la faon suivante : 1. Prise en compte des instructions de la partie dclarative 2. Excution de la partie conguration ( fonction setup( ) ), 3. Excution de la boucle sans n ( fonction loop ( ) ): le code compris dans la boucle sans n est excut indniment.

Droulement du programme
Fichiers d'inclusion Dclaration des constantes Dclaration des variables globales

En-tte dclarative

Conguration initiale
Fonction Setup Dclaration des variables locales Conguration des pattes Initialisation des variables Initialisation des fonctionnalits Initialisation des interruptions

Fonction Loop

Instructions excutes en boucle

Nous verrons petit petit les divers lments prsents dans le schma. Limportant pour le moment est de savoir quun programme est divis en trois parties: en-tte dclarative, fonction setup et fonction loop. La suite va nous permettre dentrer dans le code minimal: les fonctions setup et loop.

http://www.edurobot.ch - 2012

Boucle sans n

33

Diduino Arduino
Le code minimal6 Avec Arduino, nous devons utiliser un code minimal lorsque l'on cre un programme. Ce code permet de diviser le programme que nous allons crer en deux grosses parties.
void setup() { } void loop() { } //fonction principale, elle se rpte (sexcute) l'infini //contenu du programme //fonction d'initialisation de la carte //contenu de l'initialisation

Nous avons donc devant nous le code minimal qu'il faut insrer dans notre programme. Mais que peut-il bien signier pour quelqu'un qui n'a jamais programm ? La fonction Dans ce code se trouvent deux fonctions. Les fonctions sont en fait des portions de code.
void setup() { } //fonction d'initialisation de la carte //contenu de l'initialisation //on crit le code l'intrieur

Cette fonction setup() est appele une seule fois lorsque le programme commence. C'est pourquoi c'est dans cette fonction que l'on va crire le code qui n'a besoin d'tre excut quune seule fois. On appelle cette fonction : "fonction d'initialisation". On y retrouvera la mise en place des diffrentes sorties et quelques autres rglages. C'est un peu le checkup de dmarrage. Imaginons un pilote d'avion dans sa cabine qui fait l'inventaire : - patte 2 en sortie, tat haut ? - OK - timer 3 15 millisecondes ? - OK

Source de cette partie: http://sciences.siteduzero.com/tutoriel-3-515617-le-langage-arduino-1-2.html http://www.edurobot.ch - 2012 34

Diduino Arduino
Une fois que l'on a initialis le programme, il faut ensuite crer son "cur", autrement dit le programme en lui mme.
void loop() { } //fonction principale, elle se rpte (sexcute) l'infini //contenu du programme

C'est donc dans cette fonction loop() que lon va crire le contenu du programme. Il faut savoir que cette fonction est appele en permanence, c'est--dire qu'elle est excute une fois, puis lorsque son excution est termine, on la rexcute et encore et encore. On parle de boucle innie. Les instructions Maintenant que nous avons vu la structure des fonctions, regardons ce quelles peuvent contenir. Les instructions sont des lignes de code qui disent au programme : "fait ceci, fait cela..." C'est tout bte, mais trs puissant, car c'est ce qui va orchestrer notre programme. Les points virgules ; Les points virgules terminent les instructions. Si par exemple je dis dans mon programme : "appelle la fonction couperDuSaucisson" je dois mettre un point virgule aprs l'appel de cette fonction. Les points virgules ( ; ) sont synonymes d'erreurs, car il arrive trs souvent de les oublier la n des instructions. Par consquent le code ne fonctionne pas. Il faut donc tre trs attentif ne pas oublier de point virgule! Les accolades { } Les accolades sont les "conteneurs" du code du programme. Elles sont propres aux fonctions, aux conditions et aux boucles. Les instructions du programme sont crites l'intrieur de ces accolades. Pour ouvrir une accolade sur Mac, taper alt-8 et alt-9 pour la fermer.

http://www.edurobot.ch - 2012

35

Diduino Arduino
Les commentaires Les commentaires sont des lignes de codes qui seront ignores par le programme. Elles ne servent en rien lors de l'excution du programme. Mais alors c'est inutile ? Non, car cela va nous permettre nous et aux programmeurs qui lirons notre code (s'il y en a) de savoir ce que signie la ligne de code que nous avons crite. C'est trs important de mettre des commentaires et cela permet aussi de reprendre un programme laiss dans l'oubli plus facilement ! Ligne unique de commentaire :
//cette ligne est un commentaire sur UNE SEULE ligne

Ligne ou paragraphe sur plusieurs lignes :


/*cette ligne est un commentaire, sur PLUSIEURS lignes qui sera ignor par le programme, mais pas par celui qui lit le code ;) */

Les accents Il est formellement interdit de mettre des accents en programmation! Sauf dans les commentaires.

http://www.edurobot.ch - 2012

36

Diduino Arduino
Analyse du code 1 7 Revenons maintenant notre code.

La ligne pinMode(13, OUTPUT); initialise la patte 13 du microcontrleur comme sortie, c'est--dire que des donnes seront envoyes depuis le microcontrleur vers cette patte. La ligne Serial.begin(9600); initialise le port srie qui permet au robot d'envoyer et de recevoir des informations l'ordinateur. Avec l'instruction digitalWrite(13, HIGH);, le microcontrleur connecte la patte D13 au +5V ce qui a pour effet d'allumer la LED. L'instruction delay(500); indique au microcontrleur de ne rien faire pendant 500 millisecondes, soit seconde. Avec l'instruction digitalWrite(13, LOW);, le microcontrleur connecte la patte D13 la masse (Gnd) ce qui a pour effet d'teindre la LED. L'instruction delay(500); indique au microcontrleur nouveau de ne rien faire pendant 500ms soit seconde. Le rsultat est donc que la LED s'allume pendant seconde, puis s'teint pendant une seconde puis s'allume pendant seconde... elle clignote donc.

Source: http://00.lc/ce http://www.edurobot.ch - 2012 37

Diduino Arduino
toi de jouer! Fais varier les valeurs de linstruction delay. Indique ci-dessous la valeur choisie et le rsultat obtenu: Essai 1:
digitalWrite(13, HIGH); delay(.....); digitalWrite(13, LOW); delay(.....);

Rsultat:! _______________________________________________________________

Essai 2:
digitalWrite(13, HIGH); delay(.....); digitalWrite(13, LOW); delay(.....);

Rsultat:! _______________________________________________________________

Essai 3:
digitalWrite(13, HIGH); delay(.....); digitalWrite(13, LOW); delay(.....);

Rsultat:! _______________________________________________________________

http://www.edurobot.ch - 2012

38

Diduino Arduino
Monter une LED
Nous allons maintenant raliser le schma suivant:
Gnd

D10

Fais attention ne pas te tromper de rsistance et bien monter la LED dans le bon sens.

http://www.edurobot.ch - 2012

39

Diduino Arduino
Code 2 Modie le code ci-dessous, an de faire clignoter la LED sur la patte 13.
/* Code 2 - Edurobot.ch, destin au Diduino Objectif: faire clignoter la LED monte sur la patte 13 */ void setup() { // Initialise la patte 13 comme sortie pinMode(13, OUTPUT); // Ouvre le port srie 9600 bauds Serial.begin(9600); } void loop() { digitalWrite(13, HIGH); delay(500); digitalWrite(13, LOW); delay(500); } // // // // allume attend teint attend la LED 500ms la LED 500ms

Tu trouveras le corrig ici: http://edurobot.ch/code/code2.txt Remplace maintenant la rsistance par une autre de 220 . Que constates-tu, et comment lexpliques-tu?

Ralise le schma lectronique du montage que tu viens de raliser.

http://www.edurobot.ch - 2012

40

Diduino Arduino
Variante: faire clignoter deux LEDs
Ralise le montage suivant:

Exercice 1: Modie le code 2 pour faire clignoter les deux LEDs en mme temps. Corrig: http://www.edurobot.ch/code/code2-1.txt

Exercice 2: Modie ton code pour faire clignoter les LEDs en alternance. Corrig: http://www.edurobot.ch/code/code2-2.txt

http://www.edurobot.ch - 2012

41

Diduino Arduino Leon 5: les variables


Nous l'avons vu, dans un microcontrleur, il y a plusieurs types de mmoire. Nous nous occuperons seulement de la mmoire "vive" (RAM) et de la mmoire "morte" (EEPROM). Je vais vous poser un problme. Imaginons que vous avez connect un bouton poussoir sur votre carte Arduino. Comment allez-vous stocker l'tat du bouton (appuy ou pas) ?

Une variable, qu'est ce que c'est ?


Une variable est un nombre. Ce nombre est stock dans un espace de la mmoire vive (RAM) du microcontrleur. La manire qui permet de les stocker est semblable celle utilise pour ranger des chaussures : dans un casier numrot. Ce nombre a la particularit de changer de valeur. trange n'est-ce pas ? Et bien pas tant que a, car une variable est en fait le conteneur du nombre en question. Et ce conteneur va tre stock dans une case de la mmoire. Si on matrialise cette explication par un schma, cela donnerait : nombre variable mmoire le symbole "" signiant : "est contenu dans..." Imagine que tu stockes ta variable dans un container. Chaque container est lui, dpos dans une case bien prcise, an de le retrouver.

Le nom d'une variable Le nom de variable n'accepte que l'alphabet alphanumrique ([a-z], [A-Z], [0-9]) et _ (underscore)
http://www.edurobot.ch - 2012 42

Diduino Arduino
Dnir une variable
Si on donne un nombre notre programme, il ne sait pas si c'est une variable ou pas. Il faut le lui indiquer. Pour cela, on donne un type aux variables. Oui, car il existe plusieurs types de variables ! Par exemple la variable "x" vaut 4 :
x = 4;

Et bien ce code ne fonctionnerait pas car il ne suft pas ! En effet, il existe une multitude de nombres : les nombres entiers, les nombres dcimaux, ... C'est pour cela qu'il faut assigner une variable un type. Voil les types de variables les plus rpandus

Par exemple, si notre variable "x" ne prend que des valeurs dcimales, on utilisera les types int, long, ou char. Si maintenant la variable "x" ne dpasse pas la valeur 64 ou 87, alors on utilisera le type char.
char x = 0;

Si en revanche x = 260, alors on utilisera le type suprieur (qui accepte une plus grande quantit de nombre) char, autrement dit int ou long. Mais t'es pas malin, pour viter les dpassements de valeur ont met tout dans des double ou long ! Oui, mais NON. Un microcontrleur, ce n'est pas un ordinateur 2GHz multicore, 4Go de RAM ! Ici on parle d'un systme qui fonctionne avec un CPU 16MHz (soit 0,016 GHz) et 2 Ko de SRAM pour la mmoire vive. Donc deux raisons font qu'il faut choisir ses variables de manire judicieuse : - La RAM n'est pas extensible, quand il y en a plus, y en a plus !

http://www.edurobot.ch - 2012

43

Diduino Arduino
Le processeur est de type 8 bits (sur Arduino UNO), donc il est optimis pour faire des traitements sur des variables de taille 8 bits, un traitement sur une variable 32 bits prendra donc (beaucoup) plus de temps ! Si prsent notre variable "x" ne prend jamais une valeur ngative (-20, -78, ...), alors on utilisera un type non-sign. C'est dire, dans notre cas, un char dont la valeur n'est plus de -128 +127, mais de 0 255. Voici le tableau des types non signs, on repre ces types par le mot unsigned (de l'anglais : non-sign) qui les prcde :

Une des particularits du langage Arduino est qu'il accepte un nombre plus important de types de variables, listes dans ce tableau:

Lincrmentation
Il est possible dappliquer des variables diverses oprations mathmatiques. Commenons tout de suite par un petit exemple: lincrmentation. Il sagit simplement dadditionner 1 la variable. A chaque fois quon rpte le code, on ajoute 1 la variable. Cela se fait grce ce code (var tant une variable choix): var++; var++; revient crire : "var = var + 1;"

http://www.edurobot.ch - 2012

44

Diduino Arduino

Faire clignoter une LED 10 fois


Code 3 Lobjectif est de faire clignoter une LED 10 fois. Le montage est toujours le mme.
/* Code 3 - Edurobot.ch, destin au Diduino/Arduino Objectif: faire clignoter 10 fois la LED monte sur le port 10 */ //***** EN-TETE DECLARATIVE ***** // On dclare les variables, les constantes,... byte compteur; //On dfinit la variable "compteur"

//***** FONCTION SETUP = Code d'initialisation ***** // La fonction setup() est excute en premier et une seule fois, au dmarrage du programme void setup() { pinMode(10, OUTPUT); Serial.begin(9600); // Initialise la patte 10 comme sortie // Ouvre le port srie 9600 bauds

// Excute le programme entre accolades en partant de zro et en incrmentant chaque fois la valeur de +1: 0+1/2+1/3+1... jusqu ce que la variable compteur soit gale 10. for(compteur=0 ; compteur<10 ; compteur++) { digitalWrite(10, HIGH); delay(500); digitalWrite(10, LOW); delay(500); } } void loop() { } // fin du programme excut 10 fois // vide, car programme dj excut dans setup // // // // // dbut du programme excut 10 fois allume la LED attend 500ms teint la LED attend 500ms

Tlcharger le code: http://edurobot.ch/code/code3.txt


http://www.edurobot.ch - 2012 45

Diduino Arduino
Analyse du code 8 La ligne byte compteur; permet de crer une variable compteur. Byte indique le type de la variable, c'est--dire le type de donnes que l'on pourra stocker dans cette variable. Comme nous lavons dj vu, le type byte permet de stocker des valeurs comprises entre 0 et 255. La ligne for(compteur=0 ; compteur<10 ; compteur++) { instructions } sert faire varier la variable compteur de 0 9 (en l'augmentant chaque fois de 1: c'est ce que fait l'instruction compteur++) et chaque fois excute toutes les instructions jusqu' l'accolade }. Cela va donc avoir l'effet de rpter le code suivant 10 fois:
digitalWrite(12, HIGH); delay(500); digitalWrite(12, LOW); delay(500); // // // // allume attend teint attend la LED 500ms la LED 500ms

Que se passe-t-il si tu remplaces la ligne for(compteur=0 ; compteur<10 ; compteur++) en for(compteur=0 ; compteur<20 ; compteur++) ?

Que se passe-t-il si tu remplaces la ligne for(compteur=0 ; compteur<10 ; compteur++) en for(compteur=15 ; compteur<20 ; compteur++) ?

Source: http://mediawiki.e-apprendre.net/index.php/Dcouverte_des_microcontrleurs_avec_le_Diduino http://www.edurobot.ch - 2012 46

Diduino Arduino
Faire clignoter deux LED 20 fois
Ralise le montage suivant:

Modie ton code pour que les deux LED clignotent en mme temps vingt fois. Tu trouveras le corrig ici: http://edurobot.ch/code/code4-1.txt

Modie maintenant le programme pour que les LED clignotent en alternance vingt fois. Tu trouveras le corrig ici: http://edurobot.ch/code/code4-2.txt

Comment faire pour augmenter la frquence du clignotement?

Tu trouveras une vido dexemple cette adresse: http://00.lc/cq

http://www.edurobot.ch - 2012

47

Diduino Arduino
Dnir les pattes du microcontrleur
Jusqu maintenant, nous avons identi les pattes du microcontrleur laide de leurs numros, comme dans lexemple suivant: pinMode(10, OUTPUT);. Il est aussi possible de crer une variable dnissant la broche utilise, ensuite, dnir si la patte utilise doit tre une entre du microcontrleur ou une sortie. Premirement, donc, dnissons la patte utilise du microcontrleur :
const int led_rouge = 2; variable //dfinition de la patte 2 de la carte en tant que

Le terme const signie que l'on dnit la variable comme tant constante. Par consquent, on change la nature de la variable qui devient alors constante. Le terme int correspond un type de variable. En dnissant une variable de ce type, elle peut stocker un nombre allant de -2147483648 +2147483647 ! Cela nous suft amplement ! Ainsi, la patte 2 devient led_rouge. Nous sommes donc en prsence d'une variable, nomme led_rouge, qui est en fait une constante, qui peut prendre une valeur allant de -2147483648 +2147483647. Dans notre cas, cette constante est assigne 2. Le chiffre 2. Lorsque le code sera compil, le microcontrleur saura ainsi que sur sa broche numro 2, il y a un lment connect. Protons maintenant pour voir ce que signie le terme Output utilis jusqu prsent. Il sagit de prciser si cette patte est une entre ou une sortie. Oui, car le microcontrleur a la capacit d'utiliser certaines de ses pattes en entre ou en sortie. C'est fabuleux ! En effet, il suft simplement dinterchanger UNE ligne de code pour dire qu'il faut utiliser une patte en entre (rcupration de donne) ou en sortie (envoi de donne). Cette ligne de code justement, parlons-en ! Elle doit se trouver dans la fonction setup(). La fonction se trouve tre pinMode(). Pour utiliser cette fonction, il faut lui envoyer deux paramtres : Le nom de la variable que l'on a dni la broche Le type de broche que cela va tre (entre ou sortie)
void setup() { pinMode(led_rouge, OUTPUT); //initialisation de la patte 2 comme tant une sortie }

Ce code va donc dnir la led_rouge (qui est la broche numro 2 du microcontrleur) en sortie, car OUTPUT signie en franais : sortie.
http://www.edurobot.ch - 2012 48

Diduino Arduino
Rsumons! Concrtement, quest-ce que cela signie? Et bien, dans notre code 1, nous avions dni la patte du microcontrleur de cette faon:
void setup() { // Initialise la patte 13 comme sortie pinMode(13, OUTPUT); // Ouvre le port srie 9600 bauds Serial.begin(9600); } void loop() { digitalWrite(13, HIGH); delay(500); digitalWrite(13, LOW); delay(500); } // // // // allume attend teint attend la LED 500ms la LED 500ms

Ainsi, nous pouvons aussi dnir la patte de cette manire:


const int led_rouge = 13; //La patte 13 devient led_rouge

void setup() { // Initialise led_rouge comme patte de sortie pinMode(led_rouge, OUTPUT); // Ouvre le port srie 9600 bauds Serial.begin(9600); } void loop() { digitalWrite(led_rouge, HIGH); // delay(500); // attend digitalWrite(led_rouge, LOW); // delay(500); // attend } allume la LED 500ms teint la LED 500ms

quoi est-ce que cela sert? Quand nous aurons de nombreuses pattes en fonction, cela nous permettra de les identier plus facilement. Ainsi, si nous avons plusieurs LED, nous pouvons les appeler L1, L2, L3,... et si nous utilisons des LED de plusieurs couleurs, nous pourrons les appeler rouge, vert, bleu,... Enn, si on veut changer la patte utilise, il suft de corriger la variable, sans devoir corriger tout le code.
http://www.edurobot.ch - 2012 49

Diduino Arduino valuation: K2000


Introduction
Les exploits dun chevalier solitaire, dans un monde dangereux; le chevalier et sa monture... Il y longtemps de cela, du temps de ma jeunesse (soit peu de temps aprs la disparition du dernier mammouth), un hros hantait la petite lucarne: Michael Knight et sa voiture parlante, Kitt. Je tinvite revoir le gnrique de cette srie danthologies (en terme de mauvais got capillaire) ici: http://www.youtube.com/watch?v=PI_1sNt1cl8 9 Comme tu peux le voir, la voiture possde sur son capot des LED qui simulent un mouvement de droite gauche et de gauche droite (avec un magnique son du style fschouiiii-fschouiiiii).

Ta mission, si tu lacceptes (mais tu as intrt... cest quand mme une valuation!), est de reproduire cet accessoire indispensable toute automobile qui se respecte: le bandeau de LED... mais sans le son (le mauvais got des limites). Pour cela, tu auras besoin de 6 LED rouges ( priori... mais tout est possible) et de 6 rsistances (des 220 470 feront parfaitement laffaire). Pour taider, nhsite pas regarder cette petite vido dexemple: http://00.lc/k2000 Corrig 10: http://www.edurobot.ch/code/k2000.pdf
9

Lien court: http://00.lc/cp Fichier protg par un mot de passe. Pour lobtenir: info [at] edurobot.ch 50

10

http://www.edurobot.ch - 2012

Diduino Arduino
Les objectifs

Objectifs de la discipline MSN MSN 35 Modliser des phnomnes naturels, techniques, sociaux ou des situations mathmatiques
en mobilisant des reprsentations graphiques (codes, schmas, tableaux, graphiques,) en associant aux grandeurs observables des paramtres en triant, organisant et interprtant des donnes en communiquant ses rsultats et en prsentant des modlisations

MSN 36 Analyser des phnomnes naturels et des technologies l'aide de dmarches caractristiques des sciences exprimentales
en formulant des hypothses en confrontant les hypothses mises des rsultats exprimentaux en dnissant des stratgies d'exploration et d'exprimentation en lien avec les hypothses mises en proposant des explications et en les confrontant celles de ses pairs et aux informations de mdias varis

Si applicable: Objectifs de la discipline MEP MEP 34 Dvelopper des sujets, des projets favorisant une ouverture sur les sciences du pass, actuelles et du futur...
Familiarisation avec des faons de faire et de raisonner propres la logique robotique, notamment en: identiant les objectifs dune activit ainsi que les notions thoriques et pratiques qui en rsultent planiant, construisant et programmant le robot en fonction des observations et des mesures effectues testant le robot an didentier dventuelles erreurs de conception et en mettant en place des stratgies de remdiation Initiation l'utilisation d'outils et de procds simples an de faire fonctionner un robot de manire autonome

Capacits transversales exerces: stratgies dapprentissage, dmarche rexive

http://www.edurobot.ch - 2012

51

Diduino Arduino
tape1: Schmas
Ralise le plan du montage que tu vas utiliser:

D0 D1 D2 D3 D4 D5 D6 D7

+5V

Gnd

A19 A18 A17 A16 A15 A14

+5V D8 D9 D10 D11 D12 D13 Gnd +5V +5V Gnd Gnd Gnd +5V Gnd reset

Ralise maintenant le schma lectrique du montage:

D.... D.... D.... D.... D.... D....

http://www.edurobot.ch - 2012

52

Diduino Arduino
tape2: Programme
Rdige ton programme ici:

http://www.edurobot.ch - 2012

53

Diduino Arduino Les feux de circulation


Lobjectif est de crer deux feux de circulation et de les faire fonctionner de manire synchrone. Voici les phases de deux feux de circulation que tu dois recrer:

Feu 1
phases

1 2 3 4

Feu 2
60 sec 5 sec 60 sec 5 sec

Tu peux visionner une vido de prsentation ici: http://00.lc/ct

tablis la liste des composants que tu auras besoin pour raliser le projet:

http://www.edurobot.ch - 2012

54

Diduino Arduino
tape1: Schmas
Ralise le plan du montage que tu vas utiliser:

D0 D1 D2 D3 D4 D5 D6 D7

+5V

Gnd

A19 A18 A17 A16 A15 A14

+5V D8 D9 D10 D11 D12 D13 Gnd +5V +5V Gnd Gnd Gnd +5V Gnd reset

Ralise maintenant le schma lectrique du montage:

D.... D.... D.... D.... D.... D....

http://www.edurobot.ch - 2012

55

Diduino Arduino
tape2: Programme
Rdige ton programme ici:

http://www.edurobot.ch - 2012

56

Diduino Arduino
Corrig
Tu trouveras le corrig ladresse suivante: http://edurobot.ch/code/code5.txt

Variantes
Variante 1 Il y a souvent un dcalage entre le passage dun feu au rouge et le passage au vert de lautre feu. Cest en particulier le cas pour les feux de chantier. Cela permet aux voitures encore engages dans la zone de chantier de la quitter, avant de laisser la place aux voitures venant en face. Dcrire les phases des feux et les programmer pour tenir compte du dlai. Variante 2 Intgrer un troisime feu, qui passe du rouge au vert en alternance avec les deux autres feux. Raliser le schma lectronique et programmer les feux. Variante 3 Raliser les feux pour un carrefour:

Source: http://minne.romain.free.fr/MPI/tp10_carrefour/Gestion_d_un_carrefour.html
http://www.edurobot.ch - 2012 57

Diduino Arduino Leon 6: Input


Le bouton poussoir
Le bouton poussoir normalement ouvert (NO) Cest le bouton le plus frquemment rencontr: - Relch : le courant ne passe pas, le circuit est dconnect ; on dit que le circuit est ouvert. - Appuy : le courant passe, on dit que le circuit est ferm. Habituellement le bouton poussoir a deux broches, mais en gnral ils en ont 4 relies deux deux. Le bouton poussoir normalement ferm (NF) Ce type de bouton est l'oppos du type prcdent, c'est--dire que lorsque le bouton est relch, il laisse passer le courant. Et inversement : - Relch : le courant passe, le circuit est connect ; on dit que le circuit est ferm. - Appuy : le courant ne passe pas, on dit que le circuit est ouvert. Les interrupteurs la diffrence d'un bouton poussoir, l'interrupteur agit comme une bascule. Un appui ferme le circuit et il faut un second appui pour l'ouvrir de nouveau. Il possde donc des tats stables (ouvert ou ferm). Nous en rencontrons tous les jours lorsque nous allumons la lumire.

Bouton poussoir NO

Bouton poussoir NF

Interrupteur

http://www.edurobot.ch - 2012

58

Diduino Arduino
Exercice 1: allumons cette LED
Ralise le circuit suivant:

Gnd

+5V Lorsquon appuie sur le bouton poussoir, on ferme le circuit. Le courant passe alors et la LED sallume.

http://www.edurobot.ch - 2012

59

Diduino Arduino
Exercice 2: mais par o passe le courant?
Ralise le circuit suivant:

Gnd

+5V Il y a plus de rsistance au passage du courant lorsquil traverse une LED quun bouton poussoir. Or, le courant passera l o il rencontrera le moins de rsistance. Cest pourquoi, quand le bouton poussoir est relch, le courant passe par la LED. Mais lorsque tu appuies sur le bouton, la LED steint. En effet, le courant prfre passer au travers du bouton poussoir.

http://www.edurobot.ch - 2012

60

Diduino Arduino
Protger lArduino
Jusqu maintenant, nous nous sommes toujours contents de faire circuler du courant du microcontrleur la masse. Au lieu dutiliser les pattes du microcontrleur seulement sous forme de sortie (OUTPUT), nous allons aussi les utiliser sous forme dentre (INPUT); cest--dire quau lieu dtre raccorde la masse, la patte sera raccorde au +5V. Tout se passera bien, si au niveau du programme, la patte est congure comme input. Mais si elle devait tre congure en output par erreur, il est presque certain que le microcontrleur nira immdiatement au paradis des puces lectroniques grilles. Ainsi, pour viter de condamner notre microcontrleur la chaise lectrique, nous allons devoir le protger. Cela peut se faire en connectant sur la patte du microcontrleur utilis comme input une rsistance dune centaine dOhms. Comme le Diduino est fourni avec des rsistances de 220 , cest celle que nous utiliserons.

ATTENTION! Lorsque vous branchez le Diduino lordinateur, le dernier programme reu est excut. Avant de commencer un nouveau montage, il est plus que conseill denvoyer un programme dinitialisation, du modle de celui-ci:
//Programme vide dinitialisation void setup() { } void loop() { }

Maintenant que ce point est rgl, voyons comment utiliser le bouton poussoir avec le microcontrleur.

http://www.edurobot.ch - 2012

61

Diduino Arduino
Rsistance Pull-Down / Pull-Up
Circuit avec une une rsistance pull-down Observons ce schma:

Lorsque lon presse le bouton poussoir, on envoie +5 Volts sur D4, qui sera interprt comme un 1. Lorsquon relche le bouton, il ny a plus de courant qui arrive sur D4, ce qui sera interprt comme un 0. On a donc un signal binaire: allum/teint (on/off). Ce montage contient une rsistance de 10 k (soit 10000 ), quon appelle pull-down (littralement tirer-en-bas). Cette rsistance permet de tirer le potentiel vers le bas (pulldown). En franais, on appelle aussi ceci un rappel au moins. En effet, contrairement au cas thorique, fermer ou ouvrir un circuit (via un interrupteur ou un bouton poussoir) ne gnre pas forcment un signal clair: Le circuit non connect la source peut agir comme une antenne dans un environnement pollu d'ondes lectromagntiques (proches des moteurs par exemple). Cela va gnrer dans le circuit un courant qui peut tre interprt comme un signal. Il peut rester dans un circuit rcemment ouvert un niveau d'nergie. Cela provoque des cas d'indtermination. Le signal qui a t coup peut tre considr comme encore actif par un microcontrleur. Le but d'une rsistance de pull-down est donc dvacuer les courants vagabonds et de donner un signal clair. Si on presse le bouton, 5 Volts sont alors appliqus sur l'entre. Le courant va prendre le chemin le plus simple, soit par la rsistance de 220 et nit par arriver sur D4. Si on relche le bouton, la rsistance pull-down ramne l'entre la masse (puisquelle est connecte la masse).
http://www.edurobot.ch - 2012 62

Diduino Arduino
Circuit avec une rsistance pull-up Observons maintenant ce schma:

Si on le compare au schma dun circuit avec une rsistance pull-down, on constate une inversion entre la terre et le +5V. En effet, lorsque le circuit est ouvert, une tension de +5V est applique lentre D4. Lorsquon appuie sur le bouton poussoir, le courant lectrique va passer par le chemin offrant le moins de rsistance, soit directement par la masse (Gnd), sans passer par lentre D4. Le fonctionnement est donc invers par rapport la rsistance pull-down. Rsistance pull-down ou pull-up? A notre niveau, la seule chose qui va changer entre une rsistance pull-down et une rsistance pull-up est la lecture de linformation: Avec une rsistance pull-down, par dfaut, lentre sur la patte est gale 0. Avec une rsistance pull-up, par dfaut, lentre sur la patte est gale 1. Dans le code if (digitalRead(bouton) == 1 ) , sera respectivement la valeur dentre lorsque le circuit est ferm (pull-down) ou ouvert (pull-up).

http://www.edurobot.ch - 2012

63

Diduino Arduino
Exercice 3: montage avec rsistance pull-down (rappel au moins)11
Ralisons maintenant le circuit suivant:

Gnd

+5V
D4 D12

Indique sur le schma ci-dessus o se trouve la rsistance pull down et la rsistance de protection du microcontrleur Lorsquon appuie sur le bouton poussoir, La LED doit sallumer. Et naturellement, lorsquon relche le bouton poussoir, la LED steint. Nous allons utiliser une nouvelle instruction: if ... else (si ... sinon). Cest donc une condition. Voici ce qui va se passer: Si le bouton poussoir est press (digitalRead(4) == 1), allumer la LED (digitalWrite(12, HIGH)), sinon teindre la LED (digitalWrite(12, LOW)). Linstruction == vrie si deux expressions sont gales. Si elles le sont, alors le rsultat sera vrai (true) sinon le rsultat sera faux (false).

11

Plus dinformations ici: http://00.lc/dn 64

http://www.edurobot.ch - 2012

Diduino Arduino
Observons maintenant le code:
/* Code 7 - Edurobot.ch, destin au Diduino Allume LED en fonction de l'tat du bouton poussoir */

// On dclare les variables const int bouton = 4; const int led = 12; void setup() { pinMode(bouton, INPUT); // Initialise la patte 4 comme entre // la patte 4 devient bouton // la patte 12 devient led

pinMode(led, OUTPUT); Serial.begin(9600); } void loop()

// Initialise la patte 12 comme sortie // Ouvre le port srie 9600 bauds

{ // Si boutton poussoir appuy if (digitalRead(bouton) == 1 ) { digitalWrite(led, HIGH); } // Sinon else { digitalWrite(led, LOW); } }

//teste si le bouton a une valeur de 1

// allume la LED

//teste si le bouton a une valeur de 0 // teint la LED

Tlcharger le code: http://www.edurobot.ch/code/code7.txt

http://www.edurobot.ch - 2012

65

Diduino Arduino
Analysons le code:
const int bouton = 4; const int led = 12; // la patte 4 devient bouton // la patte 12 devient led

On renomme les pattes 4 et 12 respectivement bouton et led. Cela facilitera la lecture du code.
void setup() { // Initialise la patte 4 comme entre pinMode(bouton, INPUT); // Initialise la patte 12 comme sortie pinMode(led, OUTPUT); // Ouvre le port srie 9600 bauds Serial.begin(9600); }

Voil, maintenant notre microcontrleur sait qu'il y a quelque chose de connect sur sa patte 4 et quelle est congure en entre (input). De mme, la patte 12 est congure en sortie (output). Maintenant que le bouton est paramtr, nous allons chercher savoir quel est son tat (appuy ou relch). Si le microcontrleur dtecte une diffrence de potientiel de +5V sa patte 4, alors il stockera une valeur de 1. Dans le cas contraire (diffrence de potientiel de 0V), il stockera une valeur de 0. Pour lire ltat de la patte 4, nous allons utiliser lexpression digitalRead. Ainsi:
if (digitalRead(bouton) == 1 ) digitalWrite(led, HIGH); // allume la LED

doit se comprendre comme:


si la patte 4 a une valeur gale 1 alors la patte 12 est en position haute = LED allume

et les lignes:
else { digitalWrite(led, LOW); // teint la LED

doivent se comprendre comme:


sinon (cest dire: la patte 4 a une valeur gale 0) la patte 12 est en position basse = LED teinte

Voici une petite vido qui prsente lactivit: http://00.lc/cx


http://www.edurobot.ch - 2012 66

Diduino Arduino
Une petite variation de code
Le code prcdent est simple, mais manque un peu de nesse; un peu comme un barbare avec une hache deux mains dans une rception de Monsieur lAmbassadeur. Voici donc une autre solution:
/* Code 8 - Edurobot.ch, destin au Diduino Allume LED en fonction de l'tat du bouton poussoir */ const int bouton = 4; const int led = 12; int etatbouton; void setup() { pinMode(bouton, INPUT); pinMode(led, OUTPUT); etatbouton = LOW; Serial.begin(9600); } void loop() { etatbouton = digitalRead(bouton); //On mmorise ltat du bouton if(etatbouton == LOW) //teste si le bouton a un niveau logique BAS { digitalWrite(led,LOW); //la LED reste teinte } else //teste si le bouton a un niveau logique diffrent de BAS (donc HAUT) { digitalWrite(led,HIGH); //le bouton est appuy, la LED est allume } } // la patte 4 devient bouton // la patte 12 devient led // variable qui enregistre ltat du bouton

// Initialise le bouton comme entre // Initialise la led comme sortie // Initialise ltat du bouton comme relch // Ouvre le port srie 9600 bauds

Pour commencer, nous allons crer une variable que nous choisirons dappeler etatbouton. Elle servira stocker ltat du bouton (logique, non?):
int etatbouton;

On inscrit ltat du bouton dans la variable de cette manire, avec la fonction digitalRead:
etatbouton = digitalRead(bouton);

http://www.edurobot.ch - 2012

67

Diduino Arduino
Il ne nous reste plus qu appeler ltat du bouton, stock dans la variable etatbouton, et lui faire passer un petit test avec if... else (si... sinon): Si (if) ltat du bouton est LOW (cest--dire = 0), alors la LED est LOW (teinte). Sinon (else), la LED est HIGH (en effet, si ltat du bouton nest pas LOW, il ne peut tre que HIGH, soit allume...) Et cela donne donc ceci:
if(etatbouton == LOW) //teste si le bouton a un niveau logique BAS { digitalWrite(led,LOW); //la LED reste teinte } else //teste si le bouton a un niveau logique diffrent de BAS (donc HAUT) { digitalWrite(led,HIGH); //le bouton est appuy, la LED est allume }

Rappelons que linstruction == vrie si deux expressions sont gales.

Petits exercices: bouton poussoir et LED qui clignote


Imaginons maintenant le cas de gure suivant: avec le mme circuit: lorsque nous appuyons sur le bouton, la LED commence clignoter. Modie le programme pour arriver ce rsultat. Tlcharger la rponse: http://www.edurobot.ch/code/code10.txt Et maintenant, modie le programme pour que lorsque nous branchons le Diduino lordinateur la LED sallume, et reste allume. Par contre, quand nous appuyons sur le bouton, la LED clignote. Tlcharger la rponse: http://www.edurobot.ch/code/code11.txt

http://www.edurobot.ch - 2012

68

Diduino Arduino Evaluation: vers linni et au-del!


Bienvenue bord, Astronaute! Lheure est grave! La galaxie est menace par les infmes VoRteX. Pour la sauver, tu dois concevoir un pistolet protoplasmique dodcaneutrino. Voici le montage que tu devras raliser (tu peux carter LEDs pour avoir plus de place):
Gnd

+5V D4 D8 D10 D12

Son fonctionnement est on ne peut plus simple: quand le pistolet protoplasmatique dodcaneutrino est sous tension, une LED verte est allume, pour montrer que tout fonctionne parfaitement. Quand on appuie sur le bouton, La LED verte steint et les LEDs rouges et bleues se mettent clignoter alternativement, gnrant un plasma positronique.

Les objectifs

Objectifs de la discipline AC&M A 33 AC&M Exercer diverses techniques plastiques et artisanales


en matrisant des habilets de motricit globale et ne (souplesse, prcision, coordination, rapidit du geste,) en choisissant et utilisant divers outils et matriaux en fonction d'un projet en matrisant des gestes artisanaux spciques, en exerant la prcision en utilisant des techniques numriques

http://www.edurobot.ch - 2012

69

Diduino Arduino
Objectifs de la discipline MSN MSN 35 Modliser des phnomnes naturels, techniques, sociaux ou des situations mathmatiques
en mobilisant des reprsentations graphiques (codes, schmas, tableaux, graphiques,) en associant aux grandeurs observables des paramtres en triant, organisant et interprtant des donnes en communiquant ses rsultats et en prsentant des modlisations

MSN 36 Analyser des phnomnes naturels et des technologies l'aide de dmarches caractristiques des sciences exprimentales
en formulant des hypothses en confrontant les hypothses mises des rsultats exprimentaux en dnissant des stratgies d'exploration et d'exprimentation en lien avec les hypothses mises en proposant des explications et en les confrontant celles de ses pairs et aux informations de mdias varis

Si applicable: Objectifs de la discipline MEP MEP 34 Dvelopper des sujets, des projets favorisant une ouverture sur les sciences du pass, actuelles et du futur...
Familiarisation avec des faons de faire et de raisonner propres la logique robotique, notamment en: identiant les objectifs dune activit ainsi que les notions thoriques et pratiques qui en rsultent planiant, construisant et programmant le robot en fonction des observations et des mesures effectues testant le robot an didentier dventuelles erreurs de conception et en mettant en place des stratgies de remdiation Initiation l'utilisation d'outils et de procds simples an de faire fonctionner un robot de manire autonome

Llve est capable de: Raliser un montage laide dun bouton poussoir, de LEDs et dune rsistance pull down. Dutiliser lArduino de manire sre De programmer correctement lArduino, pour lui faire excuter la tche demande

http://www.edurobot.ch - 2012

70

Diduino Arduino
Etape 1: les schmas
Commence par raliser le schma lectronique:

3V3 5V Power RST AREF IO REF N/C

Vin

D13 D12 D11


PWM PWM PWM

Arduino
Digital Input/Output

D10 D9 D8 D7 D6 D5 D4 D3

PWM PWM

A0 A1

PWM

Analog Input
GND

A2 A3 A4 A5

D2 D1 D0 SCL SDA
TX RX

Sur ton schma, entoure en rouge la rsistance pull down. A quoi sert-elle?!_________________________________________________________ Observe la vido suivante: http://00.lc/d2 Liste la ou les pattes qui sont programmes en INPUT et celles qui le sont en OUTPUT: INPUT OUTPUT

http://www.edurobot.ch - 2012

71

Diduino Arduino
tape2: Programme
Rdige ton programme ici:

Tu peux naturellement aussi limprimer et le joindre ton valuation.


http://www.edurobot.ch - 2012 72

Diduino Arduino

Leon 7: le barregraphe
Introduction
Un barregraphe est un afcheur qui indique une quantit, provenant d'une information quelconque (niveau d'eau, puissance sonore, etc.), sous une forme lumineuse. Le plus souvent, on utilise des LEDs alignes en guise d'afchage.

Lobjectif de cet exercice est de raliser un barregraphe de 4 LEDs, avec deux boutons poussoirs. Lun deux servira incrmenter la valeur sur le barregraphe ( savoir augmenter le nombre de LEDs allumes), alors que lautre servira le dcrmenter.

Schmas
Voici le schma du circuit construire:
5V

Arduino1

3V3 5V Power RST AREF

Vin
4 LEDs choix

D13 D12

Arduino
Digital Input/Output

D11 D10 D9 D8

PWM PWM PWM

R1 220 R2 220 R3 220 R4 220

5V

D7 D6 D5 D4
PWM PWM
Rsistances de protection

A0 A1

R7 100
PWM

Analog Input
GND

A2 A3 A4 A5

D3 D2 D1 D0

TX RX

R8 100

R5 10k

R6 10k

Rsistances pull-down

http://www.edurobot.ch - 2012

73

Diduino Arduino

Normalement, ce stade, nous devrions tre capable dexcuter le montage laide du schma lectronique! Dans le cas contraire, voici le montage raliser:

+5V

Gnd

+5V

Il ne faut pas hsiter carter un peu plus les LEDs si ncessaire! Le code complet est ici: http://www.edurobot.ch/code/code13.txt

http://www.edurobot.ch - 2012

D0 D1 D2 D3 D4 D5 D6 D7

D8 D9 D10 D11

74

Diduino Arduino
Analysons le code, maintenant: En se rfrant au schma de montage, on dclare les constantes pour chaque patte: les boutons poussoirs sont connects sur les pattes 2 et 3, alors que les LEDs sont connectes aux pattes 8 11.
/* Dclaration des constantes pour les noms des pattes */ const int allums const int allums const int const int const int const int btn_minus = 2; btn_plus = 3; led_0 led_1 led_2 led_3 = = = = 8; 9; 10; 11; //Bouton 1 pour dcrmenter le nombre de LEDs //Bouton 2 pour incrmenter le nombre de LEDs //Led //Led //Led //Led 0 1 2 3

On cr ensuite les variables ncessaires et les initialise leur tat.


/* Dclaration des variables utilises pour le comptage et le dcomptage */ int nombre_led = 0; //le nombre qui sera incrment et dcrment int etat_bouton; //lecture de l'tat des boutons (un seul la fois mais une variable suffit; en effet, il n'est pas prvu d'appuyer sur les deux boutons simultanment) int memoire_plus = HIGH; //tat relch par dfaut pour le bouton 2 int memoire_minus = HIGH; //tat relch par dfaut pour le bouton 1

On initilaise ensuite les pattes, selon quil sagit des entres (les boutons) ou des sorties (les LEDs).
/* Initilisation des pattes en entre/sortie: entres pour les boutons, sorties pour les LEDs */ void setup() { pinMode(btn_plus, INPUT); pinMode(btn_minus, INPUT); pinMode(led_0, OUTPUT); pinMode(led_1, OUTPUT); pinMode(led_2, OUTPUT); pinMode(led_3, OUTPUT); } http://www.edurobot.ch - 2012 75

Diduino Arduino

Allons-y pour la partie du programme dans la boucle sans n (loop) On utilise digitalRead pour lire ltat du bouton (btn_plus) et inscrire cet tat dans la variable etat_bouton.
void loop() { //lecture de l'tat du bouton d'incrmentation (on lit l'tat du btn_plus et on l'inscrit dans la variable etat_bouton) etat_bouton = digitalRead(btn_plus);

Maintenant, a devient srieux. Regardons ce qui suit:


//Si le bouton a un tat diffrent que celui enregistr ET que cet tat est "appuy" if((etat_bouton != memoire_plus) && (etat_bouton == LOW))

Traduisons cela en franais: si ltat du bouton 2 est diffrent de celui enregistr, et que quelquun appuye sur le bouton, alors... Le != signie est diffrent de (teste la diffrence entre deux variables) et loprateur logique && signie ET ( Pour tre prcis, nous avons: si ... et... avec le if ... &&... Exemple: si il fait beau et chaud, alors on va la plage). Rappelons-nous maintenant de lopration ++, qui incrmente une variable (variable = variable + 1, cest--dire; on ajoute chaque fois 1 la variable). Dans notre cas, il sagit de la valeur de la variable nombre_led quon incrmente.
{ nombre_led++; //on incrmente la variable qui indique combien de LEDs devrons s'allumer }

Et zou! On enregistre le nouvel tat du bouton pour la suite!


memoire_plus = etat_bouton; //on enregistre l'tat du bouton pour le tour suivant

Maintenant, on recommence le tout, mais pour le bouton 1.


//et maintenant pareil pour le bouton qui dcrmente etat_bouton = digitalRead(btn_minus); //lecture de son tat //Si le bouton a un tat diffrent que celui enregistr ET que cet tat est "appuy" http://www.edurobot.ch - 2012 76

Diduino Arduino
if((etat_bouton != memoire_minus) && (etat_bouton == LOW)) { nombre_led--; //on dcrmente la valeur de nombre_led } memoire_minus = etat_bouton; //on enregistre l'tat du bouton pour le tour suivant

Nous allons maintenant limiter le nombre de LEDs connecter. En effet, dans notre cas, nous avons 4 LEDs. Alors si on appuie 10 fois sur le bouton 2, cela nallumera que les 4 LEDs.
//on applique des limites au nombre pour ne pas dpasser 4 ou 0 (puisqu'on a 4 LEDs) if(nombre_led > 4) { nombre_led = 4; }

Traduisons: si on appuie plus de 4 fois sur le bouton, le rsultat sera gal 4 Mme chose maintenant pour le bouton 1.
if(nombre_led < 0) { nombre_led = 0; }

Maintenant, nous devons grer lallumage des LEDs. Pour cela, on va crer une fonction dafchage appelle afche, avec une variable int valeur_recue.
//On cr une fonction affiche() pour l'affichage du rsultat //on lui envoie alors en paramtre la valeur du nombre de LED clairer affiche(nombre_led); } void affiche(int valeur_recue)

On commence dabord par teindre toutes les LEDs.


{ //on teint toutes les leds digitalWrite(led_0, HIGH); digitalWrite(led_1, HIGH); digitalWrite(led_2, HIGH); digitalWrite(led_3, HIGH);

http://www.edurobot.ch - 2012

77

Diduino Arduino
Si la fonction reoit le nombre 1, on allume la LED 1. Si elle reoit le nombre 2, elle allume la LED 1 et 2. Si elle reoit 3, elle allume la LED 1, 2 et 3. Enn, si elle reoit 4, alors elle allume toutes les LEDs:
//Puis on les allume une une if(valeur_recue >= 1) // "si la valeur reue est plus grande ou gale 1..." { digitalWrite(led_0, LOW); // "on allume la LED 0 } if(valeur_recue >= 2) // "si la valeur reue est plus grande ou gale 2..." { digitalWrite(led_1, LOW); // "on allume la LED 1 (sous-entendu que la LED 0 est allume, puisque la valeur est plus grande que 1) } if(valeur_recue >= 3) // "si la valeur reue est plus grande ou gale 3..." { digitalWrite(led_2, LOW); // "on allume la LED 2 } if(valeur_recue >= 4) // "si la valeur reue est plus grande ou gale 4..." { digitalWrite(led_3, LOW); // "on allume la LED 3 } }

! Le symbole >= signife: ...est suprieur ou gal .... Il sagit de tester la supriorit ou l'galit d'une variable par rapport une valeur. Ainsi, dans:
if(valeur_recue >= 4) { digitalWrite(led_3, LOW); }

// "on allume la LED 3

Il faut lire: si la variable valeur_recue est suprieure ou gale 4, alors on allume la LED 3.

http://www.edurobot.ch - 2012

78

Vous aimerez peut-être aussi