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++; }