Différence entre Raspberry Pi et Arduino : lequel choisir ?
Différence entre Raspberry Pi et Arduino : ordinateur Linux et microcontrôleur comparés (démarrage, consommation, GPIO, analogique, langage, prix) avec code.
La différence entre Raspberry Pi et Arduino tient en une phrase : le Raspberry Pi est un ordinateur de la taille d'une carte bancaire qui fait tourner un système Linux, tandis que l'Arduino est une carte à microcontrôleur qui exécute en boucle le seul programme que tu lui téléverses. Sur un Pi, tu peux brancher clavier, souris et écran, naviguer sur internet, traiter les images d'une caméra en Python ou héberger un petit serveur chez toi. L'Arduino, lui, démarre dès qu'il est alimenté, lit des capteurs à la microseconde près, pilote moteurs et LED sans le moindre à-coup et tient plusieurs jours sur piles.
En bref, le Raspberry Pi est le meilleur choix pour les projets qui demandent une caméra, du traitement d'image, une interface graphique ou des services réseau, tandis que l'Arduino l'emporte dès qu'il faut des capteurs, des moteurs, une temporisation précise et une faible consommation. Dans ce guide, nous comparons les deux plateformes avec de vrais chiffres : temps de démarrage, consommation, GPIO et entrées analogiques, langage de programmation, temps réel et prix. Ensuite, nous te montrons dans un tableau laquelle choisir pour chaque projet, nous te donnons un exemple de code qui fait travailler les deux ensemble via un câble USB et nous expliquons la place du Raspberry Pi Pico qui, malgré son nom, ressemble bien plus à un Arduino.

