Herramientas de usuario

Herramientas del sitio


desarrollo:edu-ciaa:edu-ciaa-nxp:python:bibliotecas:modulo-pyb-i2c

Soporte I2C Master: Clase I2C

Ejemplo lectura y escritura de una memoria tipo 24C04:

import pyb
print("Test I2C with AT24C04")

i2c = pyb.I2C(100000) #100Khz
i2c.slave_addr(0x50)

def writeByte(addr,value):
    data = bytearray()
    data.append(addr)
    data.append(value)
    i2c.write(data)


def readBytes(addr,size):
    data = bytearray()
    data.append(addr)    
    i2c.write(data)    
    return i2c.read(size)

writeByte(0x00,11)
pyb.delay(10)
writeByte(0x01,22)
pyb.delay(10)
writeByte(0x02,33)
pyb.delay(10)


data = readBytes(0x00,16)
print("[0]:"+str(data[0]))
print("[1]:"+str(data[1]))
print("[2]:"+str(data[2]))

El constructor de la clase I2C recibe como argumento la velocidad (100Khz o 400Khz) expresada en Hz: Luego de crear el objeto i2c, se ejecuta el método slave_addr mediante el cual se configura la dirección del dispositivo esclavo que se utilizará al leer y escribir datos por el bus. Puede cambiarse en cualquier momento.

Se podrá leer y escribir datos mediante el método write, el cual recibe un bytearray y el método read el cual recibe como argumento la cantidad de bytes a leer y devuelve un array de bytes con los datos leídos.

En el ejemplo se escriben dos funciones, para poder escribir un byte en la memoria y luego poder leer una cierta cantidad de bytes, siempre indicando la dirección.

desarrollo/edu-ciaa/edu-ciaa-nxp/python/bibliotecas/modulo-pyb-i2c.txt · Última modificación: 2016/10/09 12:35 por egigliotti

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki