zl程序教程

您现在的位置是:首页 >  硬件

当前栏目

Arduino驱动OLED显示文字

驱动 显示 文字 Arduino OLED
2023-09-11 14:19:58 时间

简介

OLED,即有机发光二极管( Organic Light Emitting Diode),OLED 由于同时具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快、可用于挠曲性面板、使用温度范围广、构造及制程较简单等优异之特性,被认为是下一代的平面显示器新兴应用技术。 LCD 都需要背光,而 OLED 不需要,因为它是自发光的。OLED屏具有多个控制指令,可以控制OLED的亮度、相比度、开关升压电路等指令。

主要硬件

OLED操作方便,功能丰富。可显示汉字、ASCLL、图案等。本次实验主要用于显示文字。
在这里插入图片描述

主要参数

1.高分辨率:128*64
2.超广可视角度:大于160°
3.超低功耗:正常显示时 0.06W
4.供电范围:直流3.3V-5V
5.通信方式:IIC
6. OLED屏幕内部驱动芯片:SSD1306

原理图

在这里插入图片描述

接线

OLEDArduino
VCC5V
GNDGND
SCLA5
SDAA4

文字取模

在这里插入图片描述
在这里插入图片描述

程序

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define OLED_RESET     4
Adafruit_SSD1306 display(128, 64, &Wire, OLED_RESET);

//取16X16汉字字模 逐行式 顺向高位在前
static const unsigned char PROGMEM you[]=
{
  0x08,0x90,0x08,0x88,0x08,0x88,0x10,0x80,0x17,0xFE,0x30,0xA0,0x30,0xA0,0x50,0xA0,
  0x90,0xA0,0x10,0xA0,0x11,0x20,0x11,0x22,0x11,0x22,0x12,0x22,0x12,0x1E,0x14,0x00};
/*"优"*/

static const unsigned char PROGMEM xin[] =
{
 0x08,0x40,0x08,0x20,0x0B,0xFE,0x10,0x00,0x10,0x00,0x31,0xFC,0x30,0x00,0x50,0x00,
 0x91,0xFC,0x10,0x00,0x10,0x00,0x11,0xFC,0x11,0x04,0x11,0x04,0x11,0xFC,0x11,0x04};
  /*"信",1*/

static const unsigned char PROGMEM dian[] =
{
  0x01,0x00,0x01,0x00,0x01,0x00,0x3F,0xF8,0x21,0x08,0x21,0x08,0x21,0x08,0x3F,0xF8,
  0x21,0x08,0x21,0x08,0x21,0x08,0x3F,0xF8,0x21,0x0A,0x01,0x02,0x01,0x02,0x00,0xFE};
 /*"电",2*/
static const unsigned char PROGMEM zi[] =
 {
  0x00,0x00,0x7F,0xF8,0x00,0x10,0x00,0x20,0x00,0x40,0x01,0x80,0x01,0x00,0xFF,0xFE,
  0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x05,0x00,0x02,0x00};
 /*"子",3*/
void setup() {
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  display.setTextColor(WHITE);//开像素点发光
  display.clearDisplay();//清屏

  display.setTextSize(1); //设置字体大小
  display.setCursor(35, 5);//设置显示位置
  display.println("-Arduino-");//输出字符

  display.drawBitmap(32, 32, you, 16, 16, 1); //画出字符对应点阵数据
  display.drawBitmap(48, 32, xin, 16, 16, 1); //画出字符对应点阵数据
  display.drawBitmap(64, 32, dian, 16, 16, 1); //画出字符对应点阵数据
  display.drawBitmap(80, 32, zi , 16, 16, 1); //画出字符对应点阵数据
  display.display();//开显示                

}

void loop() {

}

实验结果

在这里插入图片描述

总结

本次用到的取模软件,大家在取模前记得把格式改成正确的格式哦,避免取模失败,显示不出想要的结果呢。