Cheat Sheet
Objectifs du Chapitre
Retrouver rapidement la syntaxe d'une instruction sans relire le cours.
Connaître les types disponibles et leur encombrement en mémoire.
Retrouver une fonction de la bibliothèque Arduino et ses paramètres.
Où on va
Cette page ne s'apprend pas, elle se consulte. Les types, les fonctions de la bibliothèque Arduino, la syntaxe des structures de contrôle : garde-la ouverte pendant que tu construis tes montages.
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) ouINPUT(entrée).
Écrire une valeur sur une broche
digitalWrite(pin, value);
value:HIGH(5V) ouLOW(0V).
Lire une valeur numérique sur une broche
int value = digitalRead(pin);
- Retourne
HIGHouLOW.
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
msmillisecondes.
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
valued'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é.