Está en la página 1de 2

Cable

Esta biblioteca le permite comunicarse con dispositivos I2C/TWI. En las placas


Arduino con diseño R3 (pinout 1.0), SDA (línea de datos) y SCL (línea de reloj) están
en los encabezados de los pines cerca del pin AREF. El Arduino Due tiene dos
interfaces I2C/TWI, SDA1 y SCL1, que están cerca del pin AREF y la adicional está
en los pines 20 y 21.

Como referencia, la siguiente tabla muestra dónde se encuentran los pines TWI en
varias placas Arduino.

Junta Pines I2C/TWI

UNO, Ethernet A4 (SDA), A5 (SCL)

Mega2560 20 (SDA), 21 (SCL)

Leonardo 20 (SDA), 21 (SCL), SDA1, SCL1

A partir de Arduino 1.0, la biblioteca hereda de las funciones Stream, lo que la hace
consistente con otras bibliotecas de lectura/escritura. Debido a
esto, send()y receive()han sido reemplazados por read()y write().

Las versiones recientes de la biblioteca Wire pueden usar tiempos de espera para
evitar un bloqueo ante ciertos problemas en el bus, pero esto no está habilitado de
forma predeterminada (todavía) en las versiones actuales. Se recomienda habilitar
siempre estos tiempos de espera cuando se utiliza la biblioteca Wire. Consulte la
función Wire.setWireTimeout para obtener más detalles.

Nota: Existen versiones de direcciones I2C de 7 y 8 bits. 7 bits identifican el


dispositivo y el octavo bit determina si se está escribiendo o leyendo. La biblioteca
Wire utiliza direcciones de 7 bits en todas partes. Si tiene una hoja de datos o un
código de muestra que usa una dirección de 8 bits, querrá eliminar el bit bajo (es
decir, desplazar el valor un bit a la derecha), lo que producirá una dirección entre 0 y
127. Sin embargo, las direcciones de 0 a 7 no se usan porque están reservadas, por lo
que la primera dirección que se puede usar es 8. Tenga en cuenta que se necesita una
resistencia pull-up al conectar los pines SDA/SCL. Consulte los ejemplos para obtener
más información. La placa MEGA 2560 tiene resistencias pull-up en los pines 20 y 21
a bordo.
La implementación de la biblioteca Wire utiliza un búfer de 32 bytes, por lo
tanto, cualquier comunicación debe estar dentro de este límite. Los bytes
excedentes en una sola transmisión simplemente se eliminarán.

Para utilizar esta biblioteca:

#include <Wire.h>

Funciones

comenzar()
terminar()
requestFrom()
comenzarTransmisión()
endTransmission()
escribir()
disponible()
leer()
setClock()
onReceive()
onRequest
() setWireTimeout()
clearWireTimeoutFlag()
getWireTimeoutFlag()

También podría gustarte