Guides Arduino

Arduino UNO R3 en Tunisie : Le Guide Pilier 2026 avec 5 Projets Pratiques

Le guide pilier 2026 sur l'Arduino UNO R3 en Tunisie : histoire, anatomie ATmega328P, brochage 20 broches, installation IDE, 5 projets pratiques, optimisations, 10 pièges à éviter. Référence Didactico Sfax.

5 avril 202613 min de lectureÉquipe Didactico

En 2005, à l’Interaction Design Institute d’Ivrea (Italie), un groupe d’étudiants en design avait un problème : ils voulaient apprendre l’électronique sans devoir devenir ingénieurs en électronique. Massimo Banzi, leur professeur, conçut alors une carte simple, ouverte, peu chère. Il la nomma Arduino — du nom d’un bar fréquenté par les étudiants, lui-même nommé d’après Arduino d’Ivrée, roi d’Italie au XIᵉ siècle. Vingt ans plus tard, la planète a fabriqué plus de 30 millions de cartes Arduino. Et la version la plus emblématique, celle qui peuple les écoles d’ingénieurs de Tunis à Sfax, c’est l’Arduino UNO R3.

Cet article est le guide pilier de référence sur l’Arduino UNO R3 en Tunisie. Il s’adresse autant à l’étudiant ENIT/INSAT/ISET qui prépare son premier TP qu’à l’ingénieur confirmé qui veut redécouvrir cette carte mythique. Au programme : histoire, anatomie de l’ATmega328P, brochage exhaustif, installation pas à pas, premier programme, 5 projets pratiques, optimisations avancées et pièges à éviter.

Histoire et philosophie Arduino

L’esprit Arduino tient en trois mots : simple, ouvert, communautaire. Le code source de l’IDE, les schémas des cartes, le bootloader, tout est open-source sous licence Creative Commons et GPL. C’est cette ouverture qui a permis à des dizaines de fabricants chinois de produire des compatibles à 40% du prix officiel — et qui a démocratisé l’électronique embarquée dans le monde entier, particulièrement en Afrique du Nord où l’Arduino UNO est devenu le standard universitaire de facto.

L’UNO R3 sortie en 2011 reste, 15 ans plus tard, la version de référence. Sa robustesse (5V tolerant, courant max 40 mA par broche), sa documentation exhaustive en 30 langues, et le millier de bibliothèques disponibles en font le couteau suisse parfait pour démarrer.

L’ATmega328P : le cerveau disséqué

Au cœur de l’Arduino UNO bat un microcontrôleur Atmel ATmega328P (aujourd’hui Microchip après le rachat en 2016). C’est un 8-bit AVR cadencé à 16 MHz. Comparons-le à ses concurrents directs :

Caractéristique ATmega328P (UNO) STM32F103 (Blue Pill) ESP32 (DevKit)
Architecture AVR 8-bit ARM Cortex-M3 32-bit Xtensa LX6 32-bit dual-core
Horloge 16 MHz 72 MHz 240 MHz
Flash 32 KB 64 KB 4 MB
RAM 2 KB 20 KB 520 KB
GPIO 20 broches 37 broches 34 broches
Sans-fil Aucun Aucun WiFi + BT + BLE
Prix Tunisie Bas Très bas Moyen

L’ATmega328P est intentionnellement “lent” — c’est ce qui le rend pédagogique. Avec 2 KB de RAM, vous apprenez à optimiser, à utiliser la mémoire flash via PROGMEM, à éviter les String dynamiques. Ces contraintes forgent de meilleurs ingénieurs embarqués que n’importe quel langage moderne sans limites.

