Descobrindo o endereço I2C dos módulos
A comunicação I2C facilita demais o desenvolvimento de projetos com Arduino ou Raspberry PI pois utilizando apenas 2 pinos (SDA e SCL) podemos comunicar (ler/escrever) com diversos módulos (Displays, Sensores de pressão, Sensores de PH, etc.).
A ideia principal da comunicação I2C é que cada item tenha o seu endereço Hexadecimal e no momento da comunicação somente o item/endereço solicitado responderá. E quando não temos o manual do equipamento, como fazemos para saber o endereço I2C?
A solução está no código abaixo, ele faz uma varredura e exibe uma lista dos endereços encontrados, caso seu equipamento esteja conectado e não seja encontrado verifique se você não inverteu os pinos de comunicação.
#include <Wire.h> void setup() { Serial.begin(9600); Wire.begin(); byte Return; Serial.println("Scanning I2C bus..."); for(byte I2CAddress = 1; I2CAddress <= 127; I2CAddress++) { Serial.print("0x"); if (I2CAddress<16) Serial.print("0"); Serial.print(I2CAddress, HEX); Serial.print(" ("); if (I2CAddress<10) Serial.print(" "); else if (I2CAddress<100) Serial.print(" "); Serial.print(I2CAddress); Serial.print("): "); Wire.beginTransmission(I2CAddress); Return = Wire.endTransmission(); if (Return == 0) Serial.print("OK!"); else Serial.print(" "); if (I2CAddress % 5) Serial.print(" "); else Serial.println(); } } void loop() { }
Para ver a lista basta abrir o “Serial Monitor”, ao lado de cada endereço que respondeu a varredura, teremos um “OK”.
Confira: Nosso display foi encontrado no endereço Hexadecimal “0X27”.
E se você gostou do nosso tutorial, mas ainda não segue a Circuito Maker no Youtube e Instagram, se inscreva.
Ajude a impulsionar o nosso trabalho.