Club robotique de Sophia-Antipolis

Accueil > POBOTpedia > Cartes à micro-contrôleurs > Les cartes Arduino > Débuter avec une carte Arduino

Débuter avec une carte Arduino

samedi 11 octobre 2008, par Julien H.

Arduino est une carte programmable open-source devenue un standard de fait pour ses extensions pratiques pour la robotique ludique et les montages électroniques amateurs. C’est simple, c’est pratique et nous sommes là pour vous aider !

La famille Arduino est apparue en 2006 sous forme d’une carte programmable avec un port série. Puis de nouvelles versions sont apparues, toujours aussi simples, avec différents formats : petites, grandes, plus puissantes, plus économiques, avec USB, avec Ethernet, compatible Androïd, etc...

On peut les utiliser pour récupérer les informations de capteurs, pour contrôler des moteurs, pour communiquer avec un ordinateur, avec un téléphone portable, pour envoyer et lire des messages sur Internet, pour éteindre des appareils électriques, pour piloter un robot mobile, pour servir de cerveau à un humanoïde, ou tout simplement pour apprendre l’électronique, et encore bien d’autres usages.

Retrouvez grâce au lexique tous nos articles traitant de la carte Arduino.

Arduino, c’est une grande famille et une solution reconnue avec des publications dédiées.

Différents modèles, une même passion

Présentation

Voici ses caractéristiques principales pour le modèle le plus courant :

 hardware

  • une carte de 5.5 cm sur 7 cm d’une épaisseur de 1.5 cm
  • avec un micro-contrôleur Atmel AVR 8bits
  • des connecteurs pour toutes les entrées et sorties, numériques et/ou analogiques
  • des composants permettant l’utilisation du port USB en programmation et en communication
  • un connecteur USB type B (standard carré)
  • un connecteur d’alimentation (voir plus bas pour les détails)

 software

  • un environnement de programmation unique regroupant éditeur de code, compilation et debug
  • un langage C/C++ avec des simplifications pour les débutants, compatible avec d’autres sources
  • et des bibliothèques de code open source permettant d’étendre les fonctionnalités du micro-contrôleur.

La carte utilisée pour nos premiers tests était la version Diecimila de la famille Arduino : en 2008, elle célébrait la 10 000ème carte vendue. Mais de nombreuses versions sont apparues depuis, et les versions pour bien débuter sont désormais l’Arduino Uno ou un clone DFRduino un peu moins cher.

Pour les applications robotiques, c’est la DFRduino Romeo qui est conseillée grâce à ses contrôleurs de moteur directement sur la carte, sans pour autant perdre la compatibilité avec les shields récents.

Pour la domotique ou les applications gourmandes en capacité et en entrées/sorties, il existe maintenant l’Arduino Mega mais le fonctionnement est identique, hormis la procédure d’installation du pilote.

Pour l’intégration avec un appareil mobile Android, il existe même une version spéciale ADK !

Premiers pas

Installation du logiciel

Téléchargez la dernière version du logiciel Arduino disponible sur http://www.arduino.cc/en/Main/Software. Cette carte fonctionne sur Windows, Macintosh et même Linux en suivant leurs conseils d’installation.

Le programme fait plus de 50 Mo car il contient tous les outils qui permettront de fonctionner sans aucun autre programme !

Selon votre machine, procédez à son installation. Par exemple sous Windows, il suffit de dézipper dans un répertoire de votre disque dur, facile non ?

Dans le répertoire d’installation, lancez le programme arduino (ex : arduino.exe sous Windows). Cette application est basée sur les mêmes principes de simplicité qu’une application de programmation Java appelée "Processing" et qui permet en deux clics de compiler et de lancer le programme développé.

Fenêtre principale Arduino

Ainsi, vous constaterez que l’application est composée uniquement d’une fenêtre d’édition de texte, d’un menu et d’une barre de boutons.

Barre de boutons Arduino