Caractéristiques techniques complètes

  • Microcontrôleur : ATmega328P, 8-bit AVR RISC, 16 MHz
  • Tension de fonctionnement : 5V (logic), 7-12V VIN recommandé
  • Plage VIN absolue : 6-20V (au-delà, le régulateur AMS1117 surchauffe)
  • Courant 5V max : 500 mA (USB) ou 1 A (jack DC via régulateur)
  • Courant DC par I/O : 20 mA recommandé, 40 mA absolu max
  • Courant total cumulé I/O : 200 mA max
  • Broches numériques I/O : 14 (D0-D13), dont 6 PWM (~)
  • Broches analogiques : 6 (A0-A5), ADC 10-bit (0-1023), Vref 5V par défaut
  • Mémoire Flash : 32 KB dont 0.5 KB occupés par le bootloader
  • SRAM : 2 KB
  • EEPROM : 1 KB (cycle d’écriture limité à 100 000 fois)
  • Interfaces : 1× UART, 1× I2C (A4/A5), 1× SPI (D10-D13), 2× interruptions externes (D2/D3)
  • Connecteurs : USB type B, jack DC 2.1 mm, header ICSP, bouton RESET
  • LED intégrée : sur D13
  • Régulateur : NCP1117ST50T3G (5V/1A) + LP2985-33DBVR (3.3V/150mA)
  • Quartz : 16 MHz cristal
  • Dimensions : 68.6 × 53.4 mm
  • Poids : 25 g
🛒
Produit star Didactico

Carte Arduino UNO R3 — Version Officielle

Réf DAR-01-A001 · Officielle ou compatible CH340 · En stock · Livraison 24-48h Tunisie

Voir le produit →

Brochage Arduino UNO R3 (14+6 broches)

Broches numériques D0 à D13

  • D0 (RX) et D1 (TX) : UART hardware. À ÉVITER pour autre chose pendant le debug Serial — vous perdrez la communication USB.
  • D2 et D3 : interruptions externes (INT0/INT1). Permettent de réagir à un événement (bouton, capteur) sans bloquer la boucle loop().
  • D3, D5, D6, D9, D10, D11 : 6 sorties PWM (490 Hz ou 980 Hz selon le timer associé). Idéales pour LEDs gradables, servos, vitesses moteurs.
  • D10 (SS), D11 (MOSI), D12 (MISO), D13 (SCK) : bus SPI. Utilisé par module SD card, écran TFT, RFID RC522, etc.
  • D13 : LED intégrée à la carte. Pratique pour tester sans LED externe — exactement ce que fait l’exemple “Blink”.

Broches analogiques A0 à A5

L’ADC 10-bit convertit 0-5V en 0-1023. Précision : 5V / 1024 ≈ 4.88 mV par pas.

  • A4 (SDA) et A5 (SCL) : bus I2C. Utilisé par : OLED SSD1306, BME280, MPU6050, RTC DS3231, MAX30102, écran LCD I2C, etc.
  • Les A0-A5 peuvent aussi servir de broches numériques (référer à elles par leur numéro 14-19 ou par A0A5).
  • A6 et A7 : présentes uniquement sur Nano/Mini, PAS sur UNO R3.

Broches alimentation

  • 5V : sortie 5V régulée (500 mA USB / 1A jack)
  • 3.3V : sortie 3.3V (50 mA max, fragile)
  • VIN : entrée alimentation (7-12V), shunte le régulateur si vous alimentez ici
  • GND : 3 broches de masse
  • AREF : référence externe pour l’ADC (rarement utilisé)
  • IOREF : indique aux shields la tension logique (5V sur UNO, 3.3V sur Due)

Installation IDE Arduino (Windows/Mac/Linux)

  1. Téléchargez Arduino IDE 2.x sur arduino.cc/en/software (~ 150 Mo)
  2. Lancez l’installateur. Sur Windows, acceptez l’installation des drivers USB (FTDI, CH340).
  3. Pour les cartes compatibles (CH340), si non détectées, installez manuellement CH341SER.exe. Sur Mac/Linux, ces drivers sont natifs.
  4. Branchez votre Arduino UNO via le câble USB-A → USB-B (le câble est inclus avec la carte chez Didactico)
  5. Dans l’IDE : Outils → Type de carte → Arduino AVR Boards → Arduino UNO
  6. Dans l’IDE : Outils → Port → COMx (Windows) ou /dev/cu.usbmodemXXXX (Mac)
  7. Pour tester : Fichier → Exemples → 01.Basics → Blink, puis cliquez sur la flèche “Téléverser”

