查看: 2961|回复: 0

Arduino UNO 驱动1.5寸 128*128像素的OLED

[复制链接]
  • TA的每日心情
    郁闷
    2020-5-29 08:50
  • 签到天数: 150 天

    [LV.7]常住居民III

    发表于 2018-11-26 21:30 | 显示全部楼层 |阅读模式
    本帖最后由 希岩 于 2018-11-26 21:43 编辑

    手头有一个微雪的1.5寸OLED屏,白色,SPI接口,像素点128*128个,具有16阶灰度,驱动芯片为SSD1327。这个屏幕特点就是像素多,屏大。但是卖家给的例程用的RAM高达83%了,用的FLASH到了67%,占的资源太多了。程序也很复杂。
    因此对其进行了简化。简化成字符显示的程序。12点的字符。可以看看程序,可以说非常简单了,使用的一个小缓冲区,占用RAM 52%,FLASH 13%。
    好了,不多说了,全部代码在附件里,供大家学习开发。以下是部分代码。
    [mw_shl_code=arduino,true]/***********************************************************************************************************************
      | file       : OLED_Show
      | version    : V1.0
      | date       : 2017-12-12
      | function  :
      | Author:凌晨七點半
      | QQ 群:871103113

    引脚定义:
       VCC : +5V/3V3
       GND : GND
       DIN : 11
       CLK : 13
       CS  : 10   //也可以接地
       DC  : 7
       RST : 8    //可有可无

    ***********************************************************************************************************************/
    #include "OLED_Driver.h"

    //行位置,总共可以显示10行英文
    enum {
        Line1  = 0,  
        Line2  = 13,
        Line3  = 26,
        Line4  = 39,
        Line5  = 52,
       
        Line6  = 64,
        Line7  = 77,
        Line8  = 90,
        Line9  = 103,
        Line10  = 116
          
    } LINE;
    /********************************************************************************
      function:
          initialization
    ********************************************************************************/
    void OLED_Init(void)
    {
       //set pin
      pinMode(OLED_CS, OUTPUT);
      pinMode(OLED_RST, OUTPUT);
      pinMode(OLED_DC, OUTPUT);
      digitalWrite(OLED_CS,LOW);
      //digitalWrite(OLED_RST,HIGH);
      //set OLED SPI
      SPI.setDataMode(SPI_MODE0);
      SPI.setClockDivider(SPI_CLOCK_DIV2);
      SPI.begin();

      Serial.println("OLED initializing... ");

      OLED_Reset();    //Hardware reset

      //Set the initialization register
      OLED_InitReg();
      delay(200);
      
      OLED_Fill_Screen(0);
      delay(200);  
      
    }
    //------------------------------------------------
    void setup()
    {
      //set Serial
      Serial.begin(9600);
      OLED_Init();
      OLED_CS_0;
      Serial.println("OLED Init OK ");
      OLED_Fill_Screen(0xff);
      delay(1000);
      OLED_Fill_Screen(0);
       
        OLED_DisStr_EN(18,"1.5' OLED",15);//横轴位置,数据,亮度
        OLED_Window_Display(Line1);             //表示行
        OLED_ClearBuf();
       
        OLED_DisStr_EN(0,"OLED",15);//横轴位置,数据,亮度
        OLED_DisStr_EN(54,"128*128",15);//横轴位置,数据,亮度
        OLED_Window_Display(Line2);             //表示行
        OLED_ClearBuf();

        OLED_DisStr_EN(0,"QQ GROUP:871103113",15);//横轴位置,数据,亮度
        OLED_Window_Display(Line7);             //表示行
        OLED_ClearBuf();

        OLED_DisStr_EN(50,"Email:",7);//横轴位置,数据,亮度
        OLED_Window_Display(Line9);             //表示行
        OLED_ClearBuf();
       
        OLED_DisStr_EN(8,"820329503@qq.com",2);//横轴位置,数据,亮度
        OLED_Window_Display(Line10);             //表示行
        OLED_ClearBuf();
        Serial.println("OLED test OK ");
    }
    //-----------------------------------------------------------
    void loop()
    {

    }

    /*********************************************************************************************************
      END FILE
    *********************************************************************************************************/
    [/mw_shl_code]
    2018-11-26_211830.png
    IMG_20181126_211636.jpg

    128128OLED_Simple.zip

    8.77 KB, 下载次数: 60

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    热门推荐

    5分钟带你快速了解新一代开发板:M5STACK
    5分钟带你快速了解新一代
    一、什么是M5Stack M5Stack是一种模块化、可堆叠扩展的开发板,每个模块
    创客火首发无人机编队套装,开启不一样的人工智能教育
    创客火首发无人机编队套装
    2017年国务院发布《新一代人工智能发展规划》,提出要广泛开展人工智能科普活动,在中
    用 PyQt GUI 界面下的旋钮控制舵机角度
    用 PyQt GUI 界面下的旋钮
    新人报道, 我想用 PyQt 下的 Dial 旋钮模块来控制舵机的角度。如果一切正常,这个 G
    blinker连接树莓派失败
    blinker连接树莓派失败
    错误原因如下图,想问一下大家这个该怎么解决?
    Python3接入Blinker失败
    Python3接入Blinker失败
    运行示例程序,只把auth换成真实的auth,就出现报错。 大佬们看一下这个是啥情况
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表