Qu'est-ce qu'un Raspberry Pi, qu'est-ce qu'un Arduino ?
Le Raspberry Pi est un ordinateur monocarte (SBC) conçu par la Raspberry Pi Foundation au Royaume-Uni. Le Raspberry Pi 5 embarque un processeur Arm Cortex-A76 quadricœur à 2,4 GHz, de 1 à 16 Go de RAM, deux sorties HDMI 4K, de l'USB 3.0, l'Ethernet Gigabit, le Wi-Fi et le Bluetooth. Au lieu d'un disque dur, il utilise une carte microSD (ou un SSD NVMe via une carte d'extension) sur laquelle on installe Raspberry Pi OS, basé sur Debian. Tu as donc devant toi le petit frère, compact et bon marché, de ton ordinateur de bureau ; la seule différence est le connecteur GPIO de 40 broches sur son bord, qui permet de brancher directement LED, boutons et capteurs.
L'Arduino, lui, est une plateforme de microcontrôleurs open source née en Italie. Sa carte la plus répandue, l'Arduino Uno R3, repose sur un ATmega328P 8 bits cadencé à 16 MHz : le processeur, 2 Ko de RAM, 32 Ko de mémoire programme et le convertisseur analogique-numérique sont réunis dans une seule petite puce. Il n'y a ni système d'exploitation, ni système de fichiers, ni sortie vidéo. Le code que tu écris dans l'Arduino IDE sur ton ordinateur est compilé puis stocké dans la mémoire flash de la carte ; à chaque mise sous tension, setup() s'exécute une fois, puis loop() tourne indéfiniment. Pour mieux connaître la plateforme, lis Qu'est-ce qu'Arduino ?.
Réponse rapide : laquelle pour quelle situation ?
| Ta situation | Choix | Pourquoi ? |
|---|---|---|
| Tu débutes en électronique | Arduino Uno | Simple, robuste, directement compatible avec les modules 5 V |
| Caméra, reconnaissance de visages ou d'objets | Raspberry Pi | Puissance de calcul, RAM, OpenCV et prise en charge des caméras |
| Voiture robot, servo, moteur pas à pas | Arduino | Temporisation précise et sans interruption |
| Serveur web, base de données, box domotique | Raspberry Pi | Linux, services réseau, stockage |
| Capteur qui doit tenir des jours sur piles | Arduino ou Pico | Consommation en milliwatts, pas en watts |
| Appareil utilisé avec écran, clavier et souris | Raspberry Pi | Bureau, navigateur, HDMI |
| Apprendre Python et piloter du matériel | Raspberry Pi Pico ou Raspberry Pi | MicroPython ou Python complet |
| Traitement d'image et commande de moteurs ensemble | Raspberry Pi + Arduino | Le Pi décide, l'Arduino exécute |
Tableau comparatif : Raspberry Pi 5, Arduino Uno et Raspberry Pi Pico
| Caractéristique | Raspberry Pi 5 | Arduino Uno R3 | Raspberry Pi Pico |
|---|---|---|---|
| Type | Ordinateur monocarte | Carte à microcontrôleur | Carte à microcontrôleur |
| Processeur | BCM2712, 4 cœurs Cortex-A76, 2,4 GHz | ATmega328P, 8 bits, 16 MHz | RP2040, 2 cœurs Cortex-M0+, 133 MHz |
| RAM | 1, 2, 4, 8 ou 16 Go | 2 Ko | 264 Ko |
| Stockage | Carte microSD ou SSD NVMe | 32 Ko de flash | 2 Mo de flash |
| Système d'exploitation | Raspberry Pi OS (Linux) | Aucun | Aucun |
| Temps de démarrage | Environ 15 à 40 secondes | Moins d'une seconde | Moins d'une seconde |
| Consommation | Environ 3 W au repos, 7 à 8 W en charge | Environ 0,25 W (50 mA) | Environ 0,1 W (20 à 25 mA) |
| Alimentation | USB-C, 5 V 5 A recommandés | USB 5 V ou jack 7 à 12 V | USB 5 V ou 1,8 à 5,5 V sur VSYS |
| Niveau logique | 3,3 V (ne tolère pas le 5 V) | 5 V | 3,3 V (ne tolère pas le 5 V) |
| GPIO | 28 GPIO sur le connecteur 40 broches | 20 (14 numériques + 6 analogiques) | 26 |
| Entrées analogiques (ADC) | Aucune (ADC externe nécessaire) | 6 canaux, 10 bits | 3 canaux, 12 bits |
| PWM matérielle | Sur 4 broches (GPIO 12, 13, 18, 19) | 6 broches | Sur tous les GPIO, 16 canaux |
| Sans fil | Wi-Fi 5 + Bluetooth 5.0 | Aucun | Aucun (Wi-Fi + Bluetooth sur le Pico W) |
| Vidéo et son | 2 × HDMI 4K, 2 connecteurs caméra | Aucun | Aucun |
| Programmation | Python, C/C++, Node.js et presque tous les langages Linux | Arduino C/C++ | MicroPython, SDK C/C++, Arduino |
| Temps réel | Non (ordonnancement Linux) | Oui, à la microseconde | Oui, encore plus précis avec le PIO |
| Coupure de courant brutale | La carte SD peut être corrompue | Aucun problème | Aucun problème |
| Prix catalogue (octobre 2026) | De 45 $ (1 Go) à plus de 300 $ (16 Go) | Original environ 25 à 30 $, clone 5 à 10 $ | 4 $ (Pico W 6 $, Pico 2 5 $) |
Petite remarque sur les prix : comme le coût des puces mémoire LPDDR4 utilisées dans les Raspberry Pi 4 et 5 a flambé sous l'effet de la demande des centres de données d'IA, Raspberry Pi a augmenté ses tarifs plusieurs fois depuis décembre 2025 ; en octobre 2026, le Pi 5 de 2 Go est affiché à 77,50 $. Le Pi Zero 2 W, qui utilise une mémoire plus ancienne, est resté à 15 $. En plus, un Pi a besoin d'une carte microSD, d'une alimentation USB-C de 27 W et idéalement d'un dissipateur, ce qui ajoute encore 20 à 30 $ au total. Un Arduino Uno ou un Pico se contentent d'un câble USB.
La différence fondamentale entre un ordinateur Linux et un microcontrôleur
Sur un Raspberry Pi, le programme Python que tu écris n'est qu'un des centaines de processus que Linux gère en même temps. Le noyau (kernel) attribue tour à tour le processeur à la connexion réseau, à l'affichage, aux périphériques USB, aux services en arrière-plan et à ton programme. C'est une organisation très puissante : tu peux enregistrer des journaux dans des fichiers, faire tourner en même temps un serveur web et un flux vidéo, et modifier ton code en SSH depuis une autre pièce. Sur un Arduino, en revanche, la seule chose qui tourne sur le processeur, c'est ton code. Sans système d'exploitation entre les deux, l'instruction digitalWrite change l'état de la broche en quelques microsecondes, et toujours dans le même délai. Concrètement, cette différence a les conséquences suivantes :
- Multitâche : le Pi fait tourner en même temps un navigateur, un script Python et une base de données ; l'Arduino fonctionne avec une seule loop(), et c'est toi qui organises plusieurs tâches avec millis().
- Stockage : sur un Pi, tu peux conserver des gigaoctets de photos, de journaux et de bases de données ; sur un Uno, ton programme doit tenir dans 32 Ko et tes variables dans 2 Ko de RAM.
- Réseau : le Pi se connecte à internet en Wi-Fi et en Ethernet dès la sortie de la boîte ; l'Uno n'a aucune connexion réseau, il te faut un ESP32 ou un module supplémentaire.
- Maintenance : comme le Pi est un ordinateur, il demande des mises à jour, un mot de passe utilisateur et un minimum de sécurité ; tu téléverses ton code une fois sur l'Arduino et il fonctionne de la même façon pendant des années.
- En cas de problème : si un programme plante sur le Pi, le système reste debout et tu peux lire le message d'erreur ; si le code se bloque sur l'Arduino, la carte s'arrête sans rien dire, mais un chien de garde (watchdog) peut la redémarrer automatiquement.
Temps de démarrage et coupures de courant
Dès que tu alimentes un Arduino, ton programme démarre en moins d'une seconde ; même après un appui sur le bouton reset, le bootloader n'attend qu'un instant. Le Raspberry Pi charge d'abord son bootloader, puis le noyau Linux et les services ; selon le modèle et la vitesse de la carte SD, il lui faut 15 à 40 secondes pour afficher le bureau. Cela compte pour les appareils qui doivent fonctionner tout de suite après une coupure de courant, comme une sonnette, une alarme ou un arrosage automatique. L'extinction est encore plus délicate : Linux écrit en permanence sur la carte SD, et si le courant est coupé au milieu d'une écriture, le système de fichiers peut être corrompu au point que le Pi ne redémarre plus. Comme le programme de l'Arduino reste figé dans la mémoire flash, tu peux le débrancher quand tu veux.
Consommation et fonctionnement sur batterie
Côté consommation, l'écart va de 10 à 30 fois. Un Raspberry Pi 5 consomme environ 3 W au repos et 7 à 8 W processeur à fond, et davantage encore avec un disque USB et une caméra. Un Arduino Uno tire environ 50 mA, soit 0,25 W sous 5 V, et un Pico autour de 0,1 W. Le tableau ci-dessous donne les autonomies approximatives avec une batterie externe de 10 000 mAh. Le calcul est le suivant : les 10 000 mAh de l'étiquette concernent des cellules de 3,7 V, soit environ 37 Wh ; après les pertes de conversion vers 5 V, il reste environ 30 Wh utilisables. Il suffit de diviser cette valeur par la consommation de la carte en watts. Pour ton propre circuit, utilise le calculateur d'autonomie de batterie.
| Carte | Consommation typique | Avec une batterie externe de 10 000 mAh |
|---|---|---|
| Raspberry Pi 5 (au repos) | Environ 3 W | Environ 10 heures |
| Raspberry Pi 5 (pleine charge) | 7 à 8 W | Environ 4 heures |
| Raspberry Pi Zero 2 W | Environ 0,6 W | Environ 2 jours |
| Arduino Uno R3 | Environ 0,25 W | Environ 5 jours |
| Raspberry Pi Pico | Environ 0,1 W | Environ 12 jours (si la batterie ne se coupe pas) |
| Arduino Pro Mini en veille (LED et régulateur retirés) | De l'ordre du microampère | Des mois directement sur piles |
Broches GPIO et entrées analogiques
Le connecteur 40 broches du Raspberry Pi compte 28 GPIO ; GPIO 0 et 1 sont réservées à l'EEPROM d'identification des cartes HAT et ne servent généralement pas. Ces broches fonctionnent en 3,3 V, ne tolèrent pas le 5 V et ne fournissent que quelques milliampères par broche (environ 16 mA au maximum) ; tu peux allumer une LED avec une résistance en série, mais pas piloter directement la bobine d'un relais ou un moteur. Le plus gros manque, c'est l'absence d'entrées analogiques : il n'existe pas d'équivalent à analogRead sur le Pi, donc pour lire un capteur analogique comme un potentiomètre, une photorésistance (LDR) ou un capteur d'humidité du sol, il faut une puce ADC externe. L'Arduino Uno possède 6 entrées analogiques et presque tous les capteurs 5 V s'y branchent directement.
| Sujet | Raspberry Pi | Arduino Uno | Raspberry Pi Pico |
|---|---|---|---|
| Niveau logique | 3,3 V | 5 V | 3,3 V |
| Courant par broche | Quelques mA, environ 16 mA au maximum | 20 mA recommandés, 40 mA maximum absolu | 4 mA par défaut, réglable jusqu'à 12 mA |
| Lecture analogique | Impossible ; MCP3008 ou ADS1115 nécessaire | analogRead(), 0–1023 | ADC(26).read_u16(), 0–65535 |
| PWM | Matérielle sur 4 broches, logicielle ailleurs | analogWrite() sur 6 broches | Matérielle sur toutes les broches |
| Numérotation | Le numéro GPIO diffère de la broche physique (GPIO17 = broche 11) | Numéro imprimé sur la carte | Numéro GP (GP15 = broche 20) |
| Modules 5 V comme le HC-SR04 | Pont diviseur obligatoire | Directement | Pont diviseur obligatoire |
Il y a deux façons de brancher un capteur analogique sur un Pi. La première consiste à utiliser un module ADC comme le MCP3008 8 canaux 10 bits en SPI ou l'ADS1115 4 canaux 16 bits en I2C ; la bibliothèque gpiozero prend en charge le MCP3008 nativement. La seconde consiste à brancher les capteurs sur un Arduino ou un Pico et à envoyer les mesures au Pi par USB ; tu trouveras le code plus bas. Le fonctionnement de la lecture analogique est expliqué dans Qu'est-ce qu'un ADC ?, et les brochages des cartes dans l'outil Pinout.
Langage de programmation et environnement de développement
L'Arduino se programme dans le langage Arduino, basé sur le C/C++ : tu écris le code dans l'Arduino IDE sur ton ordinateur, il est compilé puis téléversé sur la carte par USB. Sur le Raspberry Pi, le code s'écrit et s'exécute directement sur le Pi, sans étape de téléversement. Le langage le plus utilisé est Python, et Raspberry Pi OS est livré avec l'éditeur Thonny et la bibliothèque gpiozero. Tu peux aussi utiliser n'importe quel langage qui tourne sous Linux, comme le C, le C++, Node.js, Go ou Java. Voici à quoi ressemble en Python sur le Pi un programme « la LED s'allume tant que le bouton est appuyé » :
1from gpiozero import LED, Button
2from signal import pause
3
4led = LED(17) # GPIO17 = fiziksel pin 11 / GPIO17 = physical pin 11
5buton = Button(27) # GPIO27 = fiziksel pin 13, dahili pull-up açık / physical pin 13, internal pull-up on
6
7buton.when_pressed = led.on # Basınca LED yanar / LED on when pressed
8buton.when_released = led.off # Bırakınca söner / LED off when released
9
10pause() # Programı açık tut, olayları bekle / keep running and wait for eventsBranche le bouton entre GPIO27 et GND, et la LED sur GPIO17 avec une résistance de 220 Ω ; la classe Button active d'elle-même la résistance de pull-up interne. Enregistre le fichier sous le nom buton_led.py et lance-le en tapant python3 buton_led.py dans le terminal. Attention : sur le Raspberry Pi 5, les GPIO passent par la nouvelle puce RP1, si bien que l'ancienne bibliothèque RPi.GPIO ne fonctionne plus et échoue avec « RuntimeError: Cannot determine SOC peripheral base address » ; utilise gpiozero pour tes nouveaux projets. Si, sur un Raspberry Pi OS récent, pip install renvoie l'erreur « externally-managed-environment », installe le paquet avec sudo apt install python3-... ou crée un environnement virtuel (venv). Sur le Raspberry Pi Pico, tu réutilises les mêmes connaissances Python avec MicroPython.
Temps réel : pourquoi l'Arduino pour les moteurs et les capteurs ?
Comme Linux partage le processeur entre les programmes, ton code Python peut être mis en pause quelques millisecondes de temps en temps, sans que tu puisses prévoir quand. Pour une page web, c'est sans importance, mais pour du matériel qui dépend de la temporisation, c'est un vrai problème. Quelques exemples concrets :
- Capteur de distance HC-SR04 : le son met environ 58 µs pour faire l'aller-retour par centimètre de distance. Si un retard de 100 µs se glisse pendant la mesure de l'écho, le résultat est faux de 1,7 cm ; sur le Pi, ce genre d'écart est fréquent.
- Servomoteur : un servo se positionne grâce à une impulsion de 1 à 2 ms dans un signal à 50 Hz, et 1 degré correspond à environ 5,5 µs. Un servo piloté en PWM logicielle par le Pi tremble ; avec l'Arduino, il reste immobile.
- Ruban LED WS2812B : chaque bit dure 1,25 µs et la temporisation exige une précision de 0,15 µs ; le Pi n'y arrive qu'avec le matériel SPI ou PWM et le DMA, alors que l'Arduino et le Pico le pilotent directement.
- Moteurs pas à pas et encodeurs : des milliers d'impulsions par seconde ou les signaux rapides d'un encodeur sont captés sans en manquer un seul sur l'Arduino grâce aux interruptions.
Quelle carte pour quel projet ?
| Projet | Meilleure carte | Pourquoi ? |
|---|---|---|
| Caméra qui reconnaît visages ou objets | Raspberry Pi 5 | OpenCV, Picamera2, accélérateurs d'IA |
| Caméra de surveillance Wi-Fi, envoi de photos | ESP32-CAM ou Raspberry Pi Zero 2 W | L'ESP32-CAM suffit pour des photos simples, le Pi pour le flux vidéo et l'enregistrement |
| Robot éviteur d'obstacles ou suiveur de ligne | Arduino | Boucle précise et ininterrompue pour capteurs et moteurs |
| Robot qui se dirige grâce à une caméra | Raspberry Pi + Arduino | Le Pi voit et décide, l'Arduino pilote les moteurs |
| Arrosage automatique des plantes | Arduino ou ESP32 | Capteur d'humidité analogique, faible consommation, démarrage immédiat |
| Box domotique (Home Assistant) | Raspberry Pi | Serveur toujours allumé, base de données, interface web |
| Station météo | ESP32 ou Pico W | Wi-Fi et faible consommation réunis |
| Console rétro, lecteur multimédia | Raspberry Pi | HDMI, son, manette USB |
| Enregistreur de données sur piles | Arduino Pro Mini ou Pico | Consommation très faible en veille |
| Cours d'électronique, premiers circuits | Arduino Uno | 5 V, broches robustes, énormément d'exemples |
La caméra et le traitement d'image sont le grand point fort du Raspberry Pi. La Camera Module 3 de 12 Mpx à mise au point automatique se branche sur le connecteur caméra avec une nappe ; tu peux prendre une photo avec rpicam-still -o photo.jpg et, avec les bibliothèques Picamera2 et OpenCV, faire en Python de la détection de mouvement, du suivi de couleur, de la lecture de QR codes ou de la reconnaissance faciale. Pour des modèles d'IA plus lourds, il existe des cartes accélératrices comme l'AI HAT+ ou l'AI Camera, qui traite l'image directement dans la caméra. Les connecteurs caméra du Raspberry Pi 5 sont plus petits (22 broches) que sur les anciens modèles, il faut donc un câble adaptateur pour les anciennes caméras. Les 2 Ko de RAM de l'Arduino Uno, eux, ne suffisent même pas pour une petite photo ; si tu veux seulement prendre des photos et les envoyer sur Telegram, l'ESP32-CAM bon marché est un bon compromis.
Pour les capteurs et les moteurs, en revanche, l'Arduino n'a pratiquement pas de concurrent. Comme il fonctionne en 5 V, la plupart des modules du marché, comme le HC-SR04, les modules relais, le driver de moteurs L298N ou les écrans LCD à caractères, se branchent sans circuit supplémentaire, et les shields moteurs, relais et capteurs s'enfichent directement sur la carte. Dans une voiture robot, l'Arduino lit le capteur de distance des dizaines de fois par seconde et arrête les moteurs dès qu'il voit un obstacle ; ce temps de réaction ne dépend jamais de la charge d'un système d'exploitation. Pour la même raison, les servomoteurs et les moteurs pas à pas tournent parfaitement sur Arduino.