Cette barre de boutons permet de compiler ("Verify" est un résumé), d’arrêter la compilation (car dans le cas de certains programmes complexes, cela peut s’avérer long), de transférer le programme dans la carte Arduino et d’ouvrir une fenêtre spéciale de communication entre l’ordinateur et la carte (aussi appelée "console série"), et bien
sûr d’ouvrir, de sauver et de créer des fichiers.

Connexion

Une fois faite l’acquisition de cette carte, vous pouvez la déballer et commencer à vous en servir en connectant la carte via un cable USB (prise A / prise B). L’alimentation est fournie par l’ordinateur et la carte est reconnue comme
un nouveau port série (COMx où x est un nombre supérieur ou égal à 1, en fonction des équipements du même type qui ont déjà été connecté à votre ordinateur).

Vous voilà prêt à tenter quelques programmes simples : c’est l’objet de notre article sur les premiers codes sous Arduino. Retrouvez d’autres manières de programmer dans la rubrique sur la programmation de l’Arduino.

En savoir plus

Avant d’aller plus loin, vous trouverez ci-dessous des ressources en français sur les cartes Arduino :

Connecter un servomoteur

On va maintenant utiliser la carte Arduino pour piloter la rotation d’un servomoteur. On a déjà présenté sur ce site en
détail le fonctionnement d’un servomoteur et comment le faire tourner. Avec la carte Arduino, on va se simplifier la
vie en utilisant une bibliothèque existante, c’est-à-dire un code qui exécute les commandes de contrôle en offrant
une liste de fonctions simples qui réduisent grandement notre propre code.

On utilise la bibliothèque Servo désormais intégrée en standard. Mise à jour : nous ne mentionnons pas ici l’ajout de la bibliothèque dans un environnement antérieur à Arduino 0018.

Montage

Rien de plus simple, on va relier ensemble le câble de connexion du servo à la carte Arduino. Les connecteurs des servomoteurs étant différents selon les constructeurs, voici la liste de correspondance.

Rôle Masse Tension Signal
Arduino GND 5V DIGITAL 9
type 1 noir rouge blanc
type 2 marron rouge orange

On va connecter selon le choix indiqué ci-dessus le signal de commande du servomoteur à la patte "DIGITAL 9" de la carte Arduino.

Le connecteur d’un servomoteur étant généralement femelle, comme les connecteurs d’E/S [1] de l’Arduino, j’utilise des câbles mâle/mâle bien pratiques que l’on trouve un peu partout sur le Net (voir nos fournisseurs). Vous pouvez aussi utiliser un simple fil de cuivre dénudé aux extrémités.

Le montage Arduino + servo terminé est simple comme vous pouvez le constater :

Connexion d’un servomoteur sur la carte Arduino

Retrouvez un programme d’exemple sur notre initiation à la programmation C++ pour Arduino.

Et avec un peu d’entraînement, voilà ce que vous pourrez programmer :

Pour aller plus loin

On va maintenant chercher à débrancher la carte du PC pour que le programme que vous avez développé s’exécute
dans l’environnement cible (robot, objet intelligent, ...). Il va donc falloir lui fournir une alimentation.

Caractéristiques d’alimentation

Note : ceci est une traduction en français des informations fournies sur le site officiel concernant la carte Arduino Diecimilla avec quelques compléments pour les débutants.

La carte Arduino Diecimila peut être alimentée via le câble USB (voir premiers pas) ou par une alimentation ’externe’
 :

 un adaptateur secteur qui convertit le 220V alternatif qui sort du mur en tension continue, aussi connu comme
bloc d’alim standard tel qu’on en trouve avec une imprimante, un disque dur externe, une perceuse sans fil, etc...)

 une pile ou des accumulateurs rechargables, qui sont une source d’alimentation bien pratique pour un système
mobile (robot, gadget portable).

La source à utiliser doit être sélectionnée sur la carte en utilisant un jumper à deux positions : un cavalier (jumper) à
cheval sur les deux pattes du haut, i.e. vers le connecteur USB type B métallique ou sur les deux du bas vers le
connecteur ’jack’ femelle noir en plastique.

