Jeder der mit einem Arduino bastelt und seine Sensoren gerne in Fernost bestellt, sollte schon mal einen I2C Scanner benötigt haben. Nachbauten aus Asien laufen nicht immer unter der Default I2C Adresse des Originals und können somit auch damit nicht angesprochen werden. Auch bei der Fehlersuche kann ein I2C Scanner gute Dienste leisten. Ihr könnt so erst mal schauen ob euer Sensor, Display oder Aktor überhaupt erreichbar ist, ohne euren Code. So lassen sich schnell defekte Geräte oder eventuell falsch angeschlossene Sensoren finden.
Die Software
Es gibt mehrere Varianten eines I2C Scanners im Netz, ich habe euch mal zwei Links hier notiert.
- Scanner by Thomas Feldmann; sehr einfach aber funktional
- Scanner by Robo Ulbricht; etwas aufgehübscht indem das Ergebnis in einer Tabelle gezeigt wird
Verwendung des I2C Scanners
Natürlich müsst ihr den Sketch auf euren Arduino laden und euren Seriellen Monitor starten um die Ausgabe zu sehen, mehr auch nicht. Ihr müsst nur noch darauf Achten das ihr die richtige Geschwindigkeit auf der seriellen Schnittstelle ausgewählt habt. Auf dem seriellen Monitor seht ihr dann das Ergebnis. Das Erste stammt aus dem Scanner von Thomas, das Zweite von Robo:
I2C Scanner
Scanning...
I2C device found at address 0x29 !
done
0 1 2 3 4 5 6 7 8 9 A B C D E F
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- 29 -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
Found 1 devices
In beiden Fällen seht ihr einen Sensor auf 0x29 welcher erkannt wurde. Einfacher geht es fast schon nicht mehr. Also bevor ihr eure Schaltung mit eurer Software testet, solltet ihr vorher ruhig mal mit dem Scanner schauen ob alles passt, das kann euch einige Zeit und Nerven sparen.