Si la compilation prend 30+ secondes, c’est normal au premier upload (l’IDE compile toutes les bibliothèques standard). Les uploads suivants prennent 5-10 secondes.

Premier programme : Blink + Serial

// Blink + Serial Hello — pour valider USB et port serie
// Didactico Tunisie

const int LED = LED_BUILTIN;  // = 13 sur UNO
int compteur = 0;

void setup() {
  pinMode(LED, OUTPUT);
  Serial.begin(115200);
  Serial.println("Didactico ECG Arduino UNO R3 - Bonjour !");
}

void loop() {
  digitalWrite(LED, HIGH);
  delay(500);
  digitalWrite(LED, LOW);
  delay(500);
  compteur++;
  Serial.print("Battement #");
  Serial.println(compteur);
}

Ouvrez le Moniteur Série (Ctrl+Maj+M) à 115200 bauds. Vous verrez les messages s’afficher au rythme du clignotement. Si vous voyez des caractères chinois ou symboles bizarres, c’est que vous n’avez pas réglé le bon débit. Toujours 115200 pour les développements modernes (9600 est obsolète).

Projet 1 — Station météo DHT22 + OLED SSD1306

Matériel

  • 1 × Capteur DHT22 (température + humidité)
  • 1 × Écran OLED 0.96″ I2C SSD1306
  • 1 × Résistance pull-up 10 kΩ

Câblage

  • DHT22 : VCC → 5V, GND → GND, DATA → D7 (avec pull-up 10 kΩ entre DATA et VCC)
  • OLED : VCC → 5V, GND → GND, SCL → A5, SDA → A4

Code

#include <DHT.h>
#include <Wire.h>
#include <Adafruit_SSD1306.h>

#define DHTPIN 7
#define DHTTYPE DHT22

DHT dht(DHTPIN, DHTTYPE);
Adafruit_SSD1306 oled(128, 64, &Wire);

void setup() {
  dht.begin();
  oled.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  oled.setTextColor(WHITE);
}

void loop() {
  float t = dht.readTemperature();
  float h = dht.readHumidity();
  oled.clearDisplay();
  oled.setTextSize(2);
  oled.setCursor(0, 0);
  oled.print(t, 1); oled.println(" C");
  oled.print(h, 0); oled.println(" %");
  oled.setTextSize(1);
  oled.print("Didactico.tn");
  oled.display();
  delay(2000);
}

Projet 2 — Bouton anti-rebond avec interruption

Le but : compter chaque appui sans aucun faux positif dû aux rebonds mécaniques. Solution : interruption matérielle + debounce 50 ms.

const int BTN = 2;  // INT0
const int LED = 13;
volatile unsigned long last_int = 0;
volatile int compteur = 0;

void ISR_bouton() {
  unsigned long now = millis();
  if (now - last_int > 50) {  // debounce 50ms
    compteur++;
    last_int = now;
  }
}

void setup() {
  pinMode(BTN, INPUT_PULLUP);
  pinMode(LED, OUTPUT);
  Serial.begin(115200);
  attachInterrupt(digitalPinToInterrupt(BTN), ISR_bouton, FALLING);
}

void loop() {
  static int prev = 0;
  if (compteur != prev) {
    prev = compteur;
    Serial.print("Appui n°"); Serial.println(compteur);
    digitalWrite(LED, !digitalRead(LED));
  }
}

Projet 3 — Alarme distance HC-SR04

Voir notre guide HC-SR04 complet. En résumé : un buzzer s’active si distance < 20 cm — utile pour parking de voiture ou robot d’évitement.

Projet 4 — Servo + potentiomètre temps réel

#include <Servo.h>
Servo s;

void setup() { s.attach(9); }
void loop() {
  int angle = map(analogRead(A0), 0, 1023, 0, 180);
  s.write(angle);
  delay(15);
}

