Club robotique de Sophia-Antipolis

Accueil > POBOTpedia > Programmation > Apprendre à coder > Programmation Arduino > Premiers programmes sur Arduino

Premiers programmes sur Arduino

dimanche 30 décembre 2012, par Julien H.

Nous vous présentons différents codes sources pour votre nouvelle carte Arduino.

Pour pouvoir les utiliser, il faut avoir installé l’environnement de développement Arduino ou bien utiliser un outil de compilation en ligne de commande.

Faire clignoter une led

Le but de l’exercice est d’écrire un premier programme, le transférer dans la carte et de l’exécuter. Le cahier des charges est de faire s’allumer une lumière (LED) présente directement sur la carte.

Pour réaliser cet exercice pratique, il vous suffit d’avoir :
 une carte Arduino Uno
 un câble USB
 un ordinateur

La carte Arduino possède une led (lumière) sur la patte numérique 13. Il n’ y a pas besoin de résistance pour réduire la tension passant dans la led, car elle est déjà présente : ce code pourra vous resservir dans tous vos programmes pour visualiser le passage du code dans un endroit particulier, en faisant clignoter la led un certain nombre de fois.

Voici le code :

int ledPin = 13;                

// initialisation
void setup()
{
  // patte en sortie
  pinMode(ledPin, OUTPUT);
}

// boucle sans fin
void loop()
{
  // on allume la led
  digitalWrite(ledPin, HIGH);
  // on attends une seconde
  delay(1000);        
  // on éteint la led
  digitalWrite(ledPin, LOW);
  // on attends une seconde
  delay(1000);
  // et on recommence (ne jamais oublier la dernière attente)
}

Dialoguer avec la carte

Le but est d’envoyer des commandes (un caractère) à la carte Arduino. On va donc utiliser une communication série, en utilisant les fonctions "Serial" du langage Arduino.

Ecrivez le code suivant :

void setup()
{
  Serial.begin(9600);
}

void loop()
{
  while (Serial.available())
  {
    char key = Serial.read();
    switch (key)
    {
    default:
      Serial.print("commande ");
      Serial.print(key);
      Serial.println(" non reconnue.");
      break;
    }
  } 
}

Compilez (CTRL+R pour aller vite) et chargez dans la carte. L’environnement Arduino propose une console "terminal série" (dernier bouton de la ligne, "Serial Monitor"), cliquez sur l’icone, sélectionnez la bonne vitesse (9600 dans l’exemple ci-dessus) et saisissez des caractères au clavier dans le champ de saisie à droite du sélecteur de vitesse, puis faites "entrer" au clavier ou cliquez sur le bouton "send" : la carte réagit.

Il suffit ensuite d’écrire des cas différents selon ce que vous voulez associer comme commande :

    switch (key)
    {
    case 'l':
      analogOutput(200);
      break;
    case 'r':
      analogOutput(5);
      break;
    default:
      Serial.print("commande ");
      Serial.print(key);
      Serial.println(" non reconnue.");
      break;
    }

Attention, n’oubliez pas l’instruction "break" qui sert à sortir du "switch", sinon vous enchaîneriez les différents cas (c’est parfois utile quand on veut écrire une séquence d’actions et pouvoir y entrer à n’importe quelle étape).

Contrôle d’un servomoteur

Cet exemple nécessite de connecter un servo de modélisme comme décrit dans cet article d’introduction à la carte Arduino.

Voici le code pour la carte Arduino :

#include <Servo.h>

#define INCR  1

// on déclare le servomoteur comme une variable typée
Servo servo1;

// l'angle actuel du servomoteur
int angle = 0;
// le sens actuel du servomoteur
int sens = 0;

/**
 * Initialisation du programme
 */
void setup()
{
  servo1.attach(9); // le servomoteur est sur une patte PWM
}

/**
 * Boucle infinie qui va gérer la rotation et faire alterner le sens de rotation 
 */
void loop()
{
    // faire tourner le servomoteur
    if (sens == 0)
    {
      angle += INCR;
    } 
    else {
      angle -= INCR;
    }
    // si on est arrivé à une extremité
    if (angle == 0)
    {
      sens = 0;
    } 
    if (angle == 180) {
      sens = 1;
    }
    delay(10);
    servo1.write(angle);
}

(note : ne tenez pas compte de la dernière ligne, c’est un bug de la mise en couleur du code)

Compilez (touche triangulaire à gauche de la barre de menu) et chargez dans la carte (seconde icône de la barre de menu sur la dernière version du logiciel).

Si vous avez cette erreur à la compilation, c’est que vous avez une version trop ancienne de l’environnement et que vous n’avez pas installé la bibliothèque "Servo" :

Il faut mettre à jour votre environnement vers une version plus récente qui intègre la bibliothèque Servo.

Vos commentaires

  • Le 12 octobre 2016 à 17:33, par paul duchot En réponse à : Premiers programmes sur Arduino

    merci beaucoup mais manque d’explications pour les different types de variables que tu as utilisé mais sinon tres bon travail !
    ( paul duchot chef d’entreprise )

    • Le 16 octobre 2016 à 16:13, par Eric P. En réponse à : Premiers programmes sur Arduino

      Quelles explications vous manquent ? Si plus d’info, nous pourrons mettre à jour l’article en conséquence.

    • Le 26 mars 2017 à 16:31, par Inconnu En réponse à : Premiers programmes sur Arduino

      Bonjours, pour moi il manque juste les explications de branchement. Mais sinon c’est super.

    • Le 12 avril 2017 à 12:10, par Eric P. En réponse à : Premiers programmes sur Arduino

      Pour l’exemple de la LED il n’y a aucun branchement à faire car elle est déjà sur la carte Arduino. Quant à l’exemple sur le servo, l’article pointé inclut même des photos.
      Quelles informations vous manquent encore ?

    Répondre à ce message

  • Le 9 janvier 2017 à 18:55, par Gaucher En réponse à : Premiers programmes sur Arduino

    Bonsoir,
    Je fais du train miniature et j’aimerais me servir de votre système avec un servomoteur pour mes barrières de passage à niveau.
    Mais mon soucis se serait d’arrêter mes barrières en position basse quelque temps (le temps que le train passe et après qu’elles se relèvent avez-vous une formule pour ceci merci d’avance pour votre réponse.
    Cordialement.

    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.