IPA05 – Arduino debutant: Découverte de la carte et du logiciel.

Principales fonctions de l’arduino à connaitre.

Je vous présenterai ici les principales fonctions qui vous seront indispensables. Celles ci seront regroupées en deux groupes: indispensable au fonctionnement et paramétrage des entrées sorties.

Fonctions indispensables au fonctionnement.

void setup (): Lors du démarrage de votre arduino, cette fonction sera automatiquement lancée pour ce seul cycle. Elle ne sera plus jamais exécutée par la suite (sauf si vous l’éteignez ou effectuez un reset). Elle vous servira à initialiser vos différentes variables telle que le paramétrage des entrées sorties, valeurs initiales…

void loop (): En fonctionnement, et après avoir exécuté une première fois setup, l’arduino n’exécutera que cette fonction en boucle. Celle ci devra donc contenir votre programme principal.

Les commentaires: Les commentaires peuvent se faire de deux façons différentes.

  • // vous permet de mettre tout le reste de la ligne (qui se situe à droite de ces deux anti-slash) en commentaire.
  • /* commentaires */ vous permet de mettre tout ce qui se situe entre ces deux symboles en commentaire. Ça peut être une ligne ou même un paragraphe.

Paramétrage des entrées et sorties.

pinMode(10, INPUT): Configuration de la borne 10 en entrée.

pinMode(11, OUTPUT): Configuration de la borne 11 en sortie.

digitalRead(12): Lit l’entrée de la borne 12 (celle ci doit avoir été préalablement configurée en entrée).

digitalWrite(13, LOW): Ecrit la sortie de la borne 13 à l’état bas, qui correspond à 0 (celle ci doit avoir été préalablement configurée en sortie).

digitalWrite(14, HIGH): Ecrit la sortie de la borne 14 à l’état haut, qui correspond à 1 (celle ci doit avoir été préalablement configurée en sortie).

Premier programme.

Le logiciel propose tout une tapée de programme d’exemple, et nous allons nous baser sur l’un d’eux.

Dans Arduino IDE, Allez dans Fichier -> Exemples -> 02 Digital -> Button.

Je vous mets un lien du programme tel qu’il est au moment où j’écris ce texte. Si dans le futur celui ci disparaîtrai des exemples, vous pouvez le télécharger ici:

https://mega.co.nz/#!8dQ2DZob!_Kbiaf_KhpqNhm_y81weRAdGzBtlV-H5xb__0_ajP7M

Décomposons ce programme.

Une partie « documentation » expliquant les tenants et aboutissants du programme.

