Software desenvolvido para a análise descrita no artigo Testes e avaliação da biblioteca SoftIIC, no ambito da exploração das interfaces disponiveis no Arduino para comunicação entre microcontroladores.
Hardware
- Arduino1 – Nano 328P + MPU6050 (bus I2C normal)
- Arduino2 – Nano 168 + VL53L0X (bus I2C normal)
O Arduino1 liga-se no bus I2C normal ao bus I2C secundário do Arduino2.
O endereço, e o número de bytes em: Wire.requestFrom(0x52, 32) deve ser ajustado ao programa Slave que estiver a ser executado.
Os dois programas slave associados a este nestes testes são:
Este programa deve ser executado no Arduino1.
SoftIIC_example_wire_master1
#include <Wire.h>
#define WAIT 30
byte loopcount = 0;
void setup() {
Serial.begin(115200); // start serial for output
Serial.println("START");
Wire.begin(); // join i2c bus (address optional for master)
}
void loop() {
Serial.print(loopcount); Serial.print("\t");
// request X bytes from slave device 0x5x
Wire.requestFrom(0x52, 32);
// receive may send less bytes
while (Wire.available()) {
byte b = Wire.read();
Serial.print(b); Serial.print(" ");
}
delay(WAIT);
Serial.println("");
loopcount++;
}
