Arduino框架下轻量级ssd1306 I2C屏幕驱动库

Posted perseverance52

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Arduino框架下轻量级ssd1306 I2C屏幕驱动库相关的知识,希望对你有一定的参考价值。

Arduino框架下轻量级ssd1306 I2C屏幕驱动库


OLED_I2C库

用于I2C的多平台库支持 128x32128x64像素的SSD1306 oled

  • 下载地址: http://www.rinkydinkelectronics.com/library.php?id=80

开发板型号支持

  • ESP8266
  • ESP32
  • avr
  • ARM
  • pic32

对于国内大部分玩家来说,基本都是前面4种的开发需求。

功能函数介绍

  • 公有类函数
		OLED(uint8_t data_pin, uint8_t sclk_pin, uint8_t rst_pin);
		OLED(uint8_t data_pin, uint8_t sclk_pin);
		boolean	begin(uint8_t dtype = SSD1306_128X64);
		void	update();
		void	setBrightness(uint8_t value);
		uint8_t	getDisplayHeight();
		void	clrScr();
		void	fillScr();
		void	invert(bool mode);
		void	rotateDisplay(bool rot);
		void	sleepMode(bool mode);
		void	setPixel(uint16_t x, uint16_t y);
		void	clrPixel(uint16_t x, uint16_t y);
		void	invPixel(uint16_t x, uint16_t y);
		void	invertText(bool mode);
		void	print(const char *st, int x, int y);
		void	print(String st, int x, int y);
		void	printNumI(long num, int x, int y, int length=0, char filler=' ');
		void	printNumF(double num, byte dec, int x, int y, char divider='.', int length=0, char filler=' ');
		void	setFont(uint8_t* font);
		void	drawBitmap(int x, int y, uint8_t* bitmap, int sx, int sy);
		void	drawLine(int x1, int y1, int x2, int y2);
		void	clrLine(int x1, int y1, int x2, int y2);
		void	drawRect(int x1, int y1, int x2, int y2);
		void	clrRect(int x1, int y1, int x2, int y2);
		void	drawRoundRect(int x1, int y1, int x2, int y2);
		void	clrRoundRect(int x1, int y1, int x2, int y2);
		void	drawCircle(int x, int y, int radius);
		void	clrCircle(int x, int y, int radius);

参考OLED_I2C库文件下的OLED_I2C.pdf文档

  • begin()//初始化函数

参数:
SSD1306_128X32:32
SSD1306_128X64:64


  • print(); printNumI() ; printNumF();//初始化函数

参数:
LEFT::0
RIGHT:9999
CENTER:9998


  • sleepMode()//初始化函数

参数:
SLEEP_ON:true
SLEEP_OFF:false

  • setFont()//初始化函数

参数:
TinyFont
SmallFont
MediumNumbers
BigNumbers

  • OLED(Data, Clock, [Reset]);//指定I2C引脚

参数:
Data: Pin for Data transfer
Clock: Pin for Clock signal
Reset: Pin for Reset <可选>


  • setBrightness(value);//设置亮度(0-255)

参数:
value: Specify a value to use for brightness (0-255)


  • getDisplayHeight();

无参数。

int y_pix = myOLED. getDisplayHeight(); // Get the height of the display in pixel

  • rotateDisplay(value);

参数: value:

true - Rotate the output to the display 180°
false – Disable display rotation


  • update();//显示更新函数
  • fillScr();//填充屏幕显示
  • invert(mode)//反色显示

参数:mode:

true - Invert the display
false – Normal display


图像绘制函数

  • setPixel(x, y);//画点
  • clrPixel(x, y); //清除指定点
  • invPixel(x, y);//指定点颜色取反
  • print(st, x, y); //字符串显示
  • printNumI(num, x, y[, length[, filler]]);
  • printNumF(num, dec, x, y[, divider[, length[, filler]]]);
  • invertText(mode);

如果使用了 print(), printNumI() and printNumF() 可以使用此函数来清除以上内容。

  • invertText(mode);
  • drawLine(x1, y1, x2, y2)//划线函数
  • clrLine(x1, y1, x2, y2)//画圆函数
  • drawRect(x1, y1, x2, y2);//画矩形
  • clrRect(x1, y1, x2, y2);//清除矩形区域内的显示
  • drawRoundRect(x1, y1, x2, y2); //绘制带圆角的矩形
  • clrRoundRect(x1, y1, x2, y2);//清除带圆角的矩形
  • drawCircle(x, y, radius);//绘制圆
  • clrCircle(x, y, radius); //清除圆内的显示
  • drawBitmap (x, y, data, sx, sy);//显示位图

以上是关于Arduino框架下轻量级ssd1306 I2C屏幕驱动库的主要内容,如果未能解决你的问题,请参考以下文章

Arduino STM32F103C8T6 驱动ssd1306 I2C oled

STM32F103C8T6在Arduino框架下驱动ssd1306 0.96“ IIC OLED显示

STM32 OLED屏(I2C接口)显示

Arduino ESP32 0.96OLED I2C屏幕驱动显示

ESP8266驱动SSD1306 ESP8266 for Arduino(NodeMCU U8G2库)

深入学习 OLED Adafruit_SSD1306库(8266+arduino)