samedi, février 22

Initiation Ă  Arduino

Introduction

Cette approche a pour but de prĂ©senter et d’initier Ă  l’utilisation d’Arduino. Les cartes Arduino sont conçues pour rĂ©aliser des prototypes et des maquettes de cartes Ă©lectroniques pour l’informatique embarquĂ©e.
Elles permettent un accĂšs simple et peu couteux de plus, elles sont entiĂšrement libres de droit, autant sur l’aspect du code source (Open Source) que sur l’aspect matĂ©riel (Open Hardware). Ainsi, il est possible de refaire sa propre carte Arduino dans le but de l’amĂ©liorer ou d'enlever des fonctionnalitĂ© inutiles au projet.
Le langage Arduino se distingue des langages utilisĂ©s dans l'industrie de l'informatique embarquĂ©e de par sa simplicitĂ©. En effet, beaucoup de librairies et de fonctionnalitĂ©s de base occulte certains aspects afin de gagner en simplicitĂ©. Cela en fait un langage parfait pour rĂ©aliser des prototypes ou des petites applications dans le cadre de hobby, mĂȘme au niveau des radioamateurs.
Les possibilités des cartes Arduino sont énormes, un grand nombre d'application ont déjà été réalisé et testées par bon nombre d'internautes. On retrouve par exemple diverse formes de robot ou des stations météos. D'autres exemples d'applications sont disponibles sur le web aux adresses suivantes : hackaday.com/category/arduino-hacks/
instructables.com/technology/arduino/

Le site référence est sans aucun doute celui de la marque www.arduino.cc

1. Présentation de la carte

Il existe actuellement beaucoup de types de carte, les plus importantes sont : l'Arduino Uno, Arduino Lenardo, Arduino Mega, Arduino Mega ADK, Arduino Due, Arduino Nano, Arduino Mini Pro et Arduino Yun. Nous nous intéresserons à la carte Arduino UNO mais d'abords un tour du propriétaire :

A. La carte est composĂ©e d’un microcontrĂŽleur

Les cartes Arduino font partie de la famille des microcontrĂŽleurs. Les microcontrĂŽleurs (en notation abrĂ©gĂ©e ”c, ou uc ou encore MCU en anglais) sont des composants intĂ©grĂ©s qui contiennent dans un mĂȘme boĂźtier un microprocesseur, de la mĂ©moire, et des pĂ©riphĂ©riques courants, tels que timer, liaison sĂ©rie asynchrone, liaison sĂ©rie synchrone, ports d’entrĂ©e sortie logiques, contrĂŽleur de bus CAN, convertisseur analogique numĂ©rique, etc. On peut comparer un microcontrĂŽleurs Ă  un ordinateur classique, mais avec un systĂšme d’exploitation rĂ©duit et avec une puissance de calcul considĂ©rablement plus faible.
Les microcontrĂŽleurs sont inĂ©vitables dans les domaines de l’informatique embarquĂ©e, de l’automation et de l’informatique industrielle.Ils permettent de rĂ©duire le nombre de composant et de simplifier la crĂ©ation de cartes Ă©lectroniques logiques.

B. CaractĂ©ristiques techniques de l’Arduino UNO

C’est la premiĂšre version stable de carte Arduino. Elle possĂšde toutes les fonctionnalitĂ©s d’un microcontrĂŽleur classique en plus de sa simplification d’utilisation.

arduino-5

Elle utilise une puce ATmega328P [1] cadencĂ©e Ă  16Mhz. Elle possĂšde 32 KB de mĂ©moire flash destinĂ©e Ă  recevoir le programme, 2 KB de SRAM (mĂ©moire vive) et 1 KB d’EEPROM (mĂ©moire morte destinĂ©e aux donnĂ©es). Elle offre 14 pins (broches) d’entrĂ©es/sorties numĂ©riques (donnĂ©es acceptĂ©e 0 ou 1) [2] dont 6 pouvant gĂ©nĂ©rer des PWM (Pulse Width Modulation). Elle permet aussi de mesurer des grandeurs analogiques grĂące Ă  ces 6 entrĂ©es analogiques [3]. Chaque broche est capable de dĂ©livrĂ© un courant de 40 mA pour une tension de 5V.
Cette carte Arduino peut aussi s’alimenter et communiquer avec un ordinateur grñce à son port USB [4]. On peut aussi l’alimenter avec une alimentation comprise entre 7 V et 12 V grñce à son connecteur Power Jack [5]. Son prix mini est  actuellement environ 19.50 € 😉

