Grupo de Engenharia e Sistemas Aeroespaciais de Macaé – UFRJ

Com o que podemos te ajudar?
< Todos os tópicos
Imprimir

Biblioteca Wire (dispositivos I2C)

Fontes:

https://www.arduino.cc/reference/en/language/functions/communication/wire/

Descrição da biblioteca no site oficial do Arduino

Descrição

Esta biblioteca permite que você se comunique com dispositivos I2C/TWI. Nas placas Arduino com layout R3 (pinagem 1.0), o SDA (data line) e SCL (clock line) estão nos cabeçalhos dos pinos próximos ao pino AREF. O Arduino Due possui duas interfaces I2C/TWI SDA1 e SCL1 estão próximas ao pino AREF e a adicional está nos pinos 20 e 21.

Como referência, a tabela abaixo mostra onde os pinos TWI estão localizados em várias placas Arduino.

Quadropinos I2C/TWI
UNO, EthernetA4 (SDA), A5 (SCL)
Mega256020 (SDA), 21 (SCL)
leonardo20 (SDA), 21 (SCL), SDA1, SCL1

A partir do Arduino 1.0, a biblioteca herda das funções Stream, tornando-a consistente com outras bibliotecas de leitura/gravação. Por causa disso, send()receive()foram substituídos por read()write().

Versões recentes da biblioteca Wire podem utilizar timeouts para evitar um travamento diante de determinados problemas no barramento, mas isso não está habilitado por padrão (ainda) nas versões atuais. Recomenda-se sempre habilitar esses tempos limite ao usar a biblioteca Wire. Consulte a função Wire.setWireTimeout para obter mais detalhes.

Nota: Existem versões de 7 e 8 bits de endereços I2C. 7 bits identificam o dispositivo e o oitavo bit determina se ele está sendo gravado ou lido. A biblioteca Wire usa endereços de 7 bits por toda parte. Se você tiver uma folha de dados ou código de amostra que usa endereço de 8 bits, você vai querer descartar o bit inferior (ou seja, mudar o valor um bit para a direita), resultando em um endereço entre 0 e 127. No entanto, os endereços de 0 a 7 não são usados ​​porque são reservados, então o primeiro endereço que pode ser usado é 8. Observe que um resistor pull-up é necessário ao conectar os pinos SDA/SCL. Consulte os exemplos para obter mais informações. A placa MEGA 2560 possui resistores pull-up nos pinos 20 e 21 onboard.

A implementação da biblioteca Wire usa um buffer de 32 bytes, portanto qualquer comunicação deve estar dentro desse limite. O excesso de bytes em uma única transmissão será descartado.

Para usar esta biblioteca:

#include <Wire.h>

Rolar para cima