Page 1 sur 1

Scanner I2C avec Arduino Uno

Posté : 17 janv. 2026, 12:03
par plume
Bonjour à tous,

Dans nos montages “Arduino” (TCO, afficheurs, capteurs, horloges RTC, extensions d’entrées / sorties type PCF8575/PCF8574, etc...), le bus I2C est vite incontournable… et on se retrouve régulièrement avec la même question : “Quelle est l’adresse I2C exacte de mon module ?”

Entre les modules dont l’adresse n’est pas clairement documentée et ceux qui changent selon la configuration, on peut perdre un temps considérable.

La section Modélisme de l’UAICF Nevers-Vauzelles met à disposition un scanner I2C basé sur Arduino Uno, pensé comme un outil d’atelier, simple et réutilisable.

La description du projet et le téléchargement sont disponibles à l'adresse : https://modelisme58.fr/outils/scanner-i2c/

Ce que fait l’outil
  • Détecte automatiquement les équipements connectés sur le bus I2C
  • Affiche l’adresse trouvée au choix : moniteur série et/ou écran LCD 16×2
  • Scanne les adresses de 1 à 127
  • S’appuie sur la bibliothèque standard Wire (rien d’exotique)
Pour disposer d'une démonstration, on peut avoir un aperçu avec le Simulateur en ligne (Wokwi) à l'adresse https://wokwi.com/projects/452841896087981057. Le simulateur illustre un exemple avec une adresse I2C 0x27.

La mise en route est assez rapide :
  1. Téléverser le programme dans l’Arduino Uno ou Nano
  2. Brancher le module I2C : SDA / SCL / VCC / GND (en respectant les polarités)
  3. Ouvrir le moniteur série et régler à 9600 bauds
  4. Lire l’adresse détectée (moniteur série et/ou LCD)
La réalisation de ce projet provient de plusieurs demandes :
  • Identifier rapidement l’adresse d’un module “sorti du tiroir”
  • Valider un câblage I2C avant intégration dans un montage (TCO, pupitre, rétro, etc.)
  • Éviter les conflits lorsque plusieurs modules partagent le même bus (adresses identiques)
Voilà
Bonne bidouille à tous !

Re: Scanner I2C avec Arduino Uno

Posté : 17 janv. 2026, 13:02
par Amigorl
:merciiii: pour cette indication.

Re: Scanner I2C avec Arduino Uno

Posté : 17 janv. 2026, 13:03
par patrice_b
:bienv: :bienv: :merciiii:

Re: Scanner I2C avec Arduino Uno

Posté : 17 janv. 2026, 14:13
par patlum
Le scanner peut être une bonne solution quand nos modules n'affichent pas clairement les adresses de bases.

Sur les écrans Oled genre ssd1306 16x2 généralement celles-ci sont indiqués sur le circuit imprimé et sélectionné par une résistance CMS soudé .
Adresse que l'on peut changer en repositionnent celle-ci sur la 2eme adresse possible . L'emplacement est généralement à coté du des 4 broches de raccordement soit en dessous, soit à gauche . :vert
Voir photo
IMG_20260117_135215.jpg
Mais il arrive parfois mais plus rarement que l'affichage de l'adressage ne soit pas correcte , et là effectivement le scanner peut lever le doute à condition d'avoir réalisé le petit montage :yess:

Re: Scanner I2C avec Arduino Uno

Posté : 17 janv. 2026, 14:22
par ramasoft
:merciiii: :merciiii: Thierry

Dans la vidéo du code de l'ascenseur, j'avais ajouté justement le code d'un scanner I2C pour trouver l'adresse d'un écran non documenté
Scanner_I2C.ino

C'est très simple

Code : Tout sélectionner

// Scanner I2C Version 1.00  (c) Ramasoft Mai 2025
// ***********************************************

#include <Wire.h>

void setup() 
{
  Wire.begin();
  Serial.begin(9600);
  while (!Serial);  // Attendre le moniteur série
  Serial.println("\nRecherche des adresses I2C...");
  
  for (byte addr = 1; addr < 127; addr++) 
  {
    Wire.beginTransmission(addr);
    if (Wire.endTransmission() == 0) 
    {
      Serial.print("Appareil I2C trouvé à l'adresse 0x");
      Serial.println(addr, HEX);
      delay(500);
    }
  }
  Serial.println("Scan terminé.");
}

void loop() 
{
}

Re: Scanner I2C avec Arduino Uno

Posté : 17 janv. 2026, 15:20
par herwat
C'est vrai que c'est très pratique , ce truc ! :cooooool:

Re: Scanner I2C avec Arduino Uno

Posté : 18 janv. 2026, 17:38
par likiki
Ha oui, excellent sujet. :PetitPoucejpg: