0% found this document useful (0 votes)
193 views1 page

Wire Library

This library allows communication with I2C devices. It provides functions for initializing communication, transmitting and receiving data. The library works with I2C pins on Arduino boards which are shown in a table. It also notes that pull-up resistors may be needed and addresses use 7 bits.

Uploaded by

Lyndon Padama
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
193 views1 page

Wire Library

This library allows communication with I2C devices. It provides functions for initializing communication, transmitting and receiving data. The library works with I2C pins on Arduino boards which are shown in a table. It also notes that pull-up resistors may be needed and addresses use 7 bits.

Uploaded by

Lyndon Padama
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 1

SIGN IN

Reference Language | Libraries | Comparison | Changes

Wire Library
This library allows you to communicate with I2C / TWI devices.
Functions
On the Arduino boards with the R3 layout (1.0 pinout), the SDA - begin()
(data line) and SCL (clock line) are on the pin headers close to - requestFrom()

the AREF pin. The Arduino Due has two I2C / TWI interfaces - beginTransmission()
- endTransmission()
SDA1 and SCL1 are near to the AREF pin and the additional one
- write()
is on pins 20 and 21. - available()

As a reference the table below shows where TWI pins are - read()
- SetClock()
located on various Arduino boards.
- onReceive()
Board I2C / TWI pins
- onRequest()
Uno, Ethernet A4 (SDA), A5 (SCL)
Mega2560 20 (SDA), 21 (SCL)
Leonardo 2 (SDA), 3 (SCL)
Due 20 (SDA), 21 (SCL), SDA1, SCL1

As of Arduino 1.0, the library inherits from the Stream functions,


making it consistent with other read/write libraries. Because of
this, send() and receive() have been replaced with read() and
write().

Note

There are both 7- and 8-bit versions of I2C addresses. 7 bits


identify the device, and the eighth bit determines if it's being
written to or read from. The Wire library uses 7 bit addresses
throughout. If you have a datasheet or sample code that uses 8
bit address, you'll want to drop the low bit (i.e. shift the value
one bit to the right), yielding an address between 0 and 127.
However the addresses from 0 to 7 are not used because are
reserved so the first address that can be used is 8. Please note
that a pull-up resistor is needed when connecting SDA/SCL
pins. Please refer to the examples for more informations. MEGA
2560 board has pull-up resistors on pins 20 - 21 onboard.

The Wire library implementation uses a 32 byte buffer, therefore any communication
should be within this limit. Exceeding bytes in a single transmission will just be
dropped.

Examples
- Digital Potentiometer: Control an Analog Devices AD5171
Digital Potentiometer.
- Master Reader/Slave Writer: Program two Arduino boards to
communicate with one another in a Master Reader/Slave
Sender configuration via the I2C.
- Master Writer/Slave receiver:Program two Arduino boards
to communicate with one another in a Master Writer/Slave
Receiver configuration via the I2C.
- SFR Ranger Reader: Read an ultra-sonic range finder
interfaced via the I2C.
- Add SerCom : Adding mores Serial interfaces to SAMD
microcontrollers.

See also
- Master Writer
- Master Reader
- SFR Ranger Reader
- Digital Potentiometer

Reference Home

Corrections, suggestions, and new documentation should be posted to the Forum.

The text of the Arduino reference is licensed under a Creative Commons Attribution-
ShareAlike 3.0 License. Code samples in the reference are released into the public
domain.

Terms Of Service NEWSLETTER


Privacy Policy
ENTER YOUR EMAIL TO SIGN UP SUBSCRIBE

Contact Us
About Us
Distributors
Careers
Security

© 2019 Arduino

You might also like