section: Arduino
nav_order: 10
title: Cheat Sheet Arduino
topics: Exercices; Arduino; Correction
1. Structure de base
void setup() {
// Code exécuté une seule fois au démarrage
}
void loop() {
// Code exécuté en boucle
}
2. Fonctions de base
Configurer une broche
pinMode(pin, mode);
pin
: Numéro de la broche (ex : 2, 3, 13).
mode
: OUTPUT
(sortie) ou INPUT
(entrée).
Écrire une valeur sur une broche
digitalWrite(pin, value);
value
: HIGH
(5V) ou LOW
(0V).
Lire une valeur numérique sur une broche
int value = digitalRead(pin);
Lire une valeur analogique
int value = analogRead(pin);
- Retourne une valeur entre 0 et 1023.
Écrire une valeur analogique (PWM)
analogWrite(pin, value);
value
: Entre 0 (0%) et 255 (100%) (nécessite une broche PWM).
3. Types de données
Type |
Taille |
Plage |
int |
2 octets |
-32,768 à 32,767 |
float |
4 octets |
±3.4028235E+38 (7 chiffres max) |
boolean |
1 bit |
true ou false |
char |
1 octet |
-128 à 127 (ou un caractère) |
byte |
1 octet |
0 à 255 |
long |
4 octets |
-2,147,483,648 à 2,147,483,647 |
4. Fonctions de contrôle
Delai
delay(ms);
- Pause le programme pendant
ms
millisecondes.
Delai sans bloquer
unsigned long previousMillis = 0;
void loop() {
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
// Action à réaliser
}
}
Boucles
for (int i = 0; i < 10; i++) {
// Répéter 10 fois
}
while (condition) {
// Répéter tant que la condition est vraie
}
Conditions
if (condition) {
// Exécuter si condition vraie
} else {
// Sinon
}
switch (variable) {
case valeur1:
// Code
break;
case valeur2:
// Code
break;
default:
// Code par défaut
}
5. Fonctions utiles
Générer un nombre aléatoire
randomSeed(analogRead(A0)); // Initialisation
int r = random(min, max); // Min inclus, max exclu
Mapper une valeur
long mappedValue = map(value, fromLow, fromHigh, toLow, toHigh);
- Convertit
value
d'une plage [fromLow, fromHigh] à [toLow, toHigh].
Conversion analogique-numérique
int digitalValue = (analogValue > seuil) ? HIGH : LOW;
6. Entrées et sorties
Bouton poussoir
const int buttonPin = 2;
int buttonState;
void setup() {
pinMode(buttonPin, INPUT);
}
void loop() {
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH) {
// Action si bouton pressé
}
}
PWM pour LED
const int ledPin = 9;
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
for (int brightness = 0; brightness <= 255; brightness++) {
analogWrite(ledPin, brightness); // Augmente la luminosité
delay(10);
}
for (int brightness = 255; brightness >= 0; brightness--) {
analogWrite(ledPin, brightness); // Diminue la luminosité
delay(10);
}
}
7. Communication série
Initialisation
Serial.begin(9600); // Démarre la communication à 9600 bauds
Envoyer des données
Serial.print("Message"); // Affiche sans saut de ligne
Serial.println("Message"); // Affiche avec saut de ligne
Lire des données
if (Serial.available() > 0) {
int data = Serial.read(); // Lit un caractère
}
8. Capteurs
Capteur de température LM35
const int tempPin = A0;
void setup() {
Serial.begin(9600);
}
void loop() {
int value = analogRead(tempPin);
float voltage = value * (5.0 / 1023.0); // Conversion en tension
float temperature = voltage * 100.0; // Conversion en °C
Serial.println(temperature);
delay(1000);
}
Capteur ultrason HC-SR04
const int trigPin = 9;
const int echoPin = 10;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
Serial.begin(9600);
}
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
long duration = pulseIn(echoPin, HIGH);
float distance = (duration * 0.034) / 2; // Distance en cm
Serial.println(distance);
delay(500);
}
9. Débogage
- Ajoutez des messages pour vérifier les étapes :
Serial.println("Entrée dans la boucle");
Serial.print("Valeur : ");
Serial.println(value);
10. Bonnes pratiques
- Commentez votre code pour expliquer son fonctionnement.
- Évitez les délais longs avec
delay()
si possible.
- Testez étape par étape, surtout dans des projets complexes.
- Organisez votre code en fonctions pour plus de lisibilité.
11. Liens utiles