Cours Arduino

Programmation et informatique embarquée

Introduction

Arduino est une plateforme de prototypage électronique open-source incontournable en Sciences de l'Ingénieur. Elle permet de programmer un microcontrôleur pour interagir avec le monde physique : lire des capteurs, piloter des moteurs, afficher des données et communiquer avec un ordinateur.

En SI, l'Arduino est utilisé pour les projets de Première et Terminale, les TP d'informatique embarquée, et la compréhension de la chaîne d'information dans un système pluritechnique.

1. Les Bases de l'Arduino

Une carte Arduino Uno comprend :

Microcontrôleur ATmega328P

Le cerveau de la carte : 16 MHz, 32 Ko de Flash, 2 Ko de RAM. Il exécute votre programme en boucle.

Entrées/Sorties

14 E/S numériques (dont 6 PWM) et 6 entrées analogiques. Elles connectent capteurs et actionneurs.

// Structure de base d'un programme Arduino

void setup() {
  // Exécuté UNE SEULE FOIS au démarrage
  pinMode(13, OUTPUT);  // LED intégrée en sortie
}

void loop() {
  // Exécuté EN BOUCLE indéfiniment
  digitalWrite(13, HIGH);  // Allumer
  delay(1000);             // Attendre 1s
  digitalWrite(13, LOW);   // Éteindre
  delay(1000);
}

2. Capteurs et Actionneurs

En SI, on distingue la chaîne d'information (capteurs → traitement → communication) et la chaîne d'énergie (alimentation → distribution → conversion → transmission).

Capteurs courants

  • Ultrason (HC-SR04) : distance
  • Infrarouge : détection d'obstacles
  • LDR : luminosité
  • DHT11 : température et humidité
  • Encodeur rotatif : position angulaire

Actionneurs courants

  • Servomoteur : position angulaire précise
  • Moteur DC + pont en H : rotation continue
  • LED / Écran LCD : affichage
  • Buzzer : signal sonore
  • Relais : commande de puissance

3. Communication Série

La communication série (UART) permet d'échanger des données entre l'Arduino et un PC ou un autre dispositif. C'est essentiel pour le débogage et la supervision.

void setup() {
  Serial.begin(9600);  // Initialiser à 9600 bauds
}

void loop() {
  int valeur = analogRead(A0);  // Lire capteur
  Serial.print("Capteur: ");
  Serial.println(valeur);       // Envoyer au PC
  delay(500);
}

Protocoles courants en SI : I2C (multi-capteurs sur 2 fils), SPI (haute vitesse), UART (série classique).

4. Projets SI avec Arduino

Station météo connectée

Capteurs DHT11 + BMP280 + écran LCD. Mesure température, humidité et pression atmosphérique.

Robot suiveur de ligne

Capteurs IR + moteurs DC + pont en H. Algorithme PID pour suivre une ligne noire au sol.

Portail automatique

Servomoteur + capteur ultrason + bouton. Ouverture automatique à l'approche, fermeture temporisée.

Régulation de température

Capteur LM35 + ventilateur PWM. Asservissement PID de la température d'une enceinte.

Scientia