查看: 1936|回复: 0

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

[复制链接]
  • TA的每日心情
    慵懒
    2019-10-25 21:44
  • 签到天数: 145 天

    [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%。
    好了,不多说了,全部代码在附件里,供大家学习开发。以下是部分代码。

    kittenblock中小学创客名师推荐的图形化编程软件

    /***********************************************************************************************************************
      | 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
    *********************************************************************************************************/
    

    2018-11-26_211830.png
    IMG_20181126_211636.jpg

    128128OLED_Simple.zip

    8.77 KB, 下载次数: 40

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

    本版积分规则

    热门推荐

    【Arduino】108种传感器模块系列实验(55)---DHT11温湿度传感器
    【Arduino】108种传感器模
    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是
    【Arduino】168种传感器系列实验(149)--AS608光学指纹识别模块
    【Arduino】168种传感器系
    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是
    黑乌鸦的Arduino兵器库-----DFPlayer MiNi mp3音乐模块
    黑乌鸦的Arduino兵器库---
    嗯 这是一个系列后期会罗列几乎所有的常见基础模块的demo所以 大家的回复将是我最大
    【原创】 drawbot平面关节scara机械臂写字机 画画机器人直播...
    【原创】 drawbot平面关节
    这个项目上个月就在做了,结构和代码反反复复改了多次,加上自己又太忙,一直没来得及
    【干货分享】mega2560原理图PCB图纸altium designer18
    【干货分享】mega2560原理
    分享一下mega2560的板子 AD版本 **** 本内容被作者隐藏 **** ergo
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表