Scanner I2C
Hay muchos dispositivos que se conectan a través del bus I2C. En ocasiones no sabemos la dirección I2C que tiene asignada el dispositivo. El siguiente código arduino escanea las posibles direcciones y muestra en qué dirección ha encontrado un dispositivo.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | #include <Wire.h> void setup () { Wire.begin(); Serial.begin ( 115200 ); Serial.println ( "\nI2C Scanner" ); } void loop () { byte error, address; int nDevices; Serial.println ( "Scanning..." ); nDevices = 0 ; for (address = 1 ; address < 127 ; address + + ) { Wire.beginTransmission(address); error = Wire.endTransmission(); if (error = = 0 ) { Serial.print ( "I2C device found at address 0x" ); if (address< 16 ) { Serial.print ( "0" ); } Serial.println (address,HEX); nDevices + + ; } else if (error = = 4 ) { Serial.print ( "Unknow error at address 0x" ); if (address< 16 ) { Serial.print ( "0" ); } Serial.println (address,HEX); } } if (nDevices = = 0 ) { Serial.println ( "No I2C devices found\n" ); } else { Serial.println ( "done\n" ); } delay ( 5000 ); } |
1 respuesta
[…] no conocemos la dirección I2C en la que se encuentra nuestro dispositivo, podemos usar el Scanner I2C para […]