logo


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);

Écrire une valeur sur une broche

digitalWrite(pin, value);

Lire une valeur numérique sur une broche

int value = digitalRead(pin);

Lire une valeur analogique

int value = analogRead(pin);

Écrire une valeur analogique (PWM)

analogWrite(pin, value);

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);

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);

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

Serial.println("Entrée dans la boucle");
Serial.print("Valeur : ");
Serial.println(value);

10. Bonnes pratiques

  1. Commentez votre code pour expliquer son fonctionnement.
  2. Évitez les délais longs avec delay() si possible.
  3. Testez étape par étape, surtout dans des projets complexes.
  4. Organisez votre code en fonctions pour plus de lisibilité.

11. Liens utiles