Guides · 19 min de lecture

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.

Carte à microcontrôleur Arduino Uno R3
Arduino Uno R3 : aucun système d'exploitation ; l'ATmega328P à 16 MHz exécute le seul programme téléversé dès qu'il est alimenté.

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 situationChoixPourquoi ?
Tu débutes en électroniqueArduino UnoSimple, robuste, directement compatible avec les modules 5 V
Caméra, reconnaissance de visages ou d'objetsRaspberry PiPuissance de calcul, RAM, OpenCV et prise en charge des caméras
Voiture robot, servo, moteur pas à pasArduinoTemporisation précise et sans interruption
Serveur web, base de données, box domotiqueRaspberry PiLinux, services réseau, stockage
Capteur qui doit tenir des jours sur pilesArduino ou PicoConsommation en milliwatts, pas en watts
Appareil utilisé avec écran, clavier et sourisRaspberry PiBureau, navigateur, HDMI
Apprendre Python et piloter du matérielRaspberry Pi Pico ou Raspberry PiMicroPython ou Python complet
Traitement d'image et commande de moteurs ensembleRaspberry Pi + ArduinoLe Pi décide, l'Arduino exécute

Tableau comparatif : Raspberry Pi 5, Arduino Uno et Raspberry Pi Pico

CaractéristiqueRaspberry Pi 5Arduino Uno R3Raspberry Pi Pico
TypeOrdinateur monocarteCarte à microcontrôleurCarte à microcontrôleur
ProcesseurBCM2712, 4 cœurs Cortex-A76, 2,4 GHzATmega328P, 8 bits, 16 MHzRP2040, 2 cœurs Cortex-M0+, 133 MHz
RAM1, 2, 4, 8 ou 16 Go2 Ko264 Ko
StockageCarte microSD ou SSD NVMe32 Ko de flash2 Mo de flash
Système d'exploitationRaspberry Pi OS (Linux)AucunAucun
Temps de démarrageEnviron 15 à 40 secondesMoins d'une secondeMoins d'une seconde
ConsommationEnviron 3 W au repos, 7 à 8 W en chargeEnviron 0,25 W (50 mA)Environ 0,1 W (20 à 25 mA)
AlimentationUSB-C, 5 V 5 A recommandésUSB 5 V ou jack 7 à 12 VUSB 5 V ou 1,8 à 5,5 V sur VSYS
Niveau logique3,3 V (ne tolère pas le 5 V)5 V3,3 V (ne tolère pas le 5 V)
GPIO28 GPIO sur le connecteur 40 broches20 (14 numériques + 6 analogiques)26
Entrées analogiques (ADC)Aucune (ADC externe nécessaire)6 canaux, 10 bits3 canaux, 12 bits
PWM matérielleSur 4 broches (GPIO 12, 13, 18, 19)6 brochesSur tous les GPIO, 16 canaux
Sans filWi-Fi 5 + Bluetooth 5.0AucunAucun (Wi-Fi + Bluetooth sur le Pico W)
Vidéo et son2 × HDMI 4K, 2 connecteurs caméraAucunAucun
ProgrammationPython, C/C++, Node.js et presque tous les langages LinuxArduino C/C++MicroPython, SDK C/C++, Arduino
Temps réelNon (ordonnancement Linux)Oui, à la microsecondeOui, encore plus précis avec le PIO
Coupure de courant brutaleLa carte SD peut être corrompueAucun problèmeAucun 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.

N'éteins pas le Raspberry Pi en le débranchant ; lance d'abord sudo poweroff ou choisis Éteindre sur le bureau, puis attends quelques secondes. Si tu fabriques un appareil qui sera souvent débranché, tu peux passer le système en lecture seule avec l'option Overlay File System dans Performance Options de raspi-config. Utilise une alimentation USB-C 5 V 5 A (27 W) pour le Pi 5 ; avec une alimentation trop faible, un avertissement de sous-tension s'affiche, vcgencmd get_throttled renvoie une autre valeur que 0x0 et la carte peut redémarrer en pleine charge.

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.

CarteConsommation typiqueAvec une batterie externe de 10 000 mAh
Raspberry Pi 5 (au repos)Environ 3 WEnviron 10 heures
Raspberry Pi 5 (pleine charge)7 à 8 WEnviron 4 heures
Raspberry Pi Zero 2 WEnviron 0,6 WEnviron 2 jours
Arduino Uno R3Environ 0,25 WEnviron 5 jours
Raspberry Pi PicoEnviron 0,1 WEnviron 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èreDes mois directement sur piles
La plupart des batteries externes se coupent toutes seules quand le courant descend sous 50 à 100 mA, si bien que les montages basse consommation à base de Pico ou d'Arduino peuvent s'éteindre au bout de quelques secondes. Pour ces projets, utilise directement des piles, un accu 18650 ou une batterie externe dotée d'un mode « toujours allumé ». Pour des capteurs sans fil qui doivent tenir des mois sur batterie, le mode deep sleep de l'ESP32 est aussi une excellente option.

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.