Cette boucle de 4 lignes fait tourner un servomoteur SG90 ou MG996R selon la position d’un potentiomètre 10 kΩ. Idéal pour un bras robotique manuel.

Projet 5 — Logger SD card avec horodatage RTC

Combinaison module SD card SPI + RTC DS3231 I2C + capteur DHT22. Toutes les 5 minutes, écriture d’une ligne CSV : 2026-05-16 10:23:00, 28.5, 45. Application : journal météo d’une serre, monitoring chambre froide, logger PFE.

#include <SPI.h>
#include <SD.h>
#include <RTClib.h>
#include <DHT.h>
const int CS = 10;
RTC_DS3231 rtc;
DHT dht(7, DHT22);

void setup() {
  SD.begin(CS);
  rtc.begin();
  dht.begin();
}

void loop() {
  DateTime now = rtc.now();
  File f = SD.open("meteo.csv", FILE_WRITE);
  if (f) {
    f.print(now.timestamp()); f.print(",");
    f.print(dht.readTemperature(), 1); f.print(",");
    f.println(dht.readHumidity(), 0);
    f.close();
  }
  delay(300000);  // 5 minutes
}

Optimisations avancées

PROGMEM : stocker en flash au lieu de RAM

Les chaînes constantes occupent par défaut la RAM (2 KB seulement !). En les déplaçant en Flash (32 KB) avec PROGMEM, vous libérez la RAM pour les variables critiques.

const char message[] PROGMEM = "Message tres long stocke en flash";
Serial.println((__FlashStringHelper*)message);
// Ou plus simplement avec le macro F() :
Serial.println(F("Texte direct en flash"));

Sleep mode : économiser la batterie

#include <avr/sleep.h>
void deep_sleep() {
  set_sleep_mode(SLEEP_MODE_PWR_DOWN);
  sleep_enable();
  sleep_mode();
  // L'Arduino reste endormi (~ 0.1 mA) jusqu'a interruption externe
  sleep_disable();
}

Accès direct aux ports (PORTB, PORTD)

digitalWrite() prend ~ 4 µs. En manipulant directement les registres PORTB/PORTD, vous descendez à 0.1 µs — 40× plus rapide. Indispensable pour le PWM software haute fréquence ou le contrôle de bandes LED WS2812.

10 pièges classiques à éviter

  1. Brancher du 5V sur la broche 3.3V → grille le régulateur LP2985
  2. Tirer > 40 mA sur une seule broche → fritte la sortie (ex: alimenter directement une LED 1W ou un moteur)
  3. Polariser une LED à l’envers sans résistance → court-circuit, grille la broche
  4. Utiliser delay(1000) partout → bloque tout, préférez millis() pour multi-tâche
  5. Déclarer des String dans loop() → fragmente la RAM, plantage après 30 minutes
  6. Mélanger 5V et 3.3V sans level shifter → grille votre ESP32 ou capteur 3.3V
  7. Oublier les capacités de découplage 100 nF près des CI sensibles → instabilité bizarre
  8. Sauvegarder à chaque cycle dans l’EEPROM → 100 000 cycles max, atteint en quelques jours
  9. Alimenter servomoteur via 5V Arduino → reset intempestif dû au pic de courant
  10. Ne pas mettre pinMode() dans setup() → comportement imprévisible des broches

FAQ Arduino UNO R3

Arduino UNO vs Arduino UNO R3 : quelle différence ?

Le “R3” désigne la révision 3 de l’Arduino UNO, sortie en 2011. Elle reste la version officielle vendue aujourd’hui. La R3 ajoute deux broches SDA/SCL dédiées (en plus de A4/A5), une broche IOREF pour les shields, et un circuit ATmega16U2 (au lieu du FTDI) pour la communication USB. Quand on dit “Arduino UNO”, on parle implicitement de l’UNO R3.

Arduino UNO R3 officielle vs compatible chinoise : faut-il payer plus ?