Utiliser les deux ensemble : Raspberry Pi + Arduino
Dans la plupart des projets avancés, la meilleure solution consiste à combiner les deux. Pense au corps humain : le Raspberry Pi est le cerveau ; il traite la caméra, se connecte à internet, enregistre les données et prend les décisions. L'Arduino est la moelle épinière et les muscles ; il lit les capteurs, pilote les moteurs et, en cas d'urgence, réagit par réflexe sans demander l'avis du Pi. Dans une voiture robot avec caméra, par exemple, le Pi repère la ligne dans l'image et envoie la commande « tourne à gauche » ; l'Arduino la traduit en vitesses de moteur et s'arrête de lui-même si un obstacle apparaît. Les façons courantes de relier les deux cartes sont :
| Liaison | Comment ? | Points d'attention |
|---|---|---|
| Série USB (la plus simple) | Branche l'Arduino sur un port USB du Pi ; il apparaît comme /dev/ttyACM0 ou /dev/ttyUSB0 | Le Pi alimente aussi l'Arduino, pas besoin de convertisseur de niveau |
| UART (GPIO 14 et 15) | Pi TX → Arduino RX, Arduino TX → Pi RX, masses communes | Pont diviseur obligatoire pour le signal TX 5 V de l'Arduino |
| I2C | Pi en maître, Arduino en esclave à une adresse comme 0x08 | Convertisseur de niveau recommandé |
| Wi-Fi / MQTT | Un ESP32 envoie ses mesures par le réseau à un broker MQTT sur le Pi | Pas de câble, mais un peu de latence réseau |
- Téléverse sur la carte le code Arduino ci-dessous depuis ton ordinateur (tu peux aussi le faire depuis le Pi avec arduino-cli).
- Relie l'Arduino au Pi avec un câble USB et trouve le nom du port en tapant ls /dev/ttyACM* /dev/ttyUSB* dans le terminal. Un Uno d'origine apparaît généralement comme /dev/ttyACM0, les clones à puce CH340 comme /dev/ttyUSB0.
- Si la bibliothèque pyserial n'est pas installée, installe-la avec sudo apt install python3-serial.
- Si ton utilisateur n'a pas accès au port série, tape sudo usermod -a -G dialout $USER, puis déconnecte-toi et reconnecte-toi.
- Enregistre le code Python sous le nom pi_arduino.py et lance-le avec python3 pi_arduino.py ; si le moniteur série de l'Arduino IDE est ouvert, ferme-le d'abord.
1// Arduino Uno: A0 değerini Pi'ye gönderir, Pi'den gelen komutla LED'i yönetir
2// Arduino Uno: sends the A0 reading to the Pi and drives the LED on the Pi's command
3const int SENSOR_PIN = A0; // LDR ya da potansiyometre / LDR or potentiometer
4const int LED_PIN = 13; // Dahili LED / built-in LED
5unsigned long sonGonderim = 0; // Son gönderim zamanı / time of the last send
6
7void setup() {
8 Serial.begin(115200); // Pi tarafıyla aynı hız / same baud rate as the Pi
9 pinMode(LED_PIN, OUTPUT);
10}
11
12void loop() {
13 // Pi'den komut geldi mi? / has a command arrived from the Pi?
14 if (Serial.available()) {
15 String komut = Serial.readStringUntil('\n'); // Satır sonuna kadar oku / read up to the newline
16 komut.trim(); // Boşluk ve \r karakterlerini sil / strip spaces and \r
17 if (komut == "LED1") digitalWrite(LED_PIN, HIGH);
18 else if (komut == "LED0") digitalWrite(LED_PIN, LOW);
19 }
20
21 // 500 ms'de bir ölçüm gönder, loop'u bekletmeden / send a reading every 500 ms without blocking
22 if (millis() - sonGonderim >= 500) {
23 sonGonderim = millis();
24 int deger = analogRead(SENSOR_PIN); // 0-1023
25 Serial.print("A0:");
26 Serial.println(deger); // Örnek: A0:512 / example: A0:512
27 }
28}1import time
2import serial # sudo apt install python3-serial
3
4# Orijinal Uno: /dev/ttyACM0, CH340'lı klon: /dev/ttyUSB0 / genuine Uno: /dev/ttyACM0, CH340 clone: /dev/ttyUSB0
5ser = serial.Serial("/dev/ttyACM0", 115200, timeout=1)
6time.sleep(2) # Port açılınca Arduino yeniden başlar / opening the port resets the Arduino
7ser.reset_input_buffer() # Eski verileri temizle / drop stale data
8
9ESIK = 300 # Karanlık eşiği, sensörüne göre ayarla / darkness threshold, tune it for your sensor
10led_durum = None
11
12while True:
13 satir = ser.readline().decode("utf-8", errors="ignore").strip()
14 if not satir.startswith("A0:") or not satir[3:].isdigit():
15 continue # Boş ya da yarım satırı atla / skip empty or partial lines
16 deger = int(satir[3:])
17 print("Sensor:", deger)
18
19 yeni = "LED1" if deger < ESIK else "LED0" # Karanlıkta LED'i yak / LED on in the dark
20 if yeni != led_durum: # Yalnız değişince gönder / send only on change
21 ser.write((yeni + "\n").encode())
22 led_durum = yeniToutes les 500 ms, l'Arduino envoie une ligne du type « A0:512 » et écoute les commandes « LED1 » ou « LED0 » terminées par un retour à la ligne ; comme il utilise millis(), l'attente des commandes ne retarde jamais les mesures. Côté Python, la ligne time.sleep(2) est importante : quand le Pi ouvre le port série, l'Arduino redémarre automatiquement et tout ce qui est envoyé pendant les deux premières secondes est perdu. Adapte le seuil de 300 à ton capteur ; selon le sens de branchement de la LDR, la valeur peut monter ou descendre dans l'obscurité. Pour aller plus loin sur la communication série, consulte Communication série entre Arduino et Python et Qu'est-ce que l'UART ?.
La place du Raspberry Pi Pico : Raspberry Pi par le nom, microcontrôleur par nature
C'est la source de confusion la plus fréquente. Bien qu'il soit fabriqué par Raspberry Pi, le Raspberry Pi Pico n'est pas un ordinateur mais une carte à microcontrôleur comme l'Arduino : pas de système d'exploitation, démarrage instantané, environ 0,1 W de consommation et fonctionnement en temps réel. Il est construit autour de la puce double cœur RP2040 conçue par Raspberry Pi elle-même (le Pico 2 utilise le RP2350 à 150 MHz). Par rapport à l'Arduino Uno, il a beaucoup plus de RAM (264 Ko), un ADC 12 bits et des blocs PIO pour les tâches de temporisation, et il se programme en MicroPython, en C/C++ ou avec l'Arduino IDE. À 4 $, il coûte moins cher qu'un Arduino Uno, mais comme il fonctionne en 3,3 V, il faut faire attention aux modules 5 V. Pour en savoir plus, lis Qu'est-ce que le Raspberry Pi Pico ?.

