You can connect and exchange data with a pair
of I2C devices.
Create a connection from the MATLAB software to
the Raspberry Pi board.
mypi =
Raspi with Properties:
DeviceAddress: 'raspberrypi-hysdu8X38o'
Port: 18725
BoardName: 'Raspberry Pi Model B Rev 2'
AvailableLEDs: {'led0'}
AvailableDigitalPins: [4 7 8 9 10 11 14 15 17 18 22 23 24 25 27 30 31]
AvailableSPIChannels: {}
AvailableI2CBuses: {'i2c-0' 'i2c-1'}
I2CBusSpeed: 100000
Supported peripherals
Redisplay AvailableI2CBuses
and I2CBusSpeed
.
ans =
1×2 cell array
{'i2c-0'} {'i2c-1'}
ans =
100000
Show the location of the I2C pins.
The pin map shows that, for this model and revision of the board,
the i2c-1
bus is available on the GPIO header pins I2C1_SDA
(GPIO 2)
and I2C1_SCL (GPIO 3)
.
After physically connecting your I2C device to the I2C
pins, get the addresses of I2C devices attached to the I2C bus, 'i2c-1'
.
ans =
1×2 cell array
{'0x55'} {'0x20'}
Create a connection, i2csensor
,
from the MATLAB software to the I2C sensor at '0x20'
.
i2csensor =
I2C with Properties:
Bus: i2c-1
I2CAddress: 0x20
Read two uint8 numbers from the sensor.
Read the value of register 14 from the sensor.
Create a connection, i2cdisplay
,
from the MATLAB software to the I2C LED display at '0x55'
.
i2cdisplay =
I2C with Properties:
Bus: i2c-1
I2CAddress: 0x55
Write characters to the display.
Write a scalar hexadecimal value, hex2dec('08')
,
to register 3 on an I2C device.
If you are not using I2C, disable I2C to free additional
GPIO pins.
Before using I2C again, enable I2C.
When you enable I2C, you can change the mypi.I2CBusSpeed
property.