La tension continue en provenance d’une source "externe" peut être connectée sur ce connecteur jack (le pôle + est
au centre) ou pour les batteries (piles, accus), directement sur les pattes (connecteur femelle) GND pour la masse (0
volts) et Vin (voltage in) pour la tension nominale. Un régulateur à faible chute de tension (low dropout ou LDO)
assure la conversion en 5 volts.

Cette tension externe peut être comprise entre 6 et 20 volts (au passage, 6 volts pour en fournir 5, c’est ce qu’on
appel une faible chute de tension). Si la tension d’entrée descend en dessous de 7 volts, la tension de sortie qui
alimente la puce et toute l’électronique "logique" (en gros, toute la carte) va descendre en dessous de 5V et le
comportement de la carte sera instable. A l’inverse, si vous fournissez une trop grosse alimentation (supérieure à
12V), le régulateur de tension va chauffer et peut endommager la carte.

La tension d’alimentation externe recommandée se situe donc entre 7 volts et 12 volts. Respectez ces valeurs

Rappel sur le connecteur de puissance :

  • VIN : la tension d’entrée qui alimente la carte Arduino quand on utilise une source dite "externe" (par opposition
    à l’alimentation par câble USB ou toute source 5V régulée). Cette patte du connecteur femelle est totalement
    équivalente à la tension du connecteur jack femelle en plastique noire, vous pouvez utiliser indépendamment
    l’un ou l’autre. Attention, pas les deux en même temps ! (c’est à dire pas une pile sur Vin et une alimentation
    d’un bloc d’alim sur le jack).
  • 5V : la tension régulée qui alimente le microcontrôleur et l’ensemble des autres composants. Soit c’est la sortie
    du régulateur low-dropout si vous utilisez l’alim externe, soit c’est le même 5V que votre port USB. Ici aussi, pas
    de blague en connectant une deuxième source de 5V s’il y en a déjà une que vous auriez oublié (le câble USB
    avec le connecteur (cavalier, jumper) en position USB.
  • 3V3 : une autre tension régulée, cette fois-ci à 3.3 volts car c’est une tension qu’on retrouve de plus en plus en
    électronique (puces de communication sans fil, certains capteurs, certains circuits intégrés). D’ailleurs pas de
    régulateur low-drop, c’est la puce FTDI qui gère les communications séries/UART/USB sur la carte Arduino qui
    sort cette tension adaptée. Le courant maximum sur ce port est de 50 mA.
  • GND : la masse, car GrouND en anglais.

Intensité

Après avoir parlé des tensions, parlons de courant : l’intensité en sortie des connecteurs de la carte Arduino est
limitée par les possibilités du microcontrôleur. Soit, pour l’ATmega168, une intensité maximale fournie à chaque
patte d’entrée sortie de 40 mA. Lire la suite pour les limites.

En effet, voici des compléments intéressants suite à quelques questions d’un de nos visiteurs :

Quel ampérage il me faut pour l’alimentation ... je suppose que c’est 1 ampère ...

Je vous vois déjà faire le calcul : une vingtaine de pattes à 40 mA, ça fait dans les 800mA.

Et bien non, car il ne faut pas oublier que pour cette famille de microcontrôleurs Atmel AVR (et peut être valable pour les autres familles), chaque port est limité à un courant total de 200 mA, et le microcontrôleur a une limite globale de 400 mA. De plus, un port USB standard (celui du PC où vous brancherez l’Arduino) fournit au maximum 500 mA (voire beaucoup moins pour un ordinateur portable).

Donc une source d’alimentation qui fournit un maximum de 500 mA suffit.

Mais bien sûr qui peut le plus peut le moins, et si le bloc d’alim qu’on vous propose fait moins de 10 euros, alors 1A iront très bien.

Comment est redistribuée l’électricité ? La carte Arduino s’occupe-t-elle elle même de de redistribuer le courant ? Dans le sens où je doit calculer tout ce que je vais mettre dessus ou pas ? LED et servomoteurs

Et bien tout dépend du composant. Dans le cas des servomoteurs, la patte de sortie de l’Arduino va juste piloter (donner les consignes de rotation) à l’électronique interne du servo, tandis que les pattes masse et tension du moteur sont reliées aux pattes du connecteur de puissance, donc avec autant de courant disponible que votre alimentation peut en fournir (500mA dans le cas de l’adaptateur secteur discuté ci-dessus, mais dix fois plus si c’est une pile ou un accu rechargeable). Donc aucun calcul nécessaire.

Dans le cas de la led, c’est différent. Vous n’avez pas à calculer le courant disponible pour le limiter, mais vous devez réaliser une baisse de tension car la LED n’a pas besoin de 5 volts et accepte autant d’intensité que vous lui en donnez, jusqu’à éclater.

Il va donc falloir appliquer une petite loi d’ohm :

U=R*I

où U est la tension aux bornes de la résistance et I l’intensité la traversant. Prenons une diode LED qui a une chute de tension à ses bornes de 1.8 volts pour un courant de 10 mA. La carte Arduino fonctionne en 5 volts, donc

R = (5 - 1.8) / 0.01 = 320 

soit 330 car les valeurs sont normalisées (c’est le même exemple que dans l’article d’Eric sur les premiers pas avec
un micro-contrôleur sans ta mère).

Vérifions la puissance dissipée (une résistance chauffe) :

P = U * I = 3.4*0.010 = 34 mW

largement inférieur au 1/4 de Watt des résistances carbones usuelles.

Portfolio


[1entrées/sorties ou I/O en anglais

Vos commentaires

  • Le 24 janvier 2009 à 16:09, par matthieu En réponse à : Bien tes câbles mâle/mâle

    Bonjour, pas mal tes câbles mâle/mâle , j’ai cherché sur gotronic , mais malheureusement , je n’en ai pas trouvé ...

    Sa serai possible d’avoir un lien vers ces câbles.

    Merci d’avance
    Matthieu

    • Le 24 janvier 2009 à 22:30, par Julien H. En réponse à : Bien tes câbles mâle/mâle

      J’ai acheté ces câbles lors d’une commande aux Etats-Unis (Sparkfun, NKC electronics), mais tu peux commander sur Gotronic des câbles rigides (boite de ponts)

    • Le 30 avril 2012 à 18:13, par bencathy En réponse à : arduino servo gyro

      salut et tout d’abort merci pour cette article vraiment bien fait surtout pour les debutant comme moi !!!
      je voudrai avoir des reseignement pour brancher un ou plusieur servo via un gyroscope et comment programmer l’arduino pour gerer les axes ?
      voila merci encore
      bencathy

    • Le 30 avril 2012 à 18:30, par Julien H. En réponse à : arduino servo gyro

      bonjour,

      nous avons réalisé un montage avec un gyroscope I2C lu par Arduino pour retrouver les angles. Il n’y a plus qu’à brancher les servos ensuite.

      ci-dessous le lien vers l’article

    • Le 20 mai 2012 à 10:17, par ? En réponse à : arduino servo gyro

      Juste, pour dire que à la première ligne
      #include <servo.h>
      s’écrit #include <Servo.h>  !
      sinon bon tuto !
      Buy !

    • Le 20 mai 2012 à 10:55, par Julien H. En réponse à : arduino servo gyro

      On n’a pas compris où se trouvait l’erreur... mais bon, puisque tu écris "buy" au lieu de "bye", on va faire comme si ce n’étais pas très important.

    • Le 20 mars 2014 à 13:16, par Bipbip En réponse à : arduino servo gyro

      Bonjour
      Je dois récupérer la position d’un gyro pour l’envoyer à un servomoteur pour stabiliser un objet dans l’eau.
      La librairie que je dois utiliser pour cela est ITG 3200 mais je ne trouve pas d’info.
      Pouvez-vous m’aider ?
      D’avance merci

    • Le 20 mars 2014 à 21:55, par Eric P. En réponse à : arduino servo gyro

      La documentation trouvée par un simple Google (https://www.sparkfun.com/datasheets/Sensors/Gyro/PS-ITG-3200-00-01.4.pdf) indique qu’il s’agit d’un device I2C. On peut donc en récupérer les diverses mesures par la lecture des registres correspondants (de 29 à 34, selon le tableau de la page 27 du document en question).
      Et pour savoir comment causer à un device I2C, il suffit d’aller jeter un oeil sue la doc de la lib Arduino et d’étudier les divers exemples inclus dans l’IDE.
      Cordialement
      Eric

    • Le 22 mars 2014 à 15:16, par Bipbip En réponse à : arduino servo gyro

      Merci pour votre retour

    • Le 22 mars 2014 à 16:52, par Eric P. En réponse à : arduino servo gyro

      Tenez-nous au courant des suites de votre projet ;)
      Bonne continuation
      Eric

    Répondre à ce message

  • Le 24 février 2014 à 17:09, par mathieu En réponse à : Débuter avec une carte Arduino

    bonjour je souhaiterais avoir un conseil j’ai acheter une carte arduino leonardo avec un écran LCD et un clavier matriciel.
    j’ai fait mes raccordement mais j’ai un souci avec mon programme il ma fiche toujours la même erreur celle-ci :
    Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ) ;

    je voulais savoir quelle étais le problème et comment y remédier

    d’avance merci !

    Répondre à ce message

  • Le 1er mai 2012 à 11:34, par calou En réponse à : Débuter avec une carte Arduino

    bonjour,
    j’ai chargée le programme servomoteur sur la carte arduino, mais il ne se passe rien ?
    pouvez vous me donner des pistes ?

    merci

    Répondre à ce message

  • Le 24 janvier 2012 à 15:54, par Fredba En réponse à : Débuter avec une carte Arduino

    Bonjour, voilà je me suis lancé je viens de commander une carte Arduino uno et un kit V3 !
    Je suis attiré depuis longtemps par la robotique et j’aimerai y intéressé mes fils (13 et 11 ans).
    Je suis preneur de conseils pour grand débutant comme moi et de liens pour des réalisations simples.

    Merci pour votre site !!

    Fredba

    • Le 29 février 2012 à 19:33, par ? En réponse à : Débuter avec une carte Arduino

      Premier problème avec le premier programme de la LED je n’arrive pas le charger dans la carte :
      message d’erreur :
      avrdude : stk500_getsync() : not in sync : resp=0x00
      avrdude : stk500_disable() : protocol error, expect=0x14, resp=0x51

      qq peux m’aider ?

      Merci

    • Le 4 mars 2012 à 10:10, par Julien H. En réponse à : Débuter avec une carte Arduino

      C’est un message d’erreur fréquent : vous avez sélectionné le mauvais type de carte ou le mauvais port COM

    • Le 4 mars 2012 à 11:52, par ? En réponse à : Débuter avec une carte Arduino

      Merci cela fonctionne et as bien amusé mon grand.
      Il ne reste plus qu’a trouver d’autres idées de montages.

    Répondre à ce message

  • Le 21 février 2014 à 09:26, par Maury Maxime En réponse à : Débuter avec une carte Arduino

    Bonjour à tous,
    je suis face à un problème,
    j’ai deux servomoteur et je souhaite les commander à distance via une page html qui sera stocké sur un serveur FTP. J’ai créé ma page web, j’ai positioné des images caractérisant les boutons pour les commander et j’ai mis des liens sous ces images avec la ligne href="."mais je ne sais pas quoi mettre entre les guillements "..........". Pouvais vous m’aider sans pour autant me donner la solution directement.
    Merci à tous :D

    • Le 21 février 2014 à 10:57, par Maxime M. En réponse à : Débuter avec une carte Arduino

      Merci de votre réponse rapide,
      je posséde :
       une carte arduino uno
       une carte arduino eternet shield
       des servomoteurs
       un réseau pour connecter la carte au web.
      Le but serais de piloter les moteurs ( montés sur un chariot mobile ) sans fil via une page html crée précédemment. Le problème qui se pose est que nous sommes limités car le réseau n’est pas libre et il est assez bridé car c’est celui du lycée. J’ai donc créé ma page html et je dois maintenant definir les liens qui feront que quand je cliquerais sur le bouton " tourner à gauche ", le moteur tournera a gauche. Pour cela je voudrais utiliser les commandes arduino mais je ne sais pas du tout comment faire.
      Je suis désolé si c’est trés mal expliqué mais je n’hésiterais pas à reformuler si besoin.
      Merci beaucoup

    • Le 21 février 2014 à 15:16, par Eric P. En réponse à : Débuter avec une carte Arduino

      Le quoi mettre en paramètre de l’attribut href est l’url du service Web qui va prendre en charge la commande. Mais pour cela, encore faut-il qu’il y ait quelque part un serveur HTTP (aka serveur web).

      Ce serveur doit être implémenté sur l’Arduino (à l’aide de la librairie Ethernet fournie avec l’environnement Arduino). Il gèrera les requêtes HTTP envoyée par la page Web et pilotera les servos en conséquence. Google étant votre ami, une petite recherche avec "arduino http server" (il n’y a pas de faute à "server", c’est juste qu’il est préférable de rechercher en Anglais si on veut maximiser les chances de résultats) permettra de savoir.

      Je ne vois par contre pas le rapport du serveur FTP avec tout cela. FTP n’a rien à voir avec des pages HTML ou un serveur Web. Vous pouvez préciser un peu votre configuration ?

      Cordialement

    • Le 23 février 2014 à 16:33, par Julien H. En réponse à : Débuter avec une carte Arduino

      Bonjour,

      Le lien dans la page HTML doit être lié à l’adresse IP de la carte Arduino sur le réseau et lui passer des paramètres que la carte va pouvoir interpréter.

      Vous pouvez suivre ce didacticiel très complet qui explique comment écrire un formulaire et interpréter dans l’Arduino la réponse pour allumer ou éteindre une led (à remplacer ensuite par tourner à gauche ou tourner à droite).

      http://startingelectronics.com/tutorials/arduino/ethernet-shield-web-server-tutorial/

      Cordialement,
      Julien.

    Répondre à ce message

  • Le 4 janvier 2014 à 21:12, par Lalloz.p En réponse à : Débuter avec une carte Arduino

    Bonsoir ,
    Je trouve votre article très intéressant , seulement comment fait-on pour connecter 2 servos a la carte ??
    Merci
    Cordialement
    P.L

    • Le 8 janvier 2014 à 23:08, par Eric P. En réponse à : Débuter avec une carte Arduino

      Les signaux des servos étant généré sur des pins d’I/O standard, il suffit d’en utiliser plusieurs, et d’indiquer le numéro correspondant lorsqu’on instancie les objets Servo.

    Répondre à ce message

  • Le 21 août 2011 à 07:54, par Alban En réponse à : Débuter avec une carte Arduino

    Ok ...Nickel ...tout marche Bien ...
    Juste bien penser a installer driver sous win7 64 bit apres installation du logiciel Arduino et configurer le port com

    Répondre à ce message

  • Le 28 septembre 2010 à 12:25, par christophe En réponse à : Débuter avec une carte Arduino

    merci pour ces information elle m’ont beaucoup servi

    Répondre à ce message

  • Le 27 juin 2010 à 13:23, par tibo En réponse à : Débuter avec une carte Arduino

    Merci pour ton article, il est très clair et m’a permis de comprendre les principes de base. J’ai encore du boulot avant de concevoir un R2D2, mais au moins je sais faire clignoter une LED 😉

    Répondre à ce message

  • Le 11 juin 2010 à 09:39, par wayne En réponse à : Débuter avec une carte Arduino

    Felicitation pour ce tuto.
    Je suis un vrai débutant, étant informaticien, mes bases d’électroniques se limitent à la terminale et encore...
    Là vous mettez tout ce qu’il faut simplement et efficacement.
    Merci encore.
    Je vais enfin commencer en robotique.

    Répondre à ce message

Un message, un commentaire ?

modération a priori

Attention, votre message n’apparaîtra qu’après avoir été relu et approuvé.

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.