Connectez et programmez les capteurs les plus populaires : température, distance, luminosité et mouvement
Un microcontrôleur seul ne perçoit rien du monde extérieur. Les capteurs sont les « sens » de votre projet : ils convertissent des grandeurs physiques (température, distance, luminosité, accélération…) en signaux électriques que l'Arduino peut lire et traiter. La majorité des projets embarqués intègrent au moins un capteur.
Les capteurs se connectent à l'Arduino de trois façons principales :
analogRead().Wire ou SPI.Le DHT22 (ou son petit frère le DHT11) est l'un des capteurs les plus utilisés avec Arduino. Il mesure la température et l'humidité relative de l'air via un protocole numérique propriétaire à un seul fil de données.
| Spec | DHT11 | DHT22 |
|---|---|---|
| Plage température | 0 à 50°C | -40 à 80°C |
| Précision temp. | ±2°C | ±0.5°C |
| Plage humidité | 20–80% | 0–100% |
| Fréquence de lecture | 1 Hz | 0.5 Hz (2s) |
| Prix | ~1 € | ~3 € |
#include "DHT.h"
#define DHTPIN 2
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
dht.begin();
}
void loop() {
delay(2000); // DHT22 : lecture toutes les 2 secondes min
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
Serial.println("Erreur de lecture DHT !");
return;
}
Serial.print("Température : ");
Serial.print(t);
Serial.print("°C | Humidité : ");
Serial.print(h);
Serial.println("%");
}
N'oubliez pas d'installer la bibliothèque « DHT sensor library » par Adafruit via le gestionnaire de bibliothèques.
Le HC-SR04 mesure la distance à un objet par émission et réception d'ondes ultrasoniques. Sa portée va de 2 cm à 400 cm avec une précision d'environ 3 mm.
Le capteur émet une impulsion ultrasonique (40 kHz) par le transducteur TRIG. L'onde rebondit sur l'objet et est captée par ECHO. Le temps aller-retour permet de calculer la distance : distance = (temps × vitesse du son) / 2.
const int TRIG = 9;
const int ECHO = 10;
void setup() {
Serial.begin(9600);
pinMode(TRIG, OUTPUT);
pinMode(ECHO, INPUT);
}
void loop() {
// Impulsion TRIG de 10 µs
digitalWrite(TRIG, LOW);
delayMicroseconds(2);
digitalWrite(TRIG, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG, LOW);
// Mesure du temps aller-retour
long duree = pulseIn(ECHO, HIGH);
float distance = duree * 0.034 / 2.0; // cm
Serial.print("Distance : ");
Serial.print(distance);
Serial.println(" cm");
delay(200);
}
La LDR (Light Dependent Resistor) ou photorésistance est le capteur analogique le plus simple. Sa résistance diminue quand la luminosité augmente. Couplée à une résistance fixe en diviseur de tension, elle fournit une tension analogique proportionnelle à la lumière ambiante.
void setup() {
Serial.begin(9600);
}
void loop() {
int luminosite = analogRead(A0); // 0 (sombre) à 1023 (très lumineux)
Serial.print("Luminosité : ");
Serial.println(luminosite);
if (luminosite < 300) {
Serial.println("→ Sombre (veilleuse ON)");
} else {
Serial.println("→ Lumineux (veilleuse OFF)");
}
delay(500);
}
Ce capteur est idéal pour une veilleuse automatique, un suivi solaire ou un luxmètre basique.
Le DS18B20 est un capteur de température numérique utilisant le protocole 1-Wire (un seul fil de données). Il est précis (±0.5°C), étanche (version sonde inox) et permet de chaîner plusieurs capteurs sur le même fil.
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 4
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature capteurs(&oneWire);
void setup() {
Serial.begin(9600);
capteurs.begin();
}
void loop() {
capteurs.requestTemperatures();
float temp = capteurs.getTempCByIndex(0);
Serial.print("Température : ");
Serial.print(temp);
Serial.println("°C");
delay(1000);
}
Installez les bibliothèques « OneWire » et « DallasTemperature » via le gestionnaire de bibliothèques.
| Capteur | Mesure | Interface | Prix |
|---|---|---|---|
| DHT11 / DHT22 | Température + humidité | Numérique 1 fil | 1–3 € |
| HC-SR04 | Distance (ultrasons) | Numérique (TRIG/ECHO) | 1 € |
| LDR | Luminosité | Analogique | 0.20 € |
| DS18B20 | Température (étanche) | 1-Wire | 2 € |
| BMP280 / BME280 | Temp + pression (+ humidité) | I2C | 2–4 € |
| MPU6050 | Accéléromètre + gyroscope | I2C | 2 € |
| IR (TCRT5000) | Proximité / suivi de ligne | Analogique / Numérique | 0.50 € |