arduino-6

C. Un atout : les shields

Pour la plupart des projets, il est souvent nĂ©cessaire d’ajouter des fonctionnalitĂ©s aux cartes Arduino. PlutĂŽt que d’ajouter soit mĂȘme des composants extĂ©rieurs (sur une platine d’essai, circuit imprimĂ© etc .) il est possible d’ajouter des shields. Un shield est une carte que l’on connecte directement sur la carte Arduino qui a pour but d’ajouter des composants sur la carte. Ces shield viennent gĂ©nĂ©ralement avec une librairie permettant de les contrĂŽler.

arduino-7
Photo du site randomnerdtutorials.com

On retrouve par exemple, des shields Ethernet, de contrĂŽle de moteur, lecteur de carte SD, etc.
Le principal avantage de ces shields est leurs simplicitĂ© d’utilisation. Il suffit de les emboiter sur la carte Arduino pour les connecter, les circuits Ă©lectronique et les logiciels sont dĂ©jĂ  faits et on peut en empiler plusieurs. C’est un atout majeur pour ces cartes pour pouvoir tester facilement de nouvelles fonctionnalitĂ©s. Cependant il faut bien garder Ă  l’esprit que les shields ont un prix. Suivant les composants qu’ils apportent, leurs prix peuvent aller de 5 Ă  100 € !

Pour faire fonctionner ces cartes nous avons besoin d'un logiciel.

2. Présentation du logiciel

A. IDE Arduino

