Le programme

Le programme minimum

Lorsqu’on lance le logiciel Arduino pour la première fois (ou que l’on fait Fichier/Nouveau), le programme suivant apparait :

void setup() { 
   // put your setup code here, to run once: 
} 

void loop() { 
   // put your main code here, to run repeatedly: 
}

 

C’est le plus petit programme que l’on puisse faire avec un Arduino … et il ne sert à RIEN !

Mais il contient les deux fonctions obligatoiressetup()et loop().

 

La fonction d’initialisation setup()

Cette fonction est exécutée une seule fois, à chaque initialisation du microcontrôleur.

void devant setup signifie que cette fonction ne renvoie rien.

 

La fonction de boucle loop()

Aussitôt après la fonction setup(), la fonction loop()est exécutée en boucle : elle se répète à l’infini (jusqu’à la réinitialisation ou la mise hors tension du microcontrôleur).

 

Les commentaires

Afin de rendre le code plus clair, rajouter des explications qui aident à sa lecture (par quelqu’un d’autre ou par soi-même !), on peut (il faut !!) y placer des commentaires :

  • soit après // :
// commentaire sur une seule ligne
  • soit entre /* et */ :
/*
du commentaire
sur plusieurs lignes
*/

 

Structure générale d’un programme

Un programme est composé de 3 parties :

  • partie déclarative :

    • inclusion de fichiers (bibliothèques, …)
    • déclaration des variables globales (accessibles depuis partout dans le programme)
    • déclaration de constantes (comme des variables, mais qui ne peuvent jamais changer)

 

  • partie configuration (fonction setup()) :
    • initialisation de la communication série
    • initialisation des ports numériques en mode « entrée » ou « sortie ».
    • affichage d’informations

 

  • boucle sans fin (fonction loop())

 

Exemple : programme « Knock »

  • Lecture en continu de la valeur d’un port analogique
  • Lorsque cette valeur dépasse un certain seuil, la LED intégrée change d’état et un message est envoyé via le port série

 

const int ledPin = 13;
const int knockSensor = A0;
const int threshold = 100;

int sensorReading = 0;
int ledState = LOW;

void setup() {
  pinMode(ledPin, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  sensorReading = analogRead(knockSensor);

  if (sensorReading >= threshold) {
    ledState = !ledState;
    digitalWrite(ledPin, ledState);
    Serial.println("Knock!");
  }
  delay(100);
}