ESP32 I2C屏幕

所选设备

ESP32ESP32 I2C屏幕_第1张图片
0.96OLED屏幕

OLED是很常用的电子元件,它体积小、接口简单、功耗低、显示 效果好,因此在DIY、创客制作、电子竞赛中得到广泛应用。

ESP32 I2C屏幕_第2张图片
接线说明

ESP32 OLED屏幕
GND GND
3.3v VCC
14 SCL
27 SDA

I2C是什么

I2C是two-wire serial protocol(双线串行通信协议,有 的地方也叫做Inter-integrated
circuit)的简称,它是嵌入式系统中最常用的接口之一。I2C只需要使用SDA和SCL两个信号线,就可以和其他带 有I2C接口的芯片连接,一个I2C总线上可以挂载多个芯片,因此可以减 少连线的数量。I2C接口的主要特点是信号线采用开漏连接方式以及支 持总线连接(UART 一般情况只能一对一连接),并且支持多个主机以及冲突管理机制。因为I2C和SPI都有独立的时钟信号,所以也叫做同步串行总线,数据传输速率也比UART快。

ESP32中的I2C用法

from machine import I2C,Pin
i2c = machine.I2C(scl,sda)
构建 I2C 对象。scl:时钟引脚;sda:数据引脚。
使用方法
i2c.scan()
扫描 I2C 总线的设备。返回地址,如:0x3c;
i2c.readfrom(addr,nbytes)
从指定地址读数据。addr:指定设备地址;nbytes:读取字节数;
i2c.write(buf)
写数据。buf:数据内容;
>>> from machine import I2C
>>> i2c = I2C(sda=Pin(27), scl=Pin(14))
>>> i2c.scan()
[60]
>>> # 60转成16进制就是0x3c
>>> i2c.readfrom(0x3c,2)
b'\x06\x06'
>>> i2c.readfrom(0x3c,5)
b'\x06\x06\x06\x06\x06'

示例代码

from machine import I2C,Pin
from ssd1306 import SSD1306_I2C #从 ssd1306 模块中导入 SSD1306_I2C 子模块
i2c = I2C(sda=Pin(27), scl=Pin(14))
#OLED 显示屏初始化:128*64 分辨率, I2C 地址是 0x3c
oled = SSD1306_I2C(128, 64, i2c, addr=0x3c)
oled.text("Hello python", 0, 0) #写入第 1 行内容
oled.text("ESP32 TEST", 0, 20) #写入第 2 行内容
oled.text("xianyuWorkshop", 0, 50) #写入第 3 行内容
oled.show() #OLED 执行显示

将uPy_lib文件中的ssd1306.py拖入device中才可以使用。
ESP32 I2C屏幕_第3张图片
效果
ESP32 I2C屏幕_第4张图片

你可能感兴趣的:(#,ESP32,单片机,fpga开发,嵌入式硬件)