SujetRaspberry PiArduino UnoRaspberry Pi Pico
Niveau logique3,3 V5 V3,3 V
Courant par brocheQuelques mA, environ 16 mA au maximum20 mA recommandés, 40 mA maximum absolu4 mA par défaut, réglable jusqu'à 12 mA
Lecture analogiqueImpossible ; MCP3008 ou ADS1115 nécessaireanalogRead(), 0–1023ADC(26).read_u16(), 0–65535
PWMMatérielle sur 4 broches, logicielle ailleursanalogWrite() sur 6 brochesMatérielle sur toutes les broches
NumérotationLe numéro GPIO diffère de la broche physique (GPIO17 = broche 11)Numéro imprimé sur la carteNuméro GP (GP15 = broche 20)
Modules 5 V comme le HC-SR04Pont diviseur obligatoireDirectementPont 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é » :

Python
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 events

Branche 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.
Si tu as vraiment besoin d'une temporisation précise sur le Pi, utilise les broches PWM matérielles (GPIO 12, 13, 18, 19) ou une carte de commande de servos PCA9685 à 16 canaux. La solution la plus propre reste de confier la temporisation à un Arduino ou à un Pico et de n'échanger que des commandes avec le Pi ; les blocs PIO du Pico sont justement conçus pour cela (voir PIO et double cœur du Pico).

Quelle carte pour quel projet ?

ProjetMeilleure cartePourquoi ?
Caméra qui reconnaît visages ou objetsRaspberry Pi 5OpenCV, Picamera2, accélérateurs d'IA
Caméra de surveillance Wi-Fi, envoi de photosESP32-CAM ou Raspberry Pi Zero 2 WL'ESP32-CAM suffit pour des photos simples, le Pi pour le flux vidéo et l'enregistrement
Robot éviteur d'obstacles ou suiveur de ligneArduinoBoucle précise et ininterrompue pour capteurs et moteurs
Robot qui se dirige grâce à une caméraRaspberry Pi + ArduinoLe Pi voit et décide, l'Arduino pilote les moteurs
Arrosage automatique des plantesArduino ou ESP32Capteur d'humidité analogique, faible consommation, démarrage immédiat
Box domotique (Home Assistant)Raspberry PiServeur toujours allumé, base de données, interface web
Station météoESP32 ou Pico WWi-Fi et faible consommation réunis
Console rétro, lecteur multimédiaRaspberry PiHDMI, son, manette USB
Enregistreur de données sur pilesArduino Pro Mini ou PicoConsommation très faible en veille
Cours d'électronique, premiers circuitsArduino Uno5 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.

HC-SR04
HC-SR04
SG90 servo
SG90 servo
L298N
L298N
DHT11
DHT11

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 :

LiaisonComment ?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/ttyUSB0Le 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 communesPont diviseur obligatoire pour le signal TX 5 V de l'Arduino
I2CPi en maître, Arduino en esclave à une adresse comme 0x08Convertisseur de niveau recommandé
Wi-Fi / MQTTUn ESP32 envoie ses mesures par le réseau à un broker MQTT sur le PiPas de câble, mais un peu de latence réseau
  1. 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).
  2. 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.
  3. Si la bibliothèque pyserial n'est pas installée, installe-la avec sudo apt install python3-serial.
  4. 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.
  5. 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.
C++ (Arduino IDE)
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}
Python
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 = yeni

Toutes 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 ?.

Si tu relies l'Arduino aux broches GPIO 14 (TX) et GPIO 15 (RX) du Pi au lieu de passer par l'USB, la ligne TX de l'Arduino sort du 5 V et peut détruire la broche RX du Pi. Intercale un pont diviseur de tension : avec 1 kΩ en série depuis le TX de l'Arduino et 2 kΩ entre le RX du Pi et GND, tu obtiens 5 × 2 / (1 + 2) = 3,33 V. L'Arduino lit généralement bien le signal TX 3,3 V du Pi ; pour l'I2C et le SPI, utilise un convertisseur de niveau logique.

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 ?.

Carte à microcontrôleur Raspberry Pi Pico
Raspberry Pi Pico : malgré le nom Raspberry Pi, il n'exécute aucun système d'exploitation ; comme un Arduino, c'est une carte à microcontrôleur 3,3 V qui fait tourner un seul programme.

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.

MicroPython
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.
Si tu hésites par où commencer, apprends les bases de l'électronique avec un Arduino Uno : en travaillant avec des LED, des boutons, des capteurs et des moteurs, tu verras concrètement le courant, la tension et la temporisation. Quand tu auras une idée qui demande une caméra, un réseau ou un écran, ajoute un Raspberry Pi ; ce que tu auras appris sur l'Arduino t'aidera alors à utiliser les GPIO du Pi en toute sécurité. Pour choisir ta carte, Quel Arduino acheter ? et Arduino ou ESP32 ? te seront aussi utiles.

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.

Voir tous les projets
Clignotement d'une LED
#1Débutant

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

4.6(188)
1127
Clignotement LED Intégrée Raspberry Pi Pico (Pico et Pico W)
#147Débutant

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

5.0(1)
10
Mesurer l'intensité lumineuse avec une LDR
#11Débutant

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

4.6(81)
139
Température et humidité avec DHT11
#55Intermédiaire

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

4.7(47)
73
HC-SR04 Mesure de la distance (affichage en série)
#27Débutant

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

4.6(46)
71
Communication unidirectionnelle entre 2 Arduino
#57Intermédiaire
Premium

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

4.4(37)
50
Clavier pour développeur Python
#66Intermédiaire
Premium

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

4.6(35)
45
Station d'irrigation intelligente
#83Avancé
Premium

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

5.0(42)
57