精华内容
下载资源
问答
  • 2.42寸OLED显示屏模块SPI串口 12864液晶屏 显示屏器
  • 本设计分享的是128x64的OLED显示屏模块电路工程文件设计,见附件下载其原理图/PCB源文件及OLED库文件。该OLED显示屏的优点是其功耗低,可以说是最节能的液晶屏幕。128x64的OLED屏非常酷,该模块配备了最全面的软件...
  • stm32f103 OLED显示,stm32f103oled显示屏模块程序,C,C++源码
  • 里面有不同CPU程序调试代码,SSD1306OLED驱动芯片手册,还有OLED屏原理图
  • 1.5寸彩色OLED显示屏模块采用集成SSD135驱动的UG-2828GDEDF11为核心,采用底板+屏方式,通过FPC端子进行连接,方便更换。模块支持4种通讯方式(通过S1、S2焊盘修改):3-WireSPI、6800、8080 3.3V电源供电 多种通讯...
  • OLED显示屏内部驱动芯片SSD1306 管脚说明: GND:电源地 VCC:2.2V-5.5V SCL:CLK时钟(高电平2.2V-5.5V) SDA:MOSI数据(高电平2.2V-5.5V) RST:复位(高电平2.2V-5.5V) 单片机采用 3.3V 电压的接线模式: 单片机采用...
  • 主控为stm32f103 使用OLED屏显示
  • Aarduino OLED显示(实验1:HelloWord;实验2:贪吃蛇) STM32 OLED显示 资料手册 ASCII码表.pdf; GB2312简体中文编码表.pdf; GT20L16S1Y用户手册V35.pdf; SAS1-9046-B UG-2864HSWEG01-Univision.pdf; SSD1306-...
  • 这个显示器模块出厂默认的是SPI模式,所以只能用spi模式显示,如果想改成IIC的,需要焊接R1 R4 R8。 给Arduino写程序时一定要连着RESET,否则可能不显示。 接线如下 GND -------- 地 VDD -------- 3.3或者5v ...

    这个显示器模块出厂默认的是SPI模式,所以只能用spi模式显示,如果想改成IIC的,需要焊接R1 R4 R8。

    给Arduino写程序时一定要连着RESET,否则可能不显示。

    接线如下

    GND  --------  地

    VDD  --------  3.3或者5v

    SCK  --------  13

    SDA  --------  11

    RES  --------  RESET

    DC  --------  9

    CS  --------  10

     

    下面是Hello World 的例子

     

    #include "U8glib.h"
    /*SPI协议*/
    U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9 

    void setup()
    {
      if ( u8g.getMode() == U8G_MODE_R3G3B2 ) 
        u8g.setColorIndex(255);     // white
      else if ( u8g.getMode() == U8G_MODE_GRAY2BIT )
        u8g.setColorIndex(3);         // max intensity
      else if ( u8g.getMode() == U8G_MODE_BW )
        u8g.setColorIndex(1);         // pixel on

      // u8g.setFont(u8g_font_unifont);
      Serial.begin(9600);

      u8g.setFont(u8g_font_6x10);
      u8g.setFontRefHeightExtendedText();
      u8g.setDefaultForegroundColor();
      u8g.setFontPosTop();
    }

    void loop()
    {
      u8g.firstPage();  
      do {
        u8g.drawStr(0,0,"hello world!");
      } while( u8g.nextPage() );
      delay(500);
    }

    显示温湿度

    #include "U8glib.h"
    /*SPI协议*/
    U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9
    int n = 0;
    void setup() {
      if (u8g.getMode() == U8G_MODE_R3G3B2) u8g.setColorIndex(255); // white
      else if (u8g.getMode() == U8G_MODE_GRAY2BIT) u8g.setColorIndex(3); // max intensity
      else if (u8g.getMode() == U8G_MODE_BW) u8g.setColorIndex(1); // pixel on
      // u8g.setFont(u8g_font_unifont);
      Serial.begin(9600);
      u8g.setFont(u8g_font_6x10);
      u8g.setFontRefHeightExtendedText();
      u8g.setDefaultForegroundColor();
      u8g.setFontPosTop();
    }
    void draw(void) {
      u8g.setFont(u8g_font_8x13); //使用8x13大小的字符
      u8g.setPrintPos(0, 20); // 对应 x,y 轴值
      u8g.print("HUMI(%) :");
      u8g.setPrintPos(73, 20);
      u8g.print("50");
      u8g.setPrintPos(0, 40);
      u8g.print("TEMP(oC):");
      u8g.setPrintPos(73, 40);
      u8g.print("23");
    }
    void loop() {
      u8g.firstPage();
      do {
        draw();
      } while ( u8g.nextPage ());
      delay(1000);
      n = n + 1;
    }

     

    展开全文
  • 0.91寸spi接口OLED显示屏 12832液晶屏模块资料技术手册参考设计+DEMO软件例程: 0.91-14-SPEC QG-2832TLBFG02 VER A.pdf 0.91OLED_c51_IIC_例程.hex 0.91不带定位孔.jpg 0.91寸-SPI接口原理图.pdf 0.91白色14Pin.pdf ...
  • 0.96寸OLED显示屏12864液晶屏模块IIC接口+12864模块+提供原理图.zip
  • 里面全面地介绍了OLED液晶模块的使用,包括一些例子、专用的类库、以及取模软件等等。
  • 12864_SPI_OLED_STM32驱动 OLED显示驱动模块:SSD1306 四线SPI:SCL
  • 0.91寸OLED显示屏—12832液晶屏,驱动程序c51、stm32,数据手册
  • 61177+0.96寸+白色+OLED显示屏+128x64液晶屏模块+IIC+SPI接口送资料
  • DHT11温湿度模块数据读取,基于51单片机,0.96OLED显示屏显示
  • 基于arduino的oled显示屏的使用

    千次阅读 多人点赞 2020-04-01 20:36:29
    基于arduino的oled显示屏的使用 摘要 ​ OLED属于一种电流型的有机发光器件,是通过载流子的注入和复合而致发光的现象,发光强度与注入的电流成正比。...oled显示屏模块是每个Maker都会用到的显示器件...

    基于arduino的oled显示屏的使用

    摘要

    ​ OLED属于一种电流型的有机发光器件,是通过载流子的注入和复合而致发光的现象,发光强度与注入的电流成正比。OLED在电场的作用下,阳极产生的空穴和阴极产生的电子就会发生移动,分别向空穴传输层和电子传输层注入,迁移到发光层。当二者在发光层相遇时,产生能量激子,从而激发发光分子最终产生可见光。
    在这里插入图片描述
    oled显示屏模块是每个Maker都会用到的显示器件,然而OLED本身它是使用在我们生活中很多地方的。我们这里所说的就是OLED显示屏模块,它有双色和单色的,有128X64的,有128X32等不同规格。我们这里讲的是基于arduino的OLED库的基本的调用。
    在这里插入图片描述

    1.依赖的库

    Adafruit_GFX.h

    Adafruit_SSD1306.h

    ​ 如果使用的OLED模块是128X64像素,需要修改Adafruit_SSD1306.h头文件。具体操作:找到Adafruit_SSD1306.h文件并打开!
    PS:头文件不能直接使用arduino ide打开,需要使用文本编辑器打开,文本编辑器牵扯到文本编码,推荐使用editplus 或者Notepad进行修改。如果使用的是Visual studio,打开头文件就不需要找路径,选中直接右键选择打开头文件就好了。
    ​ 取消注释: #define SSD1306_128_64
    ​ 注释掉行:#define SSD1306_128_32

    2.库函数简介

    ​ Adafruit_SSD1306.h是基于Adafruit_GFX.h开发的库,扩展重写了一些方法,在使用中,我们主要使用部分函数来实现基础的使用,其中有两个库的函数方法,主要介绍的函数如下:

    display();//显示缓冲区图片
    clearDisplay();//清理缓冲区`
    
    drawPixel(X_POS, Y_POS, WHITE);  // 画点
    drawLine(X_POS, Y_POS,128, 64, WHITE);//画线
    drawRect(X_POS, Y_POS, width, height , WHITE); // 画一个矩形
    fillRect(X_POS, Y_POS, width, height, WHITE); // 画一个填充矩形
    drawCircle(X_POS, Y_POS, 10, WHITE); // 画一个居中半径为10的圆
    fillCircle(X_POS, Y_POS, 10, WHITE);// 画一个居中半径为10的填充圆
    fillRoundRect(X_POS, Y_POS, width, height, 14, WHITE);// 画一个带半径14圆角的填充矩形
    
    startscrollright(0x00, 0x0f);//屏幕旋转
    stopscroll();//屏幕旋转停止
    
    setTextSize(1);//设定字体大小
    setTextColor(WHITE);//设定字体颜色
    setCursor(0, 0);//设定起始点
    write(i);//字符显示,asii对应的字符
    println("Hello, world!"); // 文本显示
    
    drawBitmap(0, 0, logo_glcd_bmp_expendables[], HEIGHT, WIDTH, WHITE); // 显示一张图片
    
    invertDisplay(true); // 图形取反
    invertDisplay(false);// 取消图形取反

    3.硬件介绍

    ​ OLED模块是通过i2c与Arduino进行通讯的
    在这里插入图片描述

    //Arduino UNO--OLED
    //VCC --3.3v  接3.3v电源
    //GND--GND接地(GND)
    //SCL--A5时钟线
    //SDA--A4数据线

    4.显示的基本操作

    ​ step i.显示内容更新到缓冲区

    ​ step ii.调用display()方法显示

    ​ step iii.清理缓存(在不清理缓冲区的情况下写入,如果不是写整个屏幕,写的位置与原有缓冲区数据与运算,会出现图像叠加,除非你特此设计)

    5.示例

    i.制作一个进度条

    在这里插入图片描述

    void Draw_Init_Interface(void) {
        for (size_t i = 0; i < 46; i = i + 5)
        {
            display.clearDisplay();
            display.setTextSize(1);
            display.setTextColor(WHITE);
            display.setCursor(25, 20);
            display.println("Initialize...");
            display.drawRect(38, 38, 51, 6, WHITE);//以(38,38)为起点绘制一个长度51宽度为6的矩形
            display.drawLine(40, 40, 40 + i, 40, WHITE);//循环绘制线条达到显示进度的效果
            display.drawLine(40, 41, 40 + i, 41, WHITE);
            display.display();
            //delay(10);
            display.clearDisplay();
        }`
        display.display();
    }

    ii.显示文字

    在这里插入图片描述

    //显示字符,转换为ASCII
    
      display.setCursor(0,0);
    
      display.setTextSize(1);
      display.setTextColor(WHITE);
    
      for (uint8_t i=0; i < 168; i++) {
        if (i == '\n') continue;
        display.write(i);
        if ((i > 0) && (i % 21 == 0))
          display.println();
      }    
      display.display();
    
    // 显示字符串
      display.setTextSize(1);
      display.setTextColor(WHITE);
      display.setCursor(0,0);
      display.println("Hello, world!");
      display.setTextSize(2);
      display.println("Hello, world!");
      display.display();`
      delay(2000);`
    

    iii.显示图片(中文)

    在这里插入图片描述

    // 显示一张图片
    display.clearDisplay();
    display.drawBitmap(0, 0, logo_glcd_bmp_expendables, LOGO_GLCD_HEIGHT, LOGO_GLCD_WIDTH, WHITE);
    display.display();
    delay(2000);
    display.clearDisplay();

    6.取模工具的使用

    ​ i.图片取模

    ​ ii.字符取模

    图片和字符的取模请大家自行百度,这里免费为大家提供2款取模工具,需要的关注公众号“痴人听梦”
    在这里插入图片描述
    后台回复“取模工具”获取下载地址。

    7.预设画面

    ​ 实例创建后,调用begin方法启动器件,在begin方法中默认会写入splash图像,作为启动画面。
    在这里插入图片描述
    在这里插入图片描述
    此方法的具体代码:

    if(HEIGHT > 32) {
        drawBitmap((WIDTH - splash1_width) / 2, (HEIGHT - splash1_height) / 2,
          splash1_data, splash1_width, splash1_height, 1);
      } else {
        drawBitmap((WIDTH - splash2_width) / 2, (HEIGHT - splash2_height) / 2,
          splash2_data, splash2_width, splash2_height, 1);
      }

    ​ 在使用Adafruit_SSD1306库进行OLED使用的时候,可以自己设计好自己的预设画面,更新到splash.h头文件中,替换掉其中的splash1_data[],就可以将自己的预设画面作为启动画面了。需要注意的就是图画的长宽。库预设的是82X64的,如果你自己设计的是128X64的,也要记得改splash1_width和splash1_height这两个宏定义。

    完整示例代码如下:

    // Visual Micro is in vMicro>General>Tutorial Mode
    // 
    /*
        Name:       OlED_Display_Demo.ino
        Created:	2020/3/14 星期六 18:46:31
        Author:     DESKTOP-4JO134Q\Administrator
    */
    
    // Define User Types below here or use a .h file
    //
    #include <splash.h>
    #include <Wire.h>
    #include <Adafruit_GFX.h>
    #include <Adafruit_SSD1306.h>
    
    #define OLED_RESET -1
    Adafruit_SSD1306 display(OLED_RESET);
    
    #define NUMFLAKES 10
    #define XPOS 0
    #define YPOS 1
    #define DELTAY 2
    
    #define LOGO_GLCD_HEIGHT 128 //宏定义,定义图像的长,可根据自己的需要设置
    #define LOGO_GLCD_WIDTH  64 //宏定义,定义图像的宽
    
    static const unsigned char PROGMEM logo_glcd_bmp_expendables[] =
    {
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x20,0x00,0x20,0x00,0x80,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x60,0x00,0x30,0x00,0x80,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0xFF,0xFF,0xBF,0xFC,0xDF,0xFF,0xFF,0xFF,0xFF,0xF9,0xF0,0x00,0x00,
    0x00,0x00,0x00,0xFF,0xFF,0x3F,0xFC,0xCF,0xFF,0xFF,0xFF,0xFF,0xF9,0xF0,0x00,0x00,
    0x00,0x00,0x01,0xFF,0xFF,0x3F,0xFC,0xEF,0xFF,0xFF,0xFF,0xFF,0xF9,0xF0,0x00,0x00,
    0x00,0x00,0x03,0xFF,0xFF,0xBF,0xFC,0xF7,0xFF,0xFF,0xFF,0xFF,0xF9,0xF0,0x00,0x00,
    0x00,0x00,0x23,0xFF,0xFF,0xBF,0xFC,0xF7,0xFF,0xFF,0xFF,0xFF,0xF9,0xF0,0x00,0x00,
    0x00,0x00,0x60,0x00,0x1F,0x80,0x7C,0xF8,0x01,0xF8,0x07,0xE0,0xF9,0xF0,0x00,0x00,
    0x00,0x00,0x7F,0xFF,0xFF,0xFE,0x7C,0xFF,0xFD,0xF8,0x07,0xE0,0xF9,0xF0,0x00,0x00,
    0x00,0x00,0xFF,0xFF,0xFF,0xFE,0x7C,0xFF,0xFD,0xF8,0x17,0xE0,0xF9,0xF0,0x00,0x00,
    0x00,0x01,0xFF,0xFF,0xFF,0xFE,0x7C,0xFF,0xFD,0xF8,0x37,0xE0,0xF9,0xF0,0x00,0x00,
    0x00,0x01,0xFF,0xFF,0xFF,0xFE,0x7C,0xFF,0xFD,0xFF,0xF7,0xE0,0xF9,0xF0,0x00,0x00,
    0x00,0x03,0xFF,0xFF,0xFF,0xFE,0x7C,0xFF,0xFD,0xFF,0xF7,0xE0,0xF9,0xF0,0x00,0x00,
    0x00,0x00,0x00,0x7C,0x1F,0x3E,0x7C,0x00,0xFD,0xFF,0xF7,0xE0,0xF9,0xF0,0x00,0x00,
    0x00,0x00,0x00,0x7F,0xFF,0xBE,0x7C,0x00,0xFD,0xFF,0xF7,0xE0,0xF9,0xF0,0x00,0x00,
    0x00,0x00,0x00,0x7F,0xFF,0xBE,0x7C,0xFF,0xFD,0xFF,0xF7,0xE8,0xF9,0xF0,0x00,0x00,
    0x00,0x00,0x00,0x7F,0xFF,0xBE,0x7C,0xFF,0xFD,0xF8,0x07,0xEB,0xF9,0xF0,0x00,0x00,
    0x00,0x00,0x00,0x7F,0xFF,0xBE,0x7C,0xFF,0xFD,0xF8,0x07,0xEF,0xF9,0xF0,0x00,0x00,
    0x00,0x00,0x00,0x7F,0xFF,0xBE,0x7C,0xFF,0xFD,0xF8,0x07,0xEF,0xF1,0xF0,0x00,0x00,
    0x00,0x00,0x00,0x7C,0x1F,0xBE,0x7C,0xFF,0xFD,0xF8,0x07,0xEF,0xE3,0xF8,0x00,0x00,
    0x00,0x00,0x00,0x7F,0xFF,0xBE,0x7C,0x00,0xFD,0xFE,0x07,0xEF,0xCF,0xFC,0x00,0x00,
    0x00,0x00,0x00,0x7F,0xFF,0xBF,0x7C,0x00,0xFC,0xFF,0x07,0xEF,0x1F,0xFF,0x00,0x00,
    0x00,0x00,0x00,0x7F,0xFF,0x3F,0xFC,0x01,0xF8,0x7F,0xC7,0xEE,0x3F,0xFF,0x80,0x00,
    0x00,0x00,0x00,0x7F,0xFF,0xBF,0xFC,0x03,0xF8,0x3F,0xE7,0xEC,0xFF,0xBF,0xE2,0x00,
    0x00,0x00,0x02,0x7F,0xFF,0x9F,0xF8,0x03,0xF0,0x0F,0xF7,0xE1,0xFE,0x1F,0xF2,0x00,
    0x00,0x00,0x06,0x7C,0x1F,0x8F,0xF8,0x07,0xE0,0x07,0xF7,0xE7,0xFC,0x07,0xFA,0x00,
    0x00,0x00,0x06,0x7E,0x1F,0x87,0xF8,0x0F,0xC0,0x01,0xF7,0xEF,0xF8,0x03,0xFE,0x00,
    0x00,0x00,0x0F,0xFF,0xFF,0x87,0xFC,0x0F,0xC0,0x00,0xF3,0xEF,0xE0,0x00,0xFE,0x00,
    0x00,0x00,0x1F,0xFF,0xFF,0x8F,0xFE,0x1F,0x80,0x00,0x33,0xEF,0xC0,0x00,0x7E,0x00,
    0x00,0x00,0x1F,0xFF,0xFF,0x8F,0xFC,0xBF,0x80,0x00,0x13,0xEF,0x80,0x00,0x34,0x00,
    0x00,0x00,0x3F,0xFF,0xFF,0x9F,0xBC,0xFF,0x00,0x00,0x03,0xEE,0x00,0x00,0x0C,0x00,
    0x00,0x00,0x20,0xFF,0xFF,0xBF,0x9C,0xFE,0x00,0x00,0x03,0xEC,0x00,0x00,0x04,0x00,
    0x00,0x00,0x00,0x00,0x1F,0x3F,0x0C,0xFE,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x1F,0xFE,0x00,0xFC,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x1F,0xFE,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x1F,0xFC,0x00,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x1F,0xF8,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x1F,0xF0,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x1F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x1F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x1F,0xC2,0xED,0x7C,0xF6,0x6B,0x18,0xF9,0x07,0xDE,0x00,0x00,
    0x00,0x00,0x00,0x00,0x1F,0xC3,0x07,0x66,0x83,0x69,0x9C,0xCD,0x04,0x32,0x00,0x00,
    0x00,0x00,0x00,0x00,0x1F,0x83,0x63,0x66,0xA1,0x68,0x94,0xC9,0x05,0xB8,0x00,0x00,
    0x00,0x00,0x00,0x00,0x1F,0x02,0xE6,0x7C,0xB7,0xE8,0xB6,0xD9,0x05,0x9E,0x00,0x00,
    0x00,0x00,0x00,0x00,0x1F,0x03,0x07,0x61,0x86,0xA8,0xBE,0x4D,0x0C,0x23,0x00,0x00,
    0x00,0x00,0x00,0x00,0x1E,0x03,0x65,0x61,0xA6,0x49,0xA2,0xC9,0x25,0xB2,0x00,0x00,
    0x00,0x00,0x00,0x00,0x1C,0x00,0x6D,0x20,0x36,0x6B,0x23,0x79,0x61,0xD4,0x00,0x00,
    0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x10,0x00,0x03,0x02,0x12,0x24,0x0A,0x05,0x10,0x80,0x00,0x00,
    0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xA0,0x41,0x20,0x48,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    };//敢死队图片
    
    
    static const unsigned char PROGMEM char_128_64_glcd_bmp_ZH_xin[] =
    {
    0x00, 0x00, 0x0C, 0x60, 0x0C, 0x30, 0x18, 0x7F, 0x1F, 0xC0, 0x38, 0x38, 0x79, 0xE0, 0xD8, 0x38,
    0x19, 0xE0, 0x18, 0x38, 0x19, 0xF8, 0x19, 0x98, 0x19, 0xF8, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, //"信", 0
    };
    
    static const unsigned char PROGMEM char_128_64_glcd_bmp_ZH_xi[] =
    {
    0x01, 0x80, 0x03, 0x00, 0x07, 0xE0, 0x0C, 0x60, 0x0F, 0xE0, 0x0C, 0x60, 0x0F, 0xE0, 0x0C, 0x60,
    0x0F, 0xE0, 0x00, 0x0E, 0x3D, 0x83, 0x3C, 0xF0, 0x66, 0x18, 0x03, 0xFC, 0x00, 0x00, 0x00, 0x00, //"息", 1
    };
    static const unsigned char PROGMEM char_128_64_glcd_bmp_ZH_xian[] =
    {
    0x00, 0x00, 0x01, 0xF0, 0x1F, 0x30, 0x19, 0xF0, 0x0F, 0x30, 0x0D, 0xE0, 0x0F, 0x00, 0x06, 0xD8,
    0x06, 0xD8, 0x36, 0xF0, 0x1E, 0xE0, 0x06, 0xC0, 0x07, 0xFE, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, //"显", 2
    };
    
    static const unsigned char PROGMEM char_128_64_glcd_bmp_ZH_shi[] =
    {
    0x00, 0x00, 0x00, 0x70, 0x0F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x7F, 0x80, 0x01, 0x80,
    0x19, 0xB0, 0x19, 0x9C, 0x39, 0x8C, 0x31, 0x80, 0x03, 0x80, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, //"示", 3
    };
    
    #if (SSD1306_LCDHEIGHT != 64)
    #error("Height incorrect, please fix Adafruit_SSD1306.h!");
    #endif
    
    void Draw_Init_Interface(void) {
        for (size_t i = 0; i < 46; i = i + 5)
        {
            display.clearDisplay();
            display.setTextSize(1);
            display.setTextColor(WHITE);
            display.setCursor(25, 20);
            display.println("Initialize...");
            display.drawRect(38, 38, 51, 6, WHITE);
            display.drawLine(40, 40, 40 + i, 40, WHITE);
            display.drawLine(40, 41, 40 + i, 41, WHITE);
            display.display();
            //delay(10);
            display.clearDisplay();
        }
        display.display();
    }
    
    // The setup() function runs once each time the micro-controller starts
    void setup()
    {
        // 初始化串口
        Serial.begin(115200);
        //启动OLED
        display.begin(SSD1306_SWITCHCAPVCC, 0x3C);  // initialize with the I2C addr 0x3D (for the 128x64)
        display.display(); // 屏幕显示(显示内容为预设画面)
        delay(2000);
        display.clearDisplay();   //清理屏幕和缓存区(I2C只清理缓存区)
        Draw_Init_Interface();
        display.clearDisplay();  //清理屏幕和缓存区(I2C只清理缓存区)
        Serial.println("Display Initialize Finish");
    
        // 画点
        display.drawPixel(64, 32, WHITE);
        display.display();
        delay(2000);
        display.clearDisplay();
        
        //画线
        display.drawLine(0, 0, 128, 64, WHITE);
        display.display();
        delay(2000);
        display.clearDisplay();
        
        // 画一个矩形
        display.drawRect(0, 0, display.width(), display.height() , WHITE);
        display.display();
        delay(2000);
        display.clearDisplay();
        
        // 画一个填充矩形
        display.fillRect(0, 0, display.width(), display.height(), WHITE);
        display.display();
        delay(2000);
        display.clearDisplay();
        
        // 画一个居中半径为10的圆
        display.drawCircle(display.width() / 2, display.height() / 2, 10, WHITE);
        display.display();
        delay(2000);
        display.clearDisplay();
        
        // 画一个居中半径为10的填充圆
        display.fillCircle(display.width() / 2, display.height() / 2, 10, WHITE);
        display.display();
        delay(2000);
        display.clearDisplay();
        
        // 画一个带半径14圆角的填充矩形
        display.fillRoundRect(0, 0, display.width(), display.height(), display.height() / 4, WHITE);
        display.display();
        delay(2000);
        display.clearDisplay();
    
        //字符显示
        display.setTextSize(1);
        display.setTextColor(WHITE);
        display.setCursor(0, 0);
        
        for (uint8_t i = 0; i < 168; i++) {
            if (i == '\n') continue;
            display.write(i);
            if ((i > 0) && (i % 21 == 0))
                display.println();
        }
        display.display();
        delay(2000);
        display.clearDisplay();
        
        //屏幕旋转
        display.startscrollright(0x00, 0x0f);
        delay(2000);
        //屏幕旋转停止
        display.stopscroll();
        display.clearDisplay();
        
        // 文本显示
        display.setTextSize(1);
        display.setTextColor(WHITE);
        display.setCursor(0, 0);
        display.println("Hello, world!");
        display.setTextColor(BLACK, WHITE); // 'inverted' text
        display.println(3.141592);
        display.setTextSize(2);
        display.setTextColor(WHITE);
        display.print("0x"); display.println(0xDEADBEEF, HEX);
        display.display();
    
        // 显示一张图片
        display.clearDisplay();
        display.drawBitmap(0, 0, logo_glcd_bmp_expendables, LOGO_GLCD_HEIGHT, LOGO_GLCD_WIDTH, WHITE);
        display.display();
        delay(2000);
        display.clearDisplay();
        
        // 图形取反
        display.invertDisplay(true);
        delay(2000);
        display.invertDisplay(false);
        delay(2000);
        
        //显示汉字
        display.clearDisplay();
        display.drawBitmap(0, 0, char_128_64_glcd_bmp_ZH_xin, LOGO16_GLCD_HEIGHT, LOGO16_GLCD_WIDTH, WHITE);
        display.drawBitmap(16, 0, char_128_64_glcd_bmp_ZH_xi, LOGO16_GLCD_HEIGHT, LOGO16_GLCD_WIDTH, WHITE);
        display.drawBitmap(32, 0, char_128_64_glcd_bmp_ZH_xian, LOGO16_GLCD_HEIGHT, LOGO16_GLCD_WIDTH, WHITE);
        display.drawBitmap(48, 0, char_128_64_glcd_bmp_ZH_shi, LOGO16_GLCD_HEIGHT, LOGO16_GLCD_WIDTH, WHITE);
        display.display();
        delay(2000);
        display.clearDisplay(); 
    }
    // Add the main program code into the continuous loop() function
    void loop()
    {
        
    }
    展开全文
  • 0.96OLED显示屏资料.zip

    2020-01-03 22:38:34
    此资源是OLED显示屏的显示资料,是嵌入式开发以及OLED模块的使用方法的资料,希望能帮助你们!,里面有程序源码和取模设置等相关的资料和软件
  • 树莓派在 OLED 显示屏上输出文字

    千次阅读 2019-06-19 12:13:00
    OLED显示屏模块,IIC接口,128*32点阵,驱动芯片SSD1306(购买链接) 树莓派 3 Model B+,有外接显示屏、鼠标(如果没有可以用个人电脑连接树莓派,Mac 系统的可点击参考《Mac 通过 VNC 打开树莓派远程桌面(不用...

    本文记录如何用树莓派和下图的显示屏展示内容。

    用到的设备:

    连接设备

     

    如上图所示,这个 OLED 有五个 Pin,和树莓派引脚分别对映如下:

    OLED Pin树莓派 GPIO Pin (Board 编码)备注
    3.3v1 或 173.3 v
    GND6 或 9/14/20/25/30/34/39Ground
    SCL5I2C SCL
    SDA3I2C SCA
    RES可以不连Reset,我的代码中没有用到这个

    市面上大多数 OLED 有4个或6个 Pin,连接方式略有不同,4个的少一个 RES,其他都一样,如下图。

    Enable I2C Interface

    有两种方式:

    1. 树莓派终端中执行 sudo raspi-config ,选择 Interfacing Options > I2C ,出现如下界面,确认后重启。

    2. 桌面版树莓派可点击桌面左上角菜单键,再选择“首选项/Preferences" > "Raspberry Pi Configuration",然后再弹出的窗口中选择 Interfaces 标签,I2C 选项中选择 Enable,如下图。

    树莓派环境准备

    根据参考资料【1】中的提示,我检查了所有需要安装的基本库,基本上都是最新版本的,只下载了其中一个叫 python-smbus 的库。

    安装可以进行在 Python 2.7 或 Python 3 里,推荐使用 Python 3。

    Python 3 的可以执行下面的一系列命令进行自查:

    sudo apt install -y python3-dev
    sudo apt install -y python-imaging python-smbus i2c-tools
    sudo apt install -y python3-pil
    sudo apt install -y python3-pip
    sudo apt install -y python3-setuptools
    sudo apt install -y python3-rpi.gpio

    Python 2.7 的:

    sudo apt install -y python-dev
    sudo apt install -y python-imaging python-smbus i2c-tools
    sudo apt install -y python-pil
    sudo apt install -y python-pip
    sudo apt install -y python-setuptools 

    树莓派下载安装 SSD1306 屏幕驱动库

    有很多开源的 SSD1306 屏幕驱动库,我使用的是 Adafruit 的 Python 库,可以用于 128x32 和 128x64 的显示屏。地址是:https://github.com/adafruit/Adafruit_Python_SSD1306

    下载安装方式有两种:

    1. 直接从 gitHub 上 clone 到本地
      • git clone https://github.com/adafruit/Adafruit_Python_SSD1306.git
      • cd Adafruit_Python_SSD1306
      •  Python 3 下: sudo python3 setup.py install ;Python 2 下:sudo python setup.py install
    2. 用 pip 下载
      • sudo pip install Adafruit-SSD1306

    我用到是第一种下载安装方式。

    测试代码

    下载的 Python 库中有很多现成的例子,在 examples 文件夹中。终端进入该文件夹下,执行 python shapes.py 或 python3 shapes.py 显示屏会显示如下界面:

    还有别的例子都可以尝试一下。

    其中有一个 buttons.py 例子可以配合按键一起测试。我就拿了四个轻触四脚按键测试了一下,代码中显示可以用七个按钮控制。

    先展示一下效果:

    具体操作如下:

    用编辑器打开 buttons.py,观察代码,如下图,

    可以猜出 L, R, C, U, D 分别表示 Left, Right, Center, Up, Down,因为我只有四个按钮,我就只连接了上下左右这四个按钮,按照代码中给的 BCM 号连接上对应的 GPIO 引脚,效果如下图。

    同时参考所有给出的例子,你就实现按钮等元件控制显示内容等效果。

    在显示屏上显示文字

    在 shapes.py 文件中有关于显示字母的例子,我们可以在这个代码上进行修改。

    原代码内容:

    # Load default font.
    font = ImageFont.load_default()
    
    # Alternatively load a TTF font.  Make sure the .ttf font file is in the same directory as the python script!
    # Some other nice fonts to try: http://www.dafont.com/bitmap.php
    #font = ImageFont.truetype('Minecraftia.ttf', 8)

    想要显示中文,就需要下载中文的字体,有很多免费网站可以下载到,需要是 ttf 文件。我下载了一个楷体的 ttf,然后需要将这个 ttf 文件和代码放在同一路径下(如果不同路径,代码中的路径需要修改正确),修改代码如下:

    # Load default font.
    #font = ImageFont.load_default()
    
    # Alternatively load a TTF font.  Make sure the .ttf font file is in the same directory as the python script!
    # Some other nice fonts to try: http://www.dafont.com/bitmap.php
    font = ImageFont.truetype('Kaiti.ttf', 30)

    展示文字的代码可以是 draw.text((x,top), u'测试', font=font, fill=255) ,运行结果如下。

    完整的参考代码:(第二行如果不定义 utf-8,可能会报错)

    #!/usr/bin/python 
    # -*- coding: utf-8 -*-
    
    import RPi.GPIO as GPIO
    
    import time
    
    import Adafruit_GPIO.SPI as SPI
    import Adafruit_SSD1306
    
    from PIL import Image
    from PIL import ImageDraw
    from PIL import ImageFont
    
    # Raspberry Pi pin configuration:
    RST = 24
    # 128x32 display with hardware I2C:
    disp = Adafruit_SSD1306.SSD1306_128_32(rst=RST)
    
    # Initialize library.
    disp.begin()
    
    # Clear display.
    disp.clear()
    disp.display()
    
    # Create blank image for drawing.
    # Make sure to create image with mode '1' for 1-bit color.
    width = disp.width
    height = disp.height
    image = Image.new('1', (width, height))
    
    # Get drawing object to draw on image.
    draw = ImageDraw.Draw(image)
    
    # Load default font.
    #font = ImageFont.load_default()
    
    # Alternatively load a TTF font.  Make sure the .ttf font file is in the same directory as the python script!
    # Some other nice fonts to try: http://www.dafont.com/bitmap.php
    font = ImageFont.truetype('kaiti.ttf', 30)
    
    # First define some constants to allow easy resizing of shapes.
    padding = 0
    top = padding
    bottom = height-padding
    
    # Move left to right keeping track of the current x position for drawing shapes.
    # 增加 x 值可以将文字向右移动
    x = 0
    
    draw.text((x, top), u'测试', font=font, fill=255) # 字段前加 u 表示是文字
    disp.image(image)
    disp.display()

    我的相关文章

    1. 树莓派上使用 LCD1602 显示状态
    2. Python 控制树莓派 GPIO 输出:控制 LED 灯
    3. 树莓派中添加中文输入法
    4. Mac 通过 VNC 打开树莓派远程桌面(不用独立显示屏)
    5. 用 Mac 给树莓派重装系统
    6. 树莓派的系统安装,并且利用网线直连 Mac 进行配置

    参考资料

    1. 《Using an I2C OLED Display Module with the Raspberry Pi》
    2. 《Enable I2C Interface on the Raspberry Pi》

    转载于:https://www.cnblogs.com/zhenqichai/p/I2C-OLED-display-module-and-raspberry-pi.html

    展开全文
  • OLED显示模块OLED显示屏+PCB+铁框构成。 OLED显示屏是指有机电激发光二极管(OrganicLight-EmittingDiode,OLED)由于同时具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快、可用于挠曲性面板、...

    1)什么是OLED显示模块:
    OLED显示模块为OLED显示屏+PCB+铁框构成。
    在这里插入图片描述在这里插入图片描述
    OLED显示屏是指有机电激发光二极管(OrganicLight-EmittingDiode,OLED)由于同时具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快、可用于挠曲性面板、使用温度范围广、构造及制程较简单等优异之特性,被认为是下一代的平面显示器新兴应用技术。

    2)OLED显示模块特点:
    OLED为自发光材料,不需用到背光板,同时视角广、画质均匀、反应速度快、较易彩色化、用简单驱动电路即可达到发光、制程简单、可制作成挠曲式面板,符合轻薄短小的原则,应用范围属于中小尺寸面板。
      显示方面:主动发光、视角范围大;响应速度快,图像稳定;亮度高、色彩丰富、分辨率高。
      工作条件:驱动电压低、能耗低,可与太阳能电池、集成电路等相匹配。
      适应性广:采用玻璃衬底可实现大面积平板显示;如用柔性材料做衬底,能制成可折叠的显示器。由于OLED是全固态、非真空器件,具有抗震荡、耐低温(-40℃)等特性,在军事方面也有十分重要的应用,如用作坦克、飞机等现代化武器的显示终端。
    OLED显示模块较OLED显示屏优势在于便于安装,应用场合主要是工业现场,军工行业,地质勘探,石油煤炭勘探等行业。

    3)OLED显示模块使用注意事项

    a) 编程方面:☆避免或减少固定画面显示;
    ☆多上下、左右滚动等动态显示;
    ☆在没有信息输入、输出时,采用低亮度动画屏保显示或不显示

    b) 安装方面:☆ 装机时面板应保持平整,OLED 屏的 PCB 板安装孔在固定时避免受力不均匀,导致
    ☆PCB 板扭曲变形,导致 OLED 屏损坏。模块必须避免剧烈震动、冲击、挤压和从高 处掉落。
    ☆ OLED 模块避免扭动,拆卸金属钮角。
    ☆ OLED 模块避免在印有线路的工作平台上操作。

    c)清洗方面:在清理 OLED 屏表面时,请使用带溶剂(建议如下)的软布,轻轻擦拭。
    ☆ 异丙醇
    ☆ 乙醇
    ☆ 不要用干燥或者比较硬的材料擦拭,否则很容易损坏屏表面。
    以下溶剂请不要使用:
    ☆ 水
    ☆ 酮
    ☆ 芳烃

    d)严防静电
    在打开电源之前,请不要输入任何信号,清达光电推荐以下措施:
    ☆ 在装配 OLED 模块前,请不要将其从包装袋中取出,OLED 模块所使用的包装袋是
    经过防静电处理的特殊包装袋,在储存模块时也要带有包装袋储存,或者放在能充分
    接地的容器中储存。
    ☆ 操作 OLED 模块时,要始终保持操作人充分接地,使人体和模块保持同一电位。
    ☆ 在操作过程中所需的设备要充分接地,尤其是驱动器,必须良好接地,没有漏电,以
    避免干扰。
    ☆ OLED 模块表面都有一层保护膜,目的在于避免造成屏被划伤,沾染污渍等,请慢慢
    揭去 OLED 模块保护膜,如果快速揭去保护膜都将产生静电。
    ☆ 注意厂房的湿度:厂房湿度范围: 50~60%RH。

    e)电流保护装置
    OLED 模块上没有装电流保护装置,因此,在使用时应预备好电流保护装置

    f)焊接注意事项
    ☆ OLED 模块上只有输入/输出连线处可以焊接。
    ☆ 焊接所需的烙铁必须绝缘。
    ☆ 焊接条件:
    电烙铁的温度:280 ±10 ℃ ℃
    焊接时间:﹤3-4S
    焊接材料:低熔点,可充分熔化的焊锡
    为了避免 OLED 模块污染,应在焊接完成后再揭去 OLED 模块的保护膜。

    g)包装与存储 设计时要注意遮光,以免因透光而影响 OLED 的显示效果。由于 OLED 器件里的有机材料对水汽和氧气比较敏感,为了延长 OLED 的寿命,需要长时间储存时应遵循以下原则:
    ☆ 尽可能使用出厂时的原包装。
    ☆ 储存散装的 OLED 模块时,应先装入防静电袋,封口严密并真空包装。
    ☆ 为防止模块性能退化,不要暴露在高湿温环境对它直接操作或存储。
    ☆ 应保持低于 60%湿度的环境下,最佳储存温度范围为:0℃~35℃
    ☆ 不允许任何东西接触到 OLED 屏表面。

    各位客户在使用我们模块的过程中有任何疑问,请与我们取得联系清达液晶刘经理 13701081790 微信同手机号,QQ 453189731。

    展开全文
  • gps显示器 具有Wemos 1'3英寸OLED显示屏和GPS模块的GPS显示器
  • 单片机控制OLED12864显示屏模块化编程,实验效果请查看腾讯视频:https://v.qq.com/x/page/g3240xbfvbj.html 【备注】该程序由作者根据SSD1306的手册(datasheet)一字一句敲键盘所得,做了大量实验,花费时间精力...
  • 0.96寸OLED12864显示屏模块ALTIUM设计硬件原理图+PCB文件+C51和STM32驱动程序,硬件采用2层板设计,板子大小为35x34mm,双面布局布线,包括完整的原理图和PCB文件,可以用Altium Designer(AD)软件打开或修改,可作为...
  • 基于SSD1306的0.49寸OLED液晶屏模块驱动程序, 涵盖引脚电路和驱动程序。
  • 中景园电子1.3寸OLED-6PIN SPI显示屏模块原理图,亲测可用。SPI模式下只需要贴R6下拉的这颗电阻
  • OLED显示屏 ...本次使用的是一块0.96寸的OLED模块分辨率为128x64,SSD1306驱动芯片,I2C通信接口,实现OLED显示屏显示文字。 1、硬件准备 Arduino UNO 开发板一块 杜邦线若干、数据线一条 数据线一
  • stm32f103c8t6控制0.96寸4针OLED显示屏 IIC 蓝色,IIC本人测过效果不是很好,但是接线简单,占用IO口少
  • (STM32)0.96寸OLED显示屏,基于SPI通信方式, 12864_SPI_OLED_STM32驱动 OLED显示驱动模块:SSD1306 四线SPI:SCL,SDA,REST,D/C 对应接口:PA5,PA7,PA12,PA11

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,719
精华内容 1,087
关键字:

oled显示屏模块