Le plus gros avantage du Pico dans cette comparaison, c'est qu'il fonctionne au même niveau de 3,3 V que le Raspberry Pi : tu peux relier ses broches UART directement au Pi sans convertisseur de niveau, ou le brancher en USB et l'utiliser exactement comme un Arduino. Le code MicroPython ci-dessous envoie des données au même format « A0:valeur » que le code Arduino précédent et écoute les mêmes commandes de LED, si bien que le script Python du Pi fonctionne sans la moindre modification. Enregistre le code sur le Pico sous le nom main.py avec Thonny, puis ferme Thonny pour libérer le port série pour le script du Pi.
1import sys, select, time
2from machine import ADC, Pin
3
4sensor = ADC(26) # GP26 = ADC0 (fiziksel pin 31) / GP26 = ADC0 (physical pin 31)
5led = Pin(25, Pin.OUT) # Pico dahili LED; Pico W'de Pin("LED") / onboard LED; use Pin("LED") on Pico W
6poll = select.poll()
7poll.register(sys.stdin, select.POLLIN) # USB'den gelen veriyi dinle / listen for data over USB
8son = time.ticks_ms()
9
10while True:
11 # Pi'den komut var mı? / is there a command from the Pi?
12 if poll.poll(0):
13 komut = sys.stdin.readline().strip()
14 if komut == "LED1":
15 led.on()
16 elif komut == "LED0":
17 led.off()
18
19 # 500 ms'de bir, Arduino ile aynı biçimde gönder / every 500 ms, same format as the Arduino
20 if time.ticks_diff(time.ticks_ms(), son) >= 500:
21 son = time.ticks_ms()
22 deger = sensor.read_u16() >> 6 # 0-65535 -> 0-1023
23 print("A0:" + str(deger))Les frontières sont d'ailleurs de plus en plus floues. En 2025, Arduino a présenté l'Arduino UNO Q, qui réunit les deux mondes sur une seule carte : cette carte au format Uno associe un processeur Qualcomm quadricœur sous Debian Linux à un microcontrôleur STM32U585 qui exécute les sketches Arduino en temps réel. Autrement dit, l'architecture « Pi + Arduino » tient désormais sur une seule carte. La logique reste pourtant la même : la partie Linux gère le réseau, l'image et l'application, la partie microcontrôleur gère les broches et la temporisation. Quiconque a compris les différences présentées ici tirera bien meilleur parti de ces cartes hybrides.
Erreurs fréquentes et idées reçues
- « Le Raspberry Pi Pico est un petit Raspberry Pi » : faux ; il ne fait pas tourner Linux et n'a pas de sortie HDMI. Le Pico est un microcontrôleur, de la même famille que l'Arduino.
- Brancher un signal 5 V sur le Pi : si la broche ECHO du HC-SR04 ou la ligne TX de l'Arduino arrive directement sur un GPIO, la broche, voire le processeur, peut être détruite définitivement ; utilise un pont diviseur.
- Chercher analogRead sur le Pi : le Raspberry Pi n'a pas d'entrées analogiques ; utilise un MCP3008, un ADS1115 ou un Arduino ou un Pico en renfort.
- Éteindre en débranchant : c'est le moyen le plus rapide de corrompre une carte SD ; utilise sudo poweroff à chaque fois.
- Alimenter un Pi 5 avec un chargeur de téléphone : avec une alimentation incapable de fournir 5 V 5 A, le Pi 5 limite le courant total des ports USB à 600 mA et peut redémarrer en charge.
- L'erreur « Permission denied: '/dev/ttyACM0' » : ton utilisateur n'appartient pas au groupe dialout ; lance la commande usermod et reconnecte-toi. Avec « Device or resource busy », un autre programme (le moniteur série ou Thonny) occupe le port.
- Penser que « l'Arduino est dépassé, il y a le Pi maintenant » : ce ne sont pas des rivaux mais des outils pour des tâches différentes ; la plupart des appareils, du lave-linge à la voiture, fonctionnent encore aujourd'hui avec des microcontrôleurs.
En résumé, le Raspberry Pi est un ordinateur qui réfléchit et qui voit, et l'Arduino un contrôleur qui transforme instantanément ce qu'il perçoit en action ; un bon projet combine souvent les forces des deux. Dans l'application BlueGrays, tu trouveras des dizaines de projets avec Arduino, ESP32 et Raspberry Pi Pico, des LED et capteurs jusqu'aux robots et aux montages Wi-Fi, chacun avec son schéma de câblage pas à pas et son code prêt à l'emploi, et tu peux commencer par les projets gratuits.
Questions fréquentes
Quelle est la différence entre Raspberry Pi et Arduino ?
Le Raspberry Pi est un ordinateur monocarte qui fait tourner un système Linux ; avec un écran, un clavier, internet et une caméra, il s'utilise comme un PC. L'Arduino est une carte à microcontrôleur sans système d'exploitation qui exécute instantanément et en temps réel le seul programme téléversé. Le Pi excelle dans le calcul complexe et le réseau, l'Arduino dans les capteurs, les moteurs et les usages basse consommation.
Raspberry Pi ou Arduino pour débuter ?
Si tu veux apprendre l'électronique, commence par un Arduino Uno : il fonctionne directement avec les modules 5 V, pardonne davantage les erreurs et dispose d'innombrables exemples. Si ton objectif principal est Linux, la programmation Python, les caméras ou les projets de serveur, le Raspberry Pi est un meilleur point de départ. Pour qui aime Python et veut découvrir les microcontrôleurs, le Raspberry Pi Pico est une voie intermédiaire peu coûteuse.
Le code Arduino fonctionne-t-il sur un Raspberry Pi ?
Pas directement. Les sketches Arduino sont compilés pour des microcontrôleurs comme l'ATmega328P ; sur un Raspberry Pi, il faut réécrire la même logique en Python avec des bibliothèques comme gpiozero. En revanche, tu peux utiliser le Raspberry Pi comme ordinateur pour téléverser du code sur un Arduino avec arduino-cli.
Peut-on utiliser un Raspberry Pi et un Arduino ensemble ?
Oui. Le plus simple est de relier l'Arduino au Pi avec un câble USB et d'échanger des données par le port série ; en Python, la bibliothèque pyserial suffit. Le Pi s'occupe alors de la caméra, du réseau et des décisions, l'Arduino des capteurs et des moteurs. Si tu les relies en UART ou en I2C par les GPIO, utilise un pont diviseur ou un convertisseur de niveau à cause de l'écart entre 5 V et 3,3 V.
Le Raspberry Pi Pico est-il un Arduino ?
Non, mais il est de la même famille : comme l'Arduino, le Pico est une carte à microcontrôleur sans système d'exploitation. Grâce à sa puce RP2040, il est plus rapide que l'Uno, a plus de RAM et se programme en MicroPython ; tu peux aussi le coder avec l'Arduino IDE si tu préfères. Sa grande différence est qu'il fonctionne en 3,3 V au lieu de 5 V.
Raspberry Pi ou Arduino : lequel est le meilleur pour un robot ?
Pour un robot qui évite les obstacles, suit une ligne ou roule à la télécommande, un Arduino suffit et se montre plus fiable ; il gère moteurs et capteurs sans délai. Si le robot doit reconnaître des objets avec une caméra, créer une carte ou être piloté par internet, il te faut un Raspberry Pi. Les robots avancés utilisent généralement les deux : le Pi décide, l'Arduino pilote les moteurs.
Projets à réaliser après cet article
Voir tous les projets
Clignotement d'une LED
Le tout premier bonjour de l'électronique : allumer et éteindre une seule LED. L'Arduino allume et éteint la LED à intervalles très courts, la lumière clignote donc rapidement. Tu vois de la façon la

