oled1306

基于Arduino的oled1306调试(4线IIC),用于省实赛物流运送小车


1. 资料

​ 软件生成汉字,图片16进制数据链接:https://pan.baidu.com/s/10BYPIo9MSy8sn0Qadv6wyg 提取码:al2z

2.注意事项

  • stepone:设置字模软件参数,生成字符16进制代码(记得点击左下角的确认按键,保存设置)

oled1306_第1张图片

oled1306_第2张图片

  • steptwo:输入你想要的汉字字母或者数字,点击生成字模,复制代码文件

oled1306_第3张图片

  • 接线

oled1306_第4张图片

  • 不同的arduino板子的IIC引脚是不同的,注意接线要接对

oled1306_第5张图片

3. 代码实现

  • 示例一
/*
  OLED显示汉字
*/
#include 
#include 
#include 

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

//取16X16汉字字模 逐行式 顺向高位在前
static const unsigned char PROGMEM da[] =
{
  0x10,0x00,0x10,0x00,0x13,0xFE,0x10,0x20,0xFC,0x20,0x10,0x20,0x10,0x20,0x14,0x20,
  0x18,0x20,0x30,0x20,0xD0,0x20,0x10,0x20,0x10,0x20,0x10,0x20,0x50,0xA0,0x20,0x40
};

static const unsigned char PROGMEM kai[] =
{
  0x00,0x00,0x7F,0xFC,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0xFF,0xFE,
  0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x10,0x20,0x10,0x20,0x20,0x20,0x40,0x20
};
static const unsigned char PROGMEM yi[] =
{
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFE,
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};

static const unsigned char PROGMEM er[] =
{
  0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFE,0x00,0x00,0x00,0x00,0x00,0x00
};

static const unsigned char PROGMEM hao[] =
{
  0x00,0x00,0x1F,0xF0,0x10,0x10,0x10,0x10,0x10,0x10,0x1F,0xF0,0x00,0x00,0xFF,0xFE,
  0x08,0x00,0x10,0x00,0x1F,0xF0,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0xA0,0x00,0x40
};
static const unsigned char PROGMEM cang[] =
{
  0x01,0x00,0x01,0x00,0x02,0x80,0x04,0x40,0x08,0x20,0x30,0x18,0xC0,0x06,0x0F,0xE0,
  0x08,0x20,0x08,0x20,0x08,0xA0,0x08,0x44,0x08,0x04,0x08,0x04,0x07,0xFC,0x00,0x00
};
static const unsigned char PROGMEM men[] =
{
  0x20,0x00,0x13,0xFC,0x10,0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x40,0x04,
  0x40,0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x40,0x14,0x40,0x08
};


static const unsigned char PROGMEM yun[] =
{
0x00,0x00,0x23,0xF8,0x10,0x00,0x10,0x00,0x00,0x00,0x07,0xFC,0xF0,0x40,0x10,0x80,
0x11,0x10,0x12,0x08,0x17,0xFC,0x12,0x04,0x10,0x00,0x28,0x00,0x47,0xFE,0x00,0x00
};
static const unsigned char PROGMEM song[] =
{
0x02,0x08,0x21,0x08,0x11,0x10,0x17,0xFC,0x00,0x40,0x00,0x40,0xF0,0x40,0x17,0xFE,
0x10,0x40,0x10,0xA0,0x10,0x90,0x11,0x08,0x12,0x08,0x28,0x00,0x47,0xFE,0x00,0x00
};
static const unsigned char PROGMEM zhi[] =
{
0x00,0x00,0x7F,0xFC,0x02,0x00,0x04,0x00,0x08,0x20,0x10,0x10,0x3F,0xF8,0x00,0x08,
0x01,0x00,0x01,0x00,0x3F,0xF8,0x01,0x00,0x01,0x00,0x01,0x00,0xFF,0xFE,0x00,0x00
};
static const unsigned char PROGMEM di[] =
{
0x10,0x20,0x10,0x20,0x10,0x20,0x11,0x20,0x11,0x2C,0xFD,0x34,0x11,0x64,0x13,0xA4,
0x11,0x24,0x11,0x34,0x11,0x28,0x1D,0x22,0xE1,0x22,0x41,0x02,0x00,0xFE,0x00,0x00
};
static const unsigned char PROGMEM dian[] =
{
0x02,0x00,0x02,0x00,0x02,0x00,0x03,0xFC,0x02,0x00,0x02,0x00,0x3F,0xF0,0x20,0x10,
0x20,0x10,0x20,0x10,0x3F,0xF0,0x00,0x00,0x24,0x88,0x22,0x44,0x42,0x44,0x80,0x04
};



