## OLED显示 OLED - Organic Light Emitting Diode,有机电致发光二极管制成的显示屏是一种主动发光的显示器件,且视角宽(一般达170度)、响应速度快(几微妙到几十微妙的量级)、功耗低,并且可以使用低于5V的低电压驱动,小屏幕的OLED被广泛应用在各种电子产品在中,尤其是128*32、128*64的显示屏,曾在消费类的功能手机中,价格非常低廉,后被广泛应用于各种小型的设备、开发板以及创意的产品中。 采用单片机通过I2C或SPI串行总线来驱动单色的OLED几乎没有数据传输的瓶颈,即便采用8位的8051单片机来驱动128*64的显示屏,屏幕的刷新频率也可以达到很高。相对于另一种被广泛使用的、基于SPI总线的彩色LCD屏幕(一般为ST7789控制器),刷OLED要简单和流畅很多。 在教学、实验、创新项目中用得最多的是以SSD1306为驱动器的OLED屏幕,它支持如下的分辨率: * 96 x 16 * 64 x 48 * 128 x 32 * 128 x 64 {{ :oled12864.jpg |}}基于SSD1306分辨率为128*64的OLED模块 SH1106/SH1107也是比较常用的驱动芯片,其中SH1107支持128 x 128的分辨率 {{ :oled128128.jpg |}}基于SH1107分辨率为128*128的OLED模块 ### 1. 原理 ### 2. 电路连接 {{ :oled_connection.jpg |}} SPI接口的OLED显示屏连接方式 ### 3. MicroPython编程 - [[https://www.coderdojotc.org/micropython/oled/02-oled-setup/|OLED Setup]] - [[https://www.coderdojotc.org/micropython/oled/11-oled-ssd1306-i2c/|OLED SSD1306 I2C]] - [[https://www.coderdojotc.org/micropython/oled/12-oled-ssd1306-spi-v1/|OLED SSD1306 SPI V1]] - [[https://www.coderdojotc.org/micropython/oled/11-oled-ssd1306-spi/|OLED SSD1306 SPI V2]] - [[https://www.coderdojotc.org/micropython/oled/11-oled-sh1106-i2c/|OLED SH1106 I2C Example]] - [[https://www.coderdojotc.org/micropython/oled/10-oled-bounce/|OLED Bounce]] - [[https://www.coderdojotc.org/micropython/oled/12-oled-pot/|OLED Pot]] - [[https://www.coderdojotc.org/micropython/oled/11-oled-ping/|OLED Ping]] - [[https://www.coderdojotc.org/micropython/oled/11-pong/|OLED Pong]] - [[https://www.coderdojotc.org/micropython/oled/13-pixel-draw/|OLED Pixel Draw]] - [[https://www.coderdojotc.org/micropython/oled/15-oled-patterns/|OLED Patterns]] - [[https://www.coderdojotc.org/micropython/oled/14-random-hearts/|Random Hearts]] - [[https://www.coderdojotc.org/micropython/oled/40-oled-references/|OLED References]] - [[mp_oled|驱动SSD1306显示屏]] ### 4. Verilog编程 - [[oled12864_ssd1315|用Verilog驱动128*32 OLED显示屏]] - [[oled12864_verilog|用Verilog驱动128*64 OLED显示屏]] - [[oled_spi_verilog|OLED驱动说明及Verilog代码实例]] ### 5. 参考技术资料 [[https://esphome.io/components/display/index.html|ESPhome网站上与显示相关的技术资料及参考代码]]