Clignotement LED Intégrée Raspberry Pi Pico (Pico et Pico W)
Le projet d'ouverture de la série Raspberry Pi Pico ! Nous faisons clignoter la LED verte intégrée pour vérifier que la carte fonctionne — une première expérience classique "Hello World". AUCUN composant externe, juste Pico et câble USB. Le code est écrit en MicroPython (le langage officiellement soutenu par la Raspberry Pi Foundation). Apprends la classe machine.Pin, le mode Pin.OUT, les méthodes led.on()/off() et time.sleep() dans Thonny IDE. Suis chaque basc

Mesurer l'intensité lumineuse avec une LDR
Envie de voir en chiffres à quel point ta chambre est lumineuse ? Le LDR, une petite pièce sensible à la lumière, mesure la lumière ambiante, et l'Arduino écrit la valeur sur l'écran de ton ordinateur

Température et humidité avec DHT11
Quelle température fait-il dans ta chambre, et l'air est-il humide ou sec ? Le capteur DHT11 mesure la température et l'humidité, et l'Arduino affiche les valeurs sur un écran LCD à deux lignes, mises

HC-SR04 Mesure de la distance (affichage en série)
Le capteur HC-SR04 fonctionne comme une chauve-souris qui trouve son chemin dans le noir : il envoie un son que tu ne peux pas entendre, écoute l'écho et mesure à quelle distance se trouve l'objet dev

Communication unidirectionnelle entre 2 Arduino
Tu fais discuter deux Arduino par un seul fil : appuie sur le bouton de l'un et la LED de l'autre s'allume, appuie encore et elle s'éteint. La carte qui envoie signale l'appui par un court message, et

Clavier pour développeur Python
Si tu en as assez de taper sans cesse les mêmes structures quand tu codes, ce petit clavier est fait pour toi. L'Arduino Leonardo se branche à l'ordinateur comme un vrai clavier, et chaque touche du c

Station d'irrigation intelligente
Un jardinier qui arrose tes plantes tout seul pour qu'elles ne sèchent pas pendant tes vacances. Un capteur d'humidité mesure à quel point la terre est mouillée ; quand elle devient sèche, l'Arduino f
Autres articles
Application BlueGrays
Réalise ce montage pas à pas sur ton téléphone
Schéma, code et liste des composants sur un seul écran. Plus de 200 projets Arduino, ESP32 et Pico à réaliser.
Scanne avec ton téléphone
Pointe l’appareil photo vers le code : la boutique d’applications de ton téléphone s’ouvre.
ou ouvre la boutique

