Endereços Barramento I2C

1A PARTE
COMO SABER O ENDERECO DO DISPOSITIVO

2A PARTE
TROCANDO O ENDERECO DO DISPOSITIVO 


1A PARTE
***********************************************************

Como saber endereços dos dispositivos ligados ao Barramento I2C?

https://www.arduinoportugal.pt/saber-enderecos-dos-dispositivos-ligados-ao-barramento-i2c/


Como saber endereços dos dispositivos ligados ao Barramento I2C?

Este tutorial explica de forma simples como encontrar dispositivos anexados ao barramento i2c com o Arduino. Verifica ainda qual o endereço de cada dispositivo i2c ligado ao Arduino.

Ligações

Basta fazer as seguintes quatro conexões entre o dispositivo Arduino e I2C.

1. Analógico 4 -> SDA

2. Analógico 5 -> SCL

3. VCC -> VCC

4. GND -> GND

Scanner i2c

Copie o seguinte codigo para o Arduino IDE e envie para o Arduino. Se seguida abra o Serial Monitor e encontrará o endereço dos dispositivos i2c anexados.

 

#include <Wire.h>

void setup() {
Serial.begin (115200);

// Leonardo: wait for serial port to connect
while (!Serial)
{
}

Serial.println ();
Serial.println ("I2C scanner. Scanning ...");
byte count = 0;

Wire.begin();
for (byte i = 1; i < 120; i++)
{
Wire.beginTransmission (i);
if (Wire.endTransmission () == 0)
{
Serial.print ("Found address: ");
Serial.print (i, DEC);
Serial.print (" (0x");
Serial.print (i, HEX);
Serial.println (")");
count++;
delay (1); // maybe unneeded?
} // end of good response
} // end of for loop
Serial.println ("Done.");
Serial.print ("Found ");
Serial.print (count, DEC);
Serial.println (" device(s).");
} // end of setup

void loop() {}

 


2A PARTE

**********************************************************

// The following code changes the address of a Devantech Ultrasonic Range Finder (SRF10 or SRF08)
// usage: changeAddress(0x70, 0xE6);

void changeAddress(byte oldAddress, byte newAddress)
{
  Wire.beginTransmission(oldAddress);
  Wire.write(byte(0x00));
  Wire.write(byte(0xA0));
  Wire.endTransmission();

  Wire.beginTransmission(oldAddress);
  Wire.write(byte(0x00));
  Wire.write(byte(0xAA));
  Wire.endTransmission();

  Wire.beginTransmission(oldAddress);
  Wire.write(byte(0x00));
  Wire.write(byte(0xA5));
  Wire.endTransmission();

  Wire.beginTransmission(oldAddress);
  Wire.write(byte(0x00));
  Wire.write(newAddress);
  Wire.endTransmission();
}





Comentários

Postagens mais visitadas deste blog

ARDUINO COM DISPLAY LCD 16X2 COM BACKLIGHT VOLTIMETRO

CONTROLE REMOTO 433MHz