Pour commencer cette prise en mains, faisons clignoter une LED.
Le logiciel Arduino est installé avec un grand nombre d’exemples, utilisons le sketch Exemples/01.Basics/Blink, le code suivant est automatiquement proposé :
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
Résumons en français ce qui se passe :
- setup est exécutée une seule fois lors de la mise sous tension de l’Arduino, si on presse le bouton reset, ou lorsque l’on reprogramme le circuit
- pinMode permet de définir comment une pin digitale est utilisée, ici c’est la LED intégrée au module (LED_BUILTIN) qui est utilisée.
- loop est appelée à intervalles réguliers pour exécuter votre programme.
- digitalWrite met la sortie à 0 (LOW) ou 1 (HIGH). La tension correspondant à l’état 1 peut être 5V ou 3.3V selon le type de circuit Arduino. L’état 0 est de 0V.
- delay provoque une pause, le temps est indiqué en millisecondes.
Finalement, ce programme initialise la LED embarquée (LED_BUILTIN), puis l’allume et l’éteint toutes les secondes.
Comment programmer une autre LED ?
On commence par choisir la sortie sur laquelle la LED est connectée, par exemple la pin 10 (notez que la LED intégrée est connectée à la pin 13). Ensuite, on faut réaliser le câblage. Le dessin ci-contre montre comment connecter la LED. Il est nécessaire d’ajouter une résistance, qui permet le limiter le courant électrique qui traverse la diode, la résistance a une valeur de 220 Ohms (voir ce tuto pour comprendre le calcul de la résistance).
Le programme est modifié ainsi :
#define ledPin 10
#define PAUSE 1000
void setup() {
// initialize digital pin ledPin as an output.
pinMode( ledPin , OUTPUT);
}
void loop() {
digitalWrite(ledPin , HIGH);
delay(AUSE);
digitalWrite(ledPin , LOW);
delay (PAUSE);
}
La bonne pratique demande qu’aucune valeur ne soit directement utilisée dans le programme, la numéro de la pin est choisie avec un #define, tout comme la durée de l’attente. Ainsi, si on désire modifier le pin ou la durée, on n’intervient qu’à un seul endroit dans le programme.