void setup() {
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  display.setTextColor(WHITE);//开像素点发光
  display.clearDisplay();//清屏

  display.setTextSize(1); //设置字体大小
  //display.setCursor(35, 5);//设置显示位置
  //display.println("-TonyCode-");//输出字符
  
  display.drawBitmap(1, 1, da, 16, 16, 1); //打开一号仓门
  display.drawBitmap(16, 1, kai, 16, 16, 1);
  display.drawBitmap(32, 1, yi, 16, 16, 1);
  display.drawBitmap(48, 1, hao, 16, 16, 1);
  display.drawBitmap(64, 1, cang, 16, 16, 1);
  display.drawBitmap(80, 1, men, 16, 16, 1);
  delay(2000);
  display.clearDisplay();//清屏
  display.drawBitmap(1, 1, da, 16, 16, 1); //打开二号仓门
  display.drawBitmap(16, 1, kai, 16, 16, 1);
  display.drawBitmap(32, 1,er, 16, 16, 1);
  display.drawBitmap(48, 1, hao, 16, 16, 1);
  display.drawBitmap(64, 1, cang, 16, 16, 1);
  display.drawBitmap(80, 1, men, 16, 16, 1);
  delay(2000);
  display.clearDisplay();//清屏
  display.drawBitmap(1, 1, yun, 16, 16, 1); //运送至地点一
  display.drawBitmap(16, 1, song, 16, 16, 1);
  display.drawBitmap(32, 1, zhi, 16, 16, 1);
  display.drawBitmap(48, 1, di, 16, 16, 1);
  display.drawBitmap(64, 1, dian, 16, 16, 1);
  display.drawBitmap(80, 1, yi, 16, 16, 1);
  delay(2000);
  display.clearDisplay();//清屏
  display.drawBitmap(1, 1, yun, 16, 16, 1); //运送至地点二
  display.drawBitmap(16, 1, song, 16, 16, 1);
  display.drawBitmap(32, 1, zhi, 16, 16, 1);
  display.drawBitmap(48, 1, di, 16, 16, 1);
  display.drawBitmap(64, 1, dian, 16, 16, 1);
  display.drawBitmap(80, 1, er, 16, 16, 1);
  delay(2000);


//  display.drawBitmap(48, 32, str2, 16, 16, 1); //画出字符对应点阵数据
//  display.drawBitmap(64, 32, str3, 16, 16, 1); //画出字符对应点阵数据
//  display.drawBitmap(80, 32, str4, 16, 16, 1); //画出字符对应点阵数据
  display.display();//开显示                

}

void loop() {

}

  • 示例二(本示例需要在同一文件夹下新建一个arduino工程文件以及一个text.h的字符文件)
//arudino部分
#include 
 
#include "text.h"
 
// 引入驱动OLED0.96所需的库
#include 
#include 
 
#define SCREEN_WIDTH 128 // 设置OLED宽度,单位:像素
#define SCREEN_HEIGHT 64 // 设置OLED高度,单位:像素
 
// 自定义重置引脚,虽然教程未使用,但却是Adafruit_SSD1306库文件所必需的
#define OLED_RESET 4
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
 
void setup()
{
    // 初始化OLED并设置其IIC地址为 0x3C
    display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
}
 
void loop()
{
  hans_display_1();
  hans_display_2();
  hans_display_3();
  hans_display_4();
}
 
void hans_display_1(void)//打开一号仓门
{
  display.clearDisplay();
  display.drawBitmap(1, 1, da, 16, 16, 1); 
  display.drawBitmap(16, 1, kai, 16, 16, 1);
  display.drawBitmap(32, 1, yi, 16, 16, 1);
  display.drawBitmap(48, 1, hao, 16, 16, 1);
  display.drawBitmap(64, 1, cang, 16, 16, 1);
  display.drawBitmap(80, 1, men, 16, 16, 1);
  //显示图形
  display.display();
  delay(3000);
}

