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 28 avril 2017 à 19:49, par merck En réponse à : Débuter avec une carte Arduino

    bonjours
    je suis dans l’urgence de réalisée de la connectique pour quelqu’un et je ne connais pas les codes
    marquer sur les cartes en entré et sortie.
    je débute pouvez-vous me renseigner.
    j’espère une réponse de votre part.
    merci beaucoup !

    • Le 6 mai 2017 à 11:25, par Eric P. En réponse à : Débuter avec une carte Arduino

      Bonjour,
      Quelle est la question précise ?
      S’agit-il de réaliser un programme pour une carte Arduino ? S’agit-il de réaliser un câblage entre une carte Arduino et autre chose (vous parlez de "connectique") ?
      Votre message est assez vague et il n’est pas possible de savoir exactement ce que vous demandez.
      Par ailleurs, si vous débutez, est-il raisonnable de s’embarquer dans la réalisation d’un travail pour quelqu’un d’autre ? Il serait plus sage de commencer par vous faire la main sur des projets personnels dont les conséquences resteront limitées.
      Cordialement

    Répondre à ce message

  • Le 7 avril 2011 à 08:16, par gartersnake En réponse à : Erreur avec le code

    Bonjour,
    Le code fourni ne marche pas il refuse plusieurs choses, notamment le nom du servo, je l’ai changé mais il le refuse toujours. Il affiche : " ’Servo’ does not name a type "
    Je n’arrive pas à le corriger.

    • Le 7 avril 2011 à 11:19, par Julien H. En réponse à : Erreur avec le code

      Bonjour,

      Il faut s’assurer de bien avoir la ligne "#include" en début de programme.

    • Le 30 novembre 2012 à 10:37, par ? En réponse à : Jeul

      sur la version 1.0.2, il faut mettre une majuscule à "Servo"...=> #include <Servo.h>

    Répondre à ce message

  • Le 8 janvier 2018 à 15:51, par jeremi En réponse à : Débuter avec une carte Arduino

    comment allumer 2 led simultanément ???

    Répondre à ce message

  • Le 17 janvier 2012 à 21:40, par ? En réponse à : Débuter avec une carte Arduino

    Excusez-moi, mais à peine ais-je lu les premières lignes que je bloque ! Je n’arrive pas à me procurer une carte Arduino Diecimila, je veux bien un lien :)

    • Le 21 janvier 2012 à 15:53, par Julien H. En réponse à : Débuter avec une carte Arduino

      Bonjour,

      Les cartes Arduino s’achètent sur les sites en ligne, voir par exemple la boutique Zartronic (lien ci-dessous).

    Répondre à ce message

  • Le 4 octobre 2017 à 13:46, par Romain C En réponse à : Débuter avec une carte Arduino

    Bonjour,
    Dans le cadre de mon PFE (Projet de Fin d’Etude), Nous devons réaliser une maquette d’ascenseur de 4 étages (échelle 1/10). Mon rôle au sein du groupe est de m’occuper de la partie programmation et des différents composants indispensables : interrupteurs, voyant, capteurs...
    Ce projet comporte donc une bonne cinquantaine d’entrées/sorties.
    Est-ce qu’une carte Arduino peut gérer autant d’entrées et de sorties ?
    Je pense par la suite réaliser la programmation en langage C.
    En complément, auriez-vous quelques conseils ?
    Merci d’avance !

    • Le 8 octobre 2017 à 01:02, par Eric P. En réponse à : Débuter avec une carte Arduino

      Bonjour,
      Une carte Arduino ne comporte pas autant d’entrées/sorties. Pour contourner le problème vous pouvez utiliser un expander I2C, qui est une puce permettant d’adresse 8 ou 16 I/O au travers du bus de communication I2C. Plusieurs composants de ce type peuvent être connectés sur le bus en leur assignant des adresses différentes, ce qui permet de disposer au final d’un nombre d’I/P plus important que celles disponibles directement sur le micro-contrôleur de l’Arduino.
      Il existe plusieurs références de ce type de puce, comme le PCF8574 chez Philips ou le MCP23017 de Microchip par exemple. Une recherche Google sur ces références vous donnera accès à leur documentation et à de nombreux exemples de mise en oeuvre.
      Cordialement

    • Le 23 octobre 2017 à 07:02, par dr_logic En réponse à : Débuter avec une carte Arduino

      Pour ma part, j’opterais plus pour de la logique câblée concernant tous les organes cités : interrupteurs, voyant, capteurs...
      Puis éventuellement l’arduino en supervision & réinitialisation.
      Cordialement,

    • Le 17 décembre 2017 à 22:00, par Eric P. En réponse à : Débuter avec une carte Arduino

      C’est une autre manière de traiter le problème.
      Il est vrai qu’assez souvent on trouve des applications Arduino qui pourraient très bien être réalisées par de la logique câblée. Mais il ne faut pas perdre de vue un certain nombre de raisons qui peuvent justifier l’usage d’un µContrôleur (Arduino ou autre) à la place :

      • les compétences requises ne sont pas les mêmes, la logique câblée relevant du domaine de l’électronique, qui requiert un bagage différent, et nécessite du matériel (pas besoin de souder pour écrire programme sur Arduino ;)
      • il est plus simple de modifier un programme (en cas d’erreur ou pour le faire évoluer) qu’un circuit électronique
      • la solution µC est la plupart du temps plus compacte, tout étant géré par une seule puce
        Cordialement

    Répondre à ce message

  • Le 30 novembre 2017 à 12:17, par Roland En réponse à : Débuter avec une carte Arduino

    salut
    quels sont les news concernant le projet

    Répondre à ce message

  • Le 27 mai 2017 à 18:24, par Taider En réponse à : Débuter avec une carte Arduino

    Bonjour, mon projet PPE consistant à ouvrir une fenetre s’il fait très chaud ou s’il pleut, j’ai utilisé le capteur de température et d’humidité DHT 11. Sur le montage, il y’a l’ecran lcd ainsi que le capteur . je dois y ajotuter le moteur sauf que le capteur et le lcd occupent deja les sorties GND, 5V ET 3,3 volts . Je voudrais donc savoir comment ajouter la carte d’expension Arduino .

    • Le 1er juin 2017 à 15:59, par Eric P. En réponse à : Débuter avec une carte Arduino

      Les cartes d’expansion (aka "shields") reproduisent en général les headers de l’Arduino de manière à ce qu’on puisse toujours accéder aux différents points. Il vous suffit donc d’utiliser les positions similaires sur les headers du shield.
      Cordialement

    Répondre à ce message

  • Le 28 novembre 2016 à 16:39, par Simon F En réponse à : Débuter avec une carte Arduino

    Bonjour,
    dans le cadre de mon TPE, je suis en train de "créer" une prothèse de main.
    J’ai donc imprimer la carcasse de la main (pouvant bouger les doigts et les phalanges) grâce à une imprimante 3D.
    Je voudrais maintenant faire en sorte que, grâce à une télécommande, on puisse faire bouger chaque doigts. J’ai fait quelques recherches et j’ai trouvé un kit arduino ( sur ce lien http://eud.dx.com/product/diy-basic-starter-kit-for-arduino-deep-blue-multicolored-844297567). Je pense que cette carte me permettrai de faire le programme que je veux. Mais il faut bien un moteur pour pouvoir faire bouger les doigts (je pense relier chaque doigts à un fil, lui-même relier au moteur). Est ce que vous pourriez me dire quel genre de moteur il me faut ?
    Merci

    • Le 18 mars 2017 à 14:09, par Eric P. En réponse à : Débuter avec une carte Arduino

      Le plus simple est d’utiliser des servo-moteurs pour modèle radio-commandé. La position de l’axe de sortie se contrôle en envoyant au servo un signal rectangulaire périodique (50Hz en général), dont le créneau dure entre 1 et 2ms, la durée entre ces deux bornes définissant la position entre les deux butées mécaniques du servo.
      Il y a dans les bibliothèques Arduino standard des fonctions permettant de mettre cela en pratique de manière très simple (c’est à dire sans devoir générer soi-même le signal sur les sorties logiques de l’Arduino).
      Cordialement

    Répondre à ce message

  • Le 9 juillet 2013 à 18:46, par Pierre En réponse à : Débuter avec une carte Arduino

    Bonjour.
    Bravo et merci pour votre projet. Je voudrais connecter un afficheur LCD, mais il n’affiche rien... J’ai essayé avec un prg. que je juge bon, j’ai essayé avec des prg. teléchargés , toujours rien....Pourtant le materiel est bon. D’où cela peut-il bien venir ? Merci

    Répondre à ce message

  • Le 21 novembre 2012 à 09:02, par Antonio En réponse à : Débuter avec une carte Arduino

    Bonjour je cherche un programme consistant à ouvrir ou fermer un store grâce à Arduino en pouvant commander ces actions avec une page HTML donc avec des boutons "ouvrir" et "fermer" le store, pouvez vous m’aider svp ??

    • Le 21 novembre 2012 à 23:24, par Julien H. En réponse à : Débuter avec une carte Arduino

      Oui, nous répondrons à tes questions. Quelle est la partie qui te pose problème ? La commande du moteur ou la réalisation du logiciel ?

    • Le 15 décembre 2012 à 14:04, par stan En réponse à : Débuter avec une carte Arduino

      Oui, cela est possible avec une carte ethernet shield ainsi qu’un moteur pas a pas(avec un pont en h) ou un servo moteur.

    • Le 15 décembre 2012 à 19:47, par Julien H. En réponse à : Débuter avec une carte Arduino

      Je dirais plutôt des relais 220V pour activer l’interrupteur de l’installation existante. Ce n’est pas avec un moteur pas à pas ou un servomoteur piloté par Arduino que vous allez monter un store.

      Donc il faut en savoir plus sur les problèmes rencontrés par Antonio.

    • Le 30 décembre 2012 à 18:09, par Julien H. En réponse à : Débuter avec une carte Arduino

      Alors Antonio, où en es-tu avec ton projet de store ? On peut t’aider ?

    • Le 31 janvier 2013 à 11:10, par antonio En réponse à : Débuter avec une carte Arduino

      Desole pour le retard de reponse, je ne suis plus en possession d’un problème, je m’occupe en ce moment de la partie branchement de mon projet. Merci a vous

    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.