Les compatibles utilisent l’ATmega328P (puce identique) mais un convertisseur USB CH340 au lieu de l’ATmega16U2. Fonctionnellement, c’est 100% équivalent pour 99% des projets. La différence : la compatible est ~ 40% moins chère, mais nécessite l’installation manuelle du driver CH340 sur Windows. Pour étudiants, allez sur la compatible. Pour un produit pro vendu à un client, prenez l’officielle (logo + garantie + qualité de fabrication).

Quelle est l’autonomie d’une Arduino UNO sur pile 9V ?

Pile 9V alcaline (~ 500 mAh utile) + Arduino UNO en fonctionnement actif (~ 50 mA) = 10 heures. En mode sleep + interruptions (consommation moyenne ~ 5 mA) = 100 heures. Pour de l’autonomie longue, préférez un pack 4×AA NiMH (8 heures), un module solaire 6V + 18650 (autonomie infinie en extérieur ensoleillé), ou un ESP32 en deep sleep (mois).

Combien de bibliothèques sont disponibles pour Arduino UNO ?

Plus de 5000 bibliothèques dans le Library Manager officiel, dont 80% compatibles UNO. Tous les capteurs/modules vendus chez Didactico ont une bibliothèque dédiée bien documentée. Les plus populaires : DHT (température), Adafruit_SSD1306 (OLED), Servo, Wire (I2C), RTClib (horloge), SD (carte mémoire), NewPing (ultrason), FastLED (LEDs WS2812).

Peut-on faire de l’intelligence artificielle sur Arduino UNO ?

Avec seulement 2 KB de RAM et 32 KB de flash, c’est très limité. Vous pouvez faire des arbres de décision simples (ex: classification capteurs en 3 classes), des filtres signal, ou un perceptron 5-10 neurones. Pour du vrai TinyML (TensorFlow Lite Micro), il faut passer à l’ESP32 (520 KB RAM) ou Nano 33 BLE Sense (256 KB RAM Cortex-M4).

L’Arduino UNO supporte-t-il les écrans tactiles ?

Pour des écrans simples (Nokia 5110, ILI9341 2.4″), oui via SPI. Mais avec 2 KB de RAM, vous ne pouvez pas afficher des images bitmap. Pour du tactile riche, préférez ESP32 + écran TFT 3.5″, ou Raspberry Pi + écran HDMI 7″.

Quel est le prix de l’Arduino UNO R3 en Tunisie en 2026 ?

Tarif actuel disponible sur la fiche produit Didactico. La carte officielle reste l’investissement de référence pour étudiants ENIT/INSAT/ISET/ESPRIT. La version compatible est aussi disponible pour les budgets serrés. Livraison 24-48h dans toute la Tunisie, paiement à la livraison.

Conclusion : 20 ans plus tard, toujours pertinent

Beaucoup ont annoncé la “mort de l’Arduino UNO” avec l’arrivée de l’ESP32. La réalité de 2026 ? L’UNO R3 reste la carte la plus vendue au monde dans l’éducation, et le standard universel pour démarrer en embarqué. Sa simplicité est une force pédagogique : pas de WiFi qui distrait, pas de Bluetooth complexe, juste un microcontrôleur, 20 broches, et 5000 bibliothèques. Du Maker au futur ingénieur, l’Arduino UNO reste la première étape obligée.

Chez Didactico Sfax, l’Arduino UNO R3 est notre produit le plus commandé depuis 2012. Pour vos TP, projets de fin d’études, ou kits FabLab, nous proposons des tarifs HT pour les établissements et un support technique gratuit. Découvrez toutes nos cartes Arduino.

🛒 Matériel nécessaire pour ce guide

Tout le matériel de ce tutoriel est disponible chez Didactico — livraison 24-48h partout en Tunisie, paiement à la livraison.

Voir toute la catégorie « Cartes Programmables » →

📘 Guides liés : Comment Choisir le Bon Capteur Arduino pour votre Projet (Guide 2026)

🛒 Passez à la pratique
Retrouvez nos cartes Arduino en stock chez Didactico, livraison partout en Tunisie.
Voir la boutique →