void hans_display_2(void)//打开二号仓门
{
  display.clearDisplay();
  display.drawBitmap(1, 1, da, 16, 16, 1); 
  display.drawBitmap(16, 1, kai, 16, 16, 1);
  display.drawBitmap(32, 1, er, 16, 16, 1);
  display.drawBitmap(48, 1, hao, 16, 16, 1);
  display.drawBitmap(64, 1, cang, 16, 16, 1);
  display.drawBitmap(80, 1, men, 16, 16, 1);
  //显示图形
  display.display();
  delay(3000);
}
void hans_display_3(void)//运送到地点一
{
  display.clearDisplay();//清屏
  display.drawBitmap(1, 1, yun, 16, 16, 1); 
  display.drawBitmap(16, 1, song, 16, 16, 1);
  display.drawBitmap(32, 1, zhi, 16, 16, 1);
  display.drawBitmap(48, 1, di, 16, 16, 1);
  display.drawBitmap(64, 1, dian, 16, 16, 1);
  display.drawBitmap(80, 1, yi, 16, 16, 1);
  //显示图形
  display.display();
  delay(3000);
}
void hans_display_4(void)//运送到地点二
{
  display.clearDisplay();//清屏
  display.drawBitmap(1, 1, yun, 16, 16, 1); 
  display.drawBitmap(16, 1, song, 16, 16, 1);
  display.drawBitmap(32, 1, zhi, 16, 16, 1);
  display.drawBitmap(48, 1, di, 16, 16, 1);
  display.drawBitmap(64, 1, dian, 16, 16, 1);
  display.drawBitmap(80, 1, er, 16, 16, 1);
  //显示图形
  display.display();
  delay(3000);
}
//text.h文件部分
static const unsigned char PROGMEM da[] =
{
  0x10,0x00,0x10,0x00,0x13,0xFE,0x10,0x20,0xFC,0x20,0x10,0x20,0x10,0x20,0x14,0x20,
  0x18,0x20,0x30,0x20,0xD0,0x20,0x10,0x20,0x10,0x20,0x10,0x20,0x50,0xA0,0x20,0x40
};

static const unsigned char PROGMEM kai[] =
{
  0x00,0x00,0x7F,0xFC,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0xFF,0xFE,
  0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x10,0x20,0x10,0x20,0x20,0x20,0x40,0x20
};
static const unsigned char PROGMEM yi[] =
{
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFE,
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};

static const unsigned char PROGMEM er[] =
{
  0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFE,0x00,0x00,0x00,0x00,0x00,0x00
};

static const unsigned char PROGMEM hao[] =
{
  0x00,0x00,0x1F,0xF0,0x10,0x10,0x10,0x10,0x10,0x10,0x1F,0xF0,0x00,0x00,0xFF,0xFE,
  0x08,0x00,0x10,0x00,0x1F,0xF0,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0xA0,0x00,0x40
};
static const unsigned char PROGMEM cang[] =
{
  0x01,0x00,0x01,0x00,0x02,0x80,0x04,0x40,0x08,0x20,0x30,0x18,0xC0,0x06,0x0F,0xE0,
  0x08,0x20,0x08,0x20,0x08,0xA0,0x08,0x44,0x08,0x04,0x08,0x04,0x07,0xFC,0x00,0x00
};
static const unsigned char PROGMEM men[] =
{
  0x20,0x00,0x13,0xFC,0x10,0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x40,0x04,
  0x40,0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x40,0x14,0x40,0x08
};


static const unsigned char PROGMEM yun[] =
{
0x00,0x00,0x23,0xF8,0x10,0x00,0x10,0x00,0x00,0x00,0x07,0xFC,0xF0,0x40,0x10,0x80,
0x11,0x10,0x12,0x08,0x17,0xFC,0x12,0x04,0x10,0x00,0x28,0x00,0x47,0xFE,0x00,0x00
};
static const unsigned char PROGMEM song[] =
{
0x02,0x08,0x21,0x08,0x11,0x10,0x17,0xFC,0x00,0x40,0x00,0x40,0xF0,0x40,0x17,0xFE,
0x10,0x40,0x10,0xA0,0x10,0x90,0x11,0x08,0x12,0x08,0x28,0x00,0x47,0xFE,0x00,0x00
};
static const unsigned char PROGMEM zhi[] =
{
0x00,0x00,0x7F,0xFC,0x02,0x00,0x04,0x00,0x08,0x20,0x10,0x10,0x3F,0xF8,0x00,0x08,
0x01,0x00,0x01,0x00,0x3F,0xF8,0x01,0x00,0x01,0x00,0x01,0x00,0xFF,0xFE,0x00,0x00
};
static const unsigned char PROGMEM di[] =
{
0x10,0x20,0x10,0x20,0x10,0x20,0x11,0x20,0x11,0x2C,0xFD,0x34,0x11,0x64,0x13,0xA4,
0x11,0x24,0x11,0x34,0x11,0x28,0x1D,0x22,0xE1,0x22,0x41,0x02,0x00,0xFE,0x00,0x00
};
static const unsigned char PROGMEM dian[] =
{
0x02,0x00,0x02,0x00,0x02,0x00,0x03,0xFC,0x02,0x00,0x02,0x00,0x3F,0xF0,0x20,0x10,
0x20,0x10,0x20,0x10,0x3F,0xF0,0x00,0x00,0x24,0x88,0x22,0x44,0x42,0x44,0x80,0x04
};
  1. 比较推荐示例二
  2. 生成字符text.h文件要注意格式(注意有个逗号,我在这里卡住过)

oled1306_第6张图片

你可能感兴趣的:(单片机,嵌入式硬件)