Un IDE (environnement de dĂ©veloppement) libre et gratuit est distribuĂ© sur le site d’Arduino (compatible Windows, Linux et Mac Ă  l’adresse arduino.cc/en/main/software. D’autres alternatives existent pour dĂ©velopper Arduino (extensions pour CodeBlocks, Visual Studio, Eclipse, XCode, etc.) mais nous n’aborderons ici que l’IDE officiel.

Actuellement c'est la version 1.8.8 qui est utilisée. Une fois téléchargé, vous l'installez et jusqu'ici pas de soucis.
Il vous crée une icÎne sur le bureau, que vous ouvrez ...
L’interface de l’IDE Arduino est plutĂŽt simple, il offre une interface minimale et Ă©purĂ©e pour dĂ©velopper un programme sur les cartes Arduino ou tout autres microcontrĂŽleur. Il est dotĂ© d’un Ă©diteur de code avec coloration syntaxique [1] et d’une barre d’outils rapide [2]. Ce sont les deux Ă©lĂ©ments les plus importants de l’interface, c’est ceux que l’on utilise le plus souvent.
On retrouve aussi une barre de menus [3] plus classique qui est utilisĂ© pour accĂ©der aux fonctions avancĂ©es de l’IDE. Enfin, une console [4] affichant les rĂ©sultats de la compilation du code source, des opĂ©rations sur la carte, c’est le dĂ©bogueur.

arduino-8

B. Langage Arduino

Le langage Arduino est inspirĂ© de plusieurs langages. On retrouve notamment des similaritĂ©s avec le C, le C++, le Java et le Processing. Le langage impose une structure particuliĂšre typique de l’informatique embarquĂ©e. La fonction « setup » contiendra toutes les opĂ©rations nĂ©cessaires Ă  la configuration de la carte (directions des entrĂ©es sorties, dĂ©bits de communications sĂ©rie, etc.).
La fonction « loop » elle, est exĂ©cutĂ©e en boucle aprĂšs l’exĂ©cution de la fonction « setup ». Elle continuera de boucler tant que la carte n’est pas mise hors tension, redĂ©marrĂ©e (par le bouton 'reset'). Cette boucle est absolument nĂ©cessaire sur les microcontrĂŽleurs Ă©tant donnĂ© qu'ils n'ont pas de systĂšme d'exploitation. En effet, si l’on omettait cette boucle, Ă  la fin du code produit, il sera impossible de reprendre la main sur la carte Arduino qui exĂ©cuterait alors du code alĂ©atoire.
Au niveau de la syntaxe, on retrouve des similaritĂ©s avec les langages prĂ©cĂ©demment citĂ©s. La dĂ©claration des variables se fait gĂ©nĂ©ralement dans l’espace global (de façon Ă  partager les variables les plus importantes entre les deux fonctions principales). On retrouve les types de base suivant :

arduino-1

Il existe d’autres types de base mais ils ne sont qu’un alias de ceux citĂ©s prĂ©cĂ©demment, la liste des types est disponible sur la page des rĂ©fĂ©rences du site Arduino arduino.cc/en/Reference/HomePage. La dĂ©claration des variables suit cette syntaxe : (const) ([]) (= valeur);    Voici un exemple :

const int constante = 12 ;
float univers = 42.0 ;
char lettre = 'b';
String chaine = "Hello World " ;
long tableau[12] ;
boolean vrai = true ;

On retrouve les opérateurs les plus courants pour les types de bases. Parmi eux, = (affectation), == (comparaison), != (différence), <, >, <=, >=, && (et logique), || (ou logique), ! (non logique). On retrouve aussi les opérateurs mathématiques (+, -, *, /, %) et les opérateurs logiques bit à bit (^ (XOR), & (et), | (ou), ~(non), << (décalage logique à gauche), >> (décalage logique à droite).

arduino-2

arduino-3

Voici quelques exemples d’utilisation de structure de contrîle.

If ( variable < 2 ){
          switch (variable) {
              case 1 :
doSomething(10) ;
          break ;
          case 0 :
doSomething(1) ;
          default :
doSomething(0) ;
}
} else if ( variable > 4 ) {
             while ( variable != 10 ) {
variable = doSomethingElse(variable-1) ;
}
} else {
           for ( int i = 0 ; i < 10 ; i++ ) {
variable = variable *2 ;
}
}

Les fonctions, les structures et les classes se dĂ©clarent de la mĂȘme façon qu’en C++. Elles se dĂ©clarent sous cette forme :

Structure :
struct <nom>{
<type> <nom du champ> ;
} ;
Fonction :
<type de retour> <nom>(<paramĂštre>) {
<instruction>
}
Classe :
class <nom> {
public :
<attributs et champ publics>
private :
<attributs et champ privés>
protected :
<attribut et champ privés>
} ;

3. Les fonctionnalités de base

A. Les entrées et sorties

Le langage Arduino vient avec un nombre important de fonction de base permettant d’interagir avec son environnement. Les fonctions les plus utilisĂ©e sont les fonctions d’entrĂ©e/sortie. Ce sont elles qui permettent d’envoyer ou de mesurer une tension sur une des broches de la carte.
Dans un premier temps, avant d'effectuer une mesure ou d'envoyer une commande, il est nĂ©cessaire de dĂ©finir la direction des broches utilisĂ©es. Pour cela on fait appel Ă  la fonction 'pinMode' en lui donnant d’une part, la broche concernĂ©e, et d’autre part, la direction, cela se traduit comme ceci :

void setup() {
pinMode(1,OUTPUT) ; // Broche 1 en sortie
pinMode(2,INPUT) ; // Broche 2 en entrée
}

Cette configuration faite, on peut procĂ©der Ă  l’utilisation des broches. Toutes les broches sont capables d’écrire et de lire des donnĂ©es numĂ©riques c'est-Ă -dire des 0 (0V) ou des 1 (5V)). Mais, certaines disposent de fonctionnalitĂ© supplĂ©mentaire.
Tout d’abord, toutes les cartes Arduino possĂšdent des entrĂ©es analogiques. Ce sont les broches A0-A1-A2 etc. Elles permettent de lire des tensions analogiques (comprise entre 0 et 5V) et de le convertir en entier (compris entre 0 et 1023) proportionnellement Ă  la tension mesurĂ©e. Certaines cartes Arduino possĂšdent des sorties analogiques faisant l’opĂ©ration inverse (met une tension sur la broche proportionnellement Ă  l’entier donnĂ©), mais ce n’est pas le cas pour l’Arduino UNO.

arduino-10

Pour pouvoir tout de mĂȘme contrĂŽler des composants autrement qu’en « tout ou rien » il est possible d’utiliser des broches PWM. Ce sont les broches annotĂ©s par un tilde ~ sur la carte.

arduino-9

Les PWM (Pulse Width Modulation) sont utilisĂ©es pour synthĂ©tiser des signaux analogiques en modulant le temps passĂ© Ă  l’état 1 (5V).

arduino-4

En utilisant une frĂ©quence relativement Ă©levĂ©e, les PWM permettent de commander certains composants comme s'il recevait une tension analogique. Cela provient du fait que les composants utilisĂ©s dans l’électronique analogique, ne changent pas d’états instantanĂ©ment. Par exemple, une ampoule Ă  incandescence reste chaude un court instant aprĂšs avoir Ă©tĂ© Ă©teinte. Ce phĂ©nomĂšne est gĂ©nĂ©ralement invisible Ă  l’Ɠil nu. GrĂące Ă  elles, on pourra par exemple faire varier l’intensitĂ© d’une LED. La plupart des cartes Arduino utilisent des PWM cadencĂ©es Ă  490 Hz environ.
Toutes ces fonctionnalitĂ©s sur les broches d’entrĂ©es /sorties sont utilisables par le biais de quatre fonctions :

  • digitalRead (pin) : mesure une donnĂ©e numĂ©rique sur une des broches, la broche en question doit ĂȘtre rĂ©glĂ©e 'en entrĂ©e'
  • digitalWrite (pin, value) : Ă©crit une donnĂ©e numĂ©rique sur une des broches, la broche concernĂ©e doit ĂȘtre rĂ©glĂ©e 'en sortie'. Le paramĂštre 'value' doit ĂȘtre Ă©gal Ă  HIGH (Ă©tat 1 soit 5V) ou LOW(Ă©tat 0 soit 0V)
  • analogRead (pin) : mesure une donnĂ©e analogique sur une des broches (compatible seulement), la broche doit ĂȘtre rĂ©glĂ©e sur 'entrĂ©e'
  • analogWrite (pin, value) : Ă©crit une donnĂ©e sous forme de PWM sur une des broches (compatible uniquement), la broche doit ĂȘtre rĂ©glĂ©e 'en sortie'. Le paramĂštre 'value' doit ĂȘtre compris dans l’intervalle [0;255]

B. La gestion du temps

Pour la plupart des applications de domotique, il est nĂ©cessaire de faire intervenir des intervalles de temps. Par exemple, pour gĂ©rer le temps d’appui sur un bouton ou pour faire une sonnerie qui se rĂ©pĂšte un certains nombre de fois. Le langage Arduino fournis quelques fonctions permettant de gĂ©rer ce temps.

Il est possible d’insĂ©rer une pause dans son programme pendant un instant. Pour cela, on utilise les fonctions « delay » et « delayMicroseconds » qui insĂšre une pause suivant le paramĂštre passĂ© (en milliseconde pour l’un, en microseconde pour l’autre). Cependant ces fonctions bloquent le microcontrĂŽleur, on ne peut alors plus effectuer aucune action.

En plus d’insĂ©rer une pause, il est possible de mesurer le temps. De la mĂȘme maniĂšre que les fonctions de dĂ©lai, on utilise les fonctions « millis et « micros » qui donnent le nombre de milliseconde (respectivement microseconde) depuis le lancement de la carte. Attention, ces fonctions incrĂ©mente une variable (interne). Ces variables se remettent Ă  zĂ©ro une fois le maximum atteint (overflow). La variable utilisĂ©e pour les millisecondes atteint sont maximum au bout de 49 jours et 17 heures et la variable utilisĂ©e pour les microsecondes au bout de 71 minutes et 34 secondes environ. Il faut donc faire attention lors de l’utilisation de ces fonctions pour des utilisations longues durĂ©es.

C. Les interruptions

Il est parfois nĂ©cessaire en informatique embarquĂ©e, d’attendre un Ă©vĂ©nement externe (appui sur un bouton, donnĂ©es d’un capteur, etc.) pour effectuer une action. Pour ce type de problĂšme, on utilise les interruptions. Les interruptions sont des portions de code (fonctions) appelĂ©s lorsque qu’un Ă©vĂ©nement (interne ou externe) survient et a besoin d’ĂȘtre traitĂ© sur le champ.
Il faut cependant faire attention, ce mĂ©canisme interrompt le code exĂ©cutĂ©, il est prioritaire par rapport au reste du code. Vu qu’il est possible de mesurer les Ă©vĂ©nements ponctuellement (via les fonctions d’entrĂ©es/sorties) on utilise gĂ©nĂ©ralement les interruptions pour du code critique (arrĂȘt d’urgence par exemple) ou des Ă©vĂ©nements non-ponctuels (transmissions de donnĂ©es depuis un ordinateur par exemple).

Aussi, le nombre d’interruption externe est limitĂ© Ă  2 sur la plupart des cartes Arduino. Les interruptions sont utilisables sur les broches compatibles seulement (broches 2 et 3 sur l’Arduino UNO). Pour choisir la fonction et la broche utilisĂ©e pour l’interruption, on utilise la fonction « attachInterrupt ». On peut utiliser « detachInterrupt » pour supprimer l’interruption. Il est possible de partir en interruption sur 4 types d’évĂ©nements :

  • LOW : Lorsque la broche est Ă  l’état 0 (0V)
  • RISING : Lorsque la broche passe de l’état 0 (0V) Ă  l’état 1 (5V) (front montant)
  • FALLING : Lorsque la broche passe de l’état 1 (5V) Ă  l’état 0 (0V) (front descendant)
  • CHANGE : Lorsque la broche change d’état (front montant et front descendant)

Voici un exemple d’utilisation :

volatile booleanetat = false;
void appuiBouton() {
etat =!etat; // Changement d’état
}
void setup() {
pinMode(2,INPUT); // Broche 2 en entrée
attachInterrupt(0,appuiBouton,RISING); // On attache à l’interruption 0 (broche 2) la fonction 'appuiBouton' sur un front montant
}

On remarque l’apparition du mot clef volatile avant la dĂ©claration de la variable 'etat'. Ce mot clef est nĂ©cessaire pour toutes les variables qui sont modifiĂ©es dans une interruption. Cela Ă  une incidence sur la maniĂšre dont le compilateur traite l’accĂšs Ă  la variable.

Il est parfois nĂ©cessaire de dĂ©sactiver temporairement les interruptions par exemple lorsque l’on exĂ©cute du code critique (activation d’un moteur, etc.). Deux fonctions permettent de changer l’activation des interruptions interrupts et noInetrrupts pour activer (respectivement dĂ©sactiver) les interruptions.

4. Un peu de pratique ...

A. Hello Led

Nous allons maintenant passer Ă  la pratique. (c'est quand mĂȘme le plus amusant). Pour cette premiĂšre manipulation, il est demandĂ© de faire clignoter une LED de façon rĂ©guliĂšre. Vous pouvez soit utiliser une LED avec une rĂ©sistance en sĂ©rie sur une breadboard. Ou alors, vous pouvez utiliser la LED directement sur l’Arduino (broche 13 sur la carte Arduino UNO). Pour y arriver il faut aller chercher le nom « Blink » dans le programme installĂ© prĂ©cĂ©dement.

arduino-11

Une fois que vous avez cliquĂ© sur « Blink », une nouvelle fenĂȘtre va apparaĂźtre. Elle va contenir le programme « Blink ».

arduino-12

Quelques explications s’imposent

La premiùre chose à faire est d’initialiser la broche LED_BUILTIN en tant que broche de sortie avec la ligne

pinMode(LED_BUILTIN, OUTPUT);

Dans la boucle principale, vous allumez le voyant avec la ligne :

digitalWrite(LED_BUILTIN, HIGH);

Cela fournit 5 volts à l'anode à LED. Cela crée une différence de tension entre les broches de la LED qui s'éclaire. Ensuite, vous l'éteignez avec la ligne :

digitalWrite(LED_BUILTIN, LOW);

Cela ramĂšne la broche LED_BUILTIN Ă  0 volt et Ă©teint le voyant. Entre l'activation et la dĂ©sactivation, vous souhaitez disposer de suffisamment de temps pour permettre Ă  une personne de voir le changement delay() commandes delay() indiquent donc au conseil de ne rien faire pendant 1 000 millisecondes, ou une seconde. Lorsque vous utilisez la commande delay() , rien d’autre ne se produit pendant cette pĂ©riode. Une fois que vous avez compris les exemples de base, consultez d'autres exemples pour savoir comment crĂ©er un dĂ©lai tout en effectuant d’autres tĂąches.

Si vous dĂ©sirez envoyer le programme « Blink » vers la carte et voir ce que vous avez rĂ©alisĂ©, il faut dire au logiciel quel est le type de carte vous avez. C'est assez simple jusqu'ici. Vous sĂ©lectionnez  le nom de votre carte, pour notre exemple il s’agit de la carte « Arduino/Genuino Uno ». Allez dans le menu « outils » puis dans « type de carte » comme sur la capture.

arduino-13

Choisissez maintenant le port de connexion de la carte. Allez dans le menu « Outils » puis « Port ». Là, vous choisissez le port COM de votre ordinateur dédié à votre carte.

arduino-14

À prĂ©sent, il va falloir envoyer le programme dans la carte. Pour ce faire, il suffit de cliquer sur le bouton « TĂ©lĂ©verser », en jaune-orangĂ© sur la capture :

arduino-15

En bas [4] dans la partie affichant les rĂ©sultats de la compilation du code source, vous voyez le texte : « Compilation du croquis » puis « TĂ©lĂ©versement », cela signifie que le logiciel est en train d’envoyer le programme dans la carte. En mĂȘme temps, une barre d'avancement du tĂ©lĂ©chargement (voir flĂšche orange) montre aussi l'avancement de l'opĂ©ration. Une fois terminĂ©, il s'affiche « TĂ©lĂ©versement terminĂ© » et signale ainsi que le programme a bien Ă©tĂ© chargĂ©.

arduino-16a
Et la lumiùre jaillit YESSS 🙂

Si vous souhaitez expĂ©rimenter, essayez de faire ce mĂȘme programme en utilisant la fonction « millis » plutĂŽt que « delay »
arduino-16
arduino-17
arduino-18
arduino-19

5. Quelques librairies

En plus de la simplicitĂ© du langage et des nombreuses fonctionnalitĂ©s qu’offre. L’IDE vient avec un nombre important de librairies Ă©vitant ainsi d’implĂ©menter des fonctions courantes dans l’informatique embarquĂ©e.
Une des librairies les plus utilisĂ©e est celle implĂ©mentant la communication sĂ©rie. La majoritĂ© des cartes Arduino possĂšde un Ă©mulateur de connexion sĂ©rie pour communiquer au travers de l’USB. Ainsi, on peut communiquer avec l’ordinateur sur lequel la carte Arduino est connectĂ©e. Cela permet, par exemple, de dĂ©boguer un programme en affichant la valeur des variablesou simplement afficher la valeur des capteurs.Cette librairie Ă  Ă©tĂ© directement implĂ©mentĂ©e dans le langage Arduino. On peut accĂ©der Ă  la communication sĂ©rie (au travers l’USB) grĂące Ă  l’objet Serial. Une autre librairie existe pour communiquer par liaison sĂ©rie via une des broches de la carte.
Il est parfois nĂ©cessaire de stocker des informations mĂȘme aprĂšs l’arrĂȘt de la carte. Il est possible de stocker une petite quantitĂ© d’information sur la mĂ©moire EEPROM (Electricaly Erasable Programmable Read Only Memory) intĂ©grĂ©e. Une librairie est aussi fournie pour dialoguer avec cette mĂ©moire. Il est possible de lire et d’écrire sur cette mĂ©moire sans rien ajouter sur la carte. Cette mĂ©moire est accessible via l’objet EEPROM et en ajoutant la librairie du mĂȘme nom.
Attention, la mĂ©moire EEPROM Ă  une durĂ©e de vie limitĂ©e (environ 100000 cycles d’écritures). Il faut donc veiller Ă  ne pas Ă©crire rĂ©pĂ©titivement les donnĂ©es.
D’autres alternatives existent pour ajouter de plus grandes quantitĂ©s de mĂ©moires mortes Ă  l’Arduino (carte SD notamment) mais cela demande l’ajout de composants externes.

Pour terminer, il existe aussi des librairies permettant de contrĂŽler des composants externes. Parmi ces librairies, une des plus populaires est celle contrĂŽlant des servomoteurs. Un servomoteur est un composant Ă©lectronique composĂ© d’un moteur et d’une carte d’asservissement. On peut le contrĂŽler en position (c'est-Ă -dire choisir l’angle du moteur) grĂące aux PWM. Une librairie Arduino est implĂ©mentĂ©e pour contrĂŽler simplement ces moteurs : la librairie Servo. Il faut toutes fois faire attention Ă  Ă©viter d’alimenter les servomoteurs directement sur une des broches d’alimentation de la carte. En effet, un servomoteur consomme une quantitĂ© important de courant (suivant le couple exercĂ© par le moteur). Il est donc fortement conseillĂ© de relier les servomoteurs sur des alimentations externes (batteries, piles de 9V, etc.).

Et vous voilĂ  fin prĂȘt pour le monde fabuleux de l’ARDUINO

Avec les remerciements de Julien Lechalupé pour l'inspiration de son cours dont vous pouvez retrouver l'original à cette adresse fablab.univ-tlse3.fr/wiki/images/9/92/Cours_arduino_v0.2.pdf

A propos de l'auteur

Index