Documentation du programme Button

 

  • C’est un paragraphe mit en commentaire (il commence par /* et fini par */) au début du programme.
  • Il commence par le noms du programme.
  • Explique en deux lignes le principe de celui ci. Il est donc dit ici qu’un bouton câblé sur la borne 2 allumera une LED câblée sur la borne 13.
  • Dans « The circuit », explique comment cabler son arduino pour qu’il fonctionne tel que cet exemple est présenté. Donc que la LED devra être cablée entre la borne 13 et la masse. Que le bouton sera entre le +5V et la borne 2. Et qu’une résistance de 10kOhms devra être mit aussi sur la borne 2 (nous reviendrons la dessus plus tard).
  • Ensuite une petite note précise que la plupart des arduinos intègre déjà une LED sur leur carte (mais nous ne sommes pas fainéant et nous en câblerons une nous même.
  • Enfin des renseignements sur l’auteur, la licence, etc…

Initialisation des variables.

Initialisation des variable arduino du programme button

  • Les lignes 3 et 4: Nous initialisons 2 constantes de types Integer.  buttonpin = 2 et  ledpin = 13. Cela veut dire plusieurs choses. La première est que nous donnons des valeurs à ces variables (buttonpin = 2 et  ledpin = 13).Ensuite ce sont des constantes, donc elles ne pourront jamais être modifiées.
    Leurs utilités est simple. Vous aurez peut être remarqué que 2 correspond à la borne du bouton, et 13 à la LED. Et bien grâce à cette initialisation, nous pourrons substituer la commande digitalWrite(13, HIGH) pour mettre à 1 la LED par digitalWrite(ledPin, HIGH); et digitalRead(2) par digitalRead(buttonpin). Ce qui est bien plus parlant et vous simplifiera la vie!
  • Ensuite nous initialisons une variable de type integer à 0, nommée buttonState.

Programmation de Setup.

Programmation de la fonction setup arduino du programme button

  • Nous configurons la borne 13 (ledPin) comme étant une sortie.
  • Puis la borne 2 (buttonPin) comme une entrée.

Programmation de loop.

Programmation de la fonction loop arduino du programme button

 

  • void loop() { :  C’est le début de la fonction que votre arduino exécutera en boucle. Comme toutes les fonctions, celle ci commence par une accolade ouverte et se finie par une accolade fermée (ici celle tout en bas du programme).
  • // read the state… : un commentaire sur une ligne qui explique ce que fait la ligne qui suit.
  • buttonState = digitalRead(buttonPin); : Plusieurs information importante. buttonState est la variable qui a été initialisée dans setup() comme étant un integer. Lors de cet initialisation nous lui avons donné comme valerur de départ 0.
    Suit la fonction digitalRead (buttonPin) qui regarde l’état de la borne buttonPin. S’il y a 5V alors la fonction écriera HIGH dans buttonState et s’il y a 0V, alors elle écriera LOW. Rappelez vous que digitalRead (buttonPin) est strictement la même chose que digitalRead (2).
    Vous l’aurez comprit, cette ligne regarde l’état du bouton câblé sur l’entrée 2.
  • // check…: Encore des commentaires qui expliques les fonctionnement du programme.
  • if (buttonState == HIGH) { : Ici on regarde si l’état de buttonState est égal à HIGH. Si c’est le cas alors le programme éxécutera le code jusque la prochaine accolade fermante. Sinon il sautera la partie à suivre pour continuer après l’accolade fermante.
  • // turn LED on: Commentaire qui explique que la ligne suivante allumera la LED.
  • digitalWrite(ledPin, HIGH); : Ici nous SETTONS la borne ledPin (à qui on a assigné la valeur 13) à l’état haut. En gros nous allumons la LED.
  • } : Accolade fermante du IF, si la condition de ce IF n’était pas vrai, alors le programme reprendrai à cet endroit.
  • else { : Si la condition du IF n’était pas vrai, alors nous exécuterons ce qui suit jusqu’à la prochaine accolade fermante. Mais si la condition du IF était vrai, alors le programme n’exécutera pas ce qui suit et passera directement à l’accolade fermante.
  • // … : Commentaire qui dit que nous éteignons la LED.
  • digitalWrite(ledPin, LOW); : Ici nous RESETTONS la borne ledPin (à qui on a assigné la valeur 13) à l’état bas. En gros nous éteignons la LED.
  • } : Accolade fermante du ELSE, s’il a été sauté, c’est ici que le programme reprend.
  • } : Accolade fermante de la fonction loop(), la boucle principale est finie. Le programme recommence donc a partir de void loop() { …etc

Voila votre premier programme arduino! Maintenant nous allons le transférer dans la bête.

Transfert du programme dans l’arduino.

Le transfert du programme dans l’arduino est, une fois de plus, très simple.

Il vous suffit de raccorder votre arduino à votre PC. Puis dans le logiciel Arduino IDE, allez dans Outils -> Type de carte: puis sélectionnez votre carte.

Dans processeur, renseignez le même numéro que celui écrit sur le processeur de votre carte.

Enfin dans port cochez le port sur lequel est branché votre arduino.

Arduino televersement

Vous pourrez observer en bas à droite que votre carte est inscrite (Duemilanove pour mon cas) ainsi que le port USB sur lequel vore carte est raccordée (COM 5 pour moi).

Ensuite pour transférer votre programme il vous suffit de cliquer sur l’icone Téléverser (une flèche pointant vers la droite, située en dessous de « Fichier », « Edition »).

Et voila votre programme se compilera et se transférera. Lorsque téléversement terminé sera inscrit au dessus de la console, c’est que votre arduino sera prêt à l’emploi.