OLED 屏幕的使用

news/2024/10/22 18:37:19/

OLED 屏幕的使用(arduino)

oled有两种接线方式:SPI和IIc,本文采用的OLED连接方式为SPI四线
使用的设备为:Arduino UNO 0.96寸 OLED-128X64 SPI 接口

oled的原理与LCD相同,点亮每个像素点组成图形.
对于特殊字符图形(如汉字)需要使用文字取模软件生成相应字模,以数组形式写入程序,最后扫描在oled上显示.

取模软件:链接:https://pan.baidu.com/s/1vWB0sEvODR9X5cWlBBQArg 密码:sepr

对于常用字符(数字,英文字母等)可以直接使用库函数,方便省事.
U8glib是一个在ARM,C51,Arduino等常用MCU上都可以得到支持的图形绘制库,用途广泛,兼容性优秀,功能也十分强大,U8glib可以直接从arduino编译环境中的库管理下载

U8glib显示字符/图形的常用三种方法

drawStr 显示字符

注意:使用drawStr函数之前,需要使用setFont函数来设置一下要画出的字符的显示字体

1)方法定义u8g_uint_t U8GLIB::drawStr(u8g_uint_t x, u8g_uint_t y, const char *s)
2)功能显示字符,使用前要使用setFont函数设置要显示字符的字体(详见七楼 设置)另外还有 drawStr90(); drawStr180(); drawStr270(); 使字符顺时针旋转响应的角度。//注意:使用drawStr函数之前,需要使用setFont函数来设置一下要画出的字符的显示字体。
3)参数x:字符左下角的横坐标y:字符左下角的纵坐标*s:要显示的字符

例子

u8g.setFont(u8g_font_osb18);    //设置字体
u8g.drawStr(0, 20, "ABC");      //画出字符在(0,20)的位置

print 显示字符

print()函数可以打印字符,字符串,变量值等。但是用之前需要用setPrintPos()来设置位置

print(...)
//参数为要打印的内容

例子

u8g.setPrintPos(0,15);          //设置位置
u8g.print("Error Code: ");      //打印内容

drawXBMP 打印位图

1)方法定义void U8GLIB::drawXBMP(u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, const u8g_pgm_uint8_t *bitmap)
2)功能此函数是一个显示一个位图的方法。
3)参数x:位图左上角的横坐标y:位图左上角的纵坐标w:位图的宽h:位图的高*bitmap:位图对象

例子

const uint8_t rook_bitmap[] U8G_PROGMEM = {0x00,         // 000000000x55,         // 010101010x7f,         // 011111110x3e,         // 001111100x3e,         // 001111100x3e,         // 001111100x3e,         // 001111100x7f          // 01111111
};
u8g.drawBitmapP(0,0, 1, 8, rook_bitmap);

其他函数

firstPage 图像显示
nextPage
drawPixe 点
drawLine 线
drawHLine 水平线
drawVLine 垂直线
drawTriangle 三角(实心)
drawFrame 矩形框
drawRFrame 圆角矩形框
drawBox 矩形(实心)
drawRBox 圆角矩形(实心)
drawCircle 圆
drawDisc 圆形(实心)
drawEllipse 圆弧
drawFilledEllipse 扇形(实心)
drawStr 显示字符串
print 输出
drawBitmapP 画位图
drawXMBP 画大尺寸位图
getHeight 获得显示器高度
getWidth 获得显示器宽度
getStrWidth 获得字符串宽度
setFont 设置字体
setPrintPos 设置输出位置
setColorIndex 设置显示与否
setRot90 /180 /270 显示内容旋转
setFontPosTop

具体使用方法可参考

常用函数使用方法
u8glib库资料整理
使用规格方法参考


基本运行框架

绘图过程,必须依照下面的框架执行,将绘图显示的代码,放在firstPage和nextPage组成的循环内执行。

  u8g.firstPage();  do {// 此处放置显示代码} while( u8g.nextPage() );

息屏方式

u8g.drawStr(0,0, “”);
###位图数据制作方法
打开软件 进行设置
设置选项界面不能关闭!否则会恢复初始状态!

输入汉字,选择字体和大小,点击生成字模,拷贝到程序即可


硬件接线

OLED屏arduino开发板
GNDGND
VCC3.3V 或 5V
SCL /D010
GNDGND
SDA/D19
RES13
DC11
CS12 七针模块有cs脚;直接连接就好了;如果是用六针的CS默认已经接地;不接就可以了

显示Hello World

#include <U8glib.h>#include "stdio.h"
#include "stdlib.h"
#include "U8glib.h"//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE);        // I2C / TWI 
U8GLIB_SSD1306_128X64 u8g(10, 9, 12, 11);  // SW SPI Com: SCL = 10, SDA = 9, CS = 12, DC = 11,RES=RESETvoid draw(void) 
{u8g.setFont(u8g_font_osb18);//设置要显示字符的字体u8g.drawStr(0, 20, "Hello");//显示字符u8g.drawStr(0, 50, "World");u8g.setColorIndex(1);//显示对象为不透明
}void setup(void)
{}void loop(void) 
{u8g.firstPage();  do {draw();} while( u8g.nextPage() );}

效果

在这里插入图片描述


显示汉字

#include "stdio.h"
#include "stdlib.h"
#include "U8glib.h"//U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE);        // I2C / TWI 
U8GLIB_SSD1306_128X64 u8g(10, 9, 12, 11);  // SW SPI Com: SCL = 10, SDA = 9, CS = 12, DC = 11,RES=RESETstatic const unsigned char sudu[2][32] PROGMEM={
{0x00,0x02,0x04,0x02,0xE8,0x3F,0x08,0x02,0xC0,0x1F,0x40,0x12,0x4F,0x12,0xC8,0x1F,
0x08,0x07,0x88,0x0A,0x48,0x12,0x28,0x22,0x08,0x02,0x14,0x00,0xE2,0x7F,0x00,0x00},/*"速",0*/
/* (16 X 16 , 宋体 )*/{0x80,0x00,0x00,0x01,0xFC,0x7F,0x44,0x04,0x44,0x04,0xFC,0x3F,0x44,0x04,0x44,0x04,
0xC4,0x07,0x04,0x00,0xF4,0x0F,0x24,0x08,0x42,0x04,0x82,0x03,0x61,0x0C,0x1C,0x70},/*"度",1*/
/* (16 X 16 , 宋体 )*/
};
void draw(void) {
//画出速度16*16u8g.drawXBMP( 0, 0,16, 16, sudu[0]);u8g.drawXBMP( 16, 0,16, 16, sudu[1]);
}void setup(void) {}void loop(void) {u8g.firstPage();  do {draw();} while( u8g.nextPage() );}

效果

在这里插入图片描述


http://www.ppmy.cn/news/110584.html

相关文章

lcd屏和oled屏的优缺点 lcd屏和oled屏哪个省电

两者的主要区别是发光方式&#xff0c;LCD是靠背光面板发光&#xff0c;而OLED材质则能实现自发光。 显示器用lcd屏还是oled屏这些点很重要看过你就懂了 http://www.adiannao.cn/du OLED的优势&#xff1a; 1、可显示纯黑&#xff1a;LCD有个致命缺陷&#xff0c;液晶层不能完…

苹果手机的OLED屏和LCD屏有什么区别?

现在的苹果手机已经在全系使用OLED屏幕&#xff01; 我们先了解一下&#xff0c;OLED屏幕和LCD屏幕的区别&#xff1a; 从原理方面来看。 OLED它是自发光材料&#xff0c;拥有发光属性。 LCD屏它是液晶显示屏&#xff0c;不会自行发光。 从显示表现来看。 OLED屏幕它能够自…

OLED显示屏

[TOC]stm32 OLED显示 1、OLED基本结构 大小&#xff1a;128X64个点阵 X方向128bit Y方向64B&#xff0c;且分为8页&#xff0c;一页8B 2、显现原理 当对应的某一个像素点为1时&#xff0c;对应的小方格点亮。且每一列对应一个字节&#xff0c;低位在最上面&#xff0c;高位…

LCD显示屏和OLED显示屏的区别

LCE显示屏是液晶显示屏的全称&#xff0c;LED是发光二极管的英文缩写。LCD显示屏和OLED显示屏的主要区别是发光原理不同&#xff0c;而发光原理的不同使得两者在厚度、形态、显示效果、耗电程度、屏闪情况也不同。 LCD的发光原理主要是依靠背光层,通常由大量的ED背光灯造成,彩色…

纯干货:LCD屏和OLED屏的区别?手机屏幕材质各有什么区别?

纯干货&#xff1a;LCD屏和OLED屏的区别&#xff1f;手机屏幕材质各有什么区别&#xff1f; 慢慢买比价 ​ 已认证的官方帐号 74 人赞同了该文章 今天我就为大家带来一篇纯干货知识点整理&#xff0c;关于手机屏幕那点事看完秒懂。 以及大家对于苹果手机LCD屏和OLED的区别…

OLED屏幕的手机和LCD屏幕的手机,到底哪个好?

手机屏幕是我日常最直接接触的一个手机部件&#xff0c;现在手机市场上主要流行两种屏幕&#xff0c;一种是LCD屏&#xff08;液晶显示屏&#xff09;&#xff0c;另一种是OLED屏&#xff08;二极管显示屏&#xff09;&#xff0c;那么这两种屏幕&#xff0c;哪种更好呢&#x…

OLED屏简介

OLED简介 产品介绍 OLED (Organic Light-Emitting Diode)&#xff1a;有机发光二极管又称为有机电激光显示&#xff0c;OLED显示技术具有自发光的特性&#xff0c;采用薄的有机材料涂层和玻璃基板&#xff0c;当有电流通过时&#xff0c;这些有机材料就会发光&#xff0c;而且…

ML | 6 支持向量机

ML | 6 支持向量机 文章目录 ML | 6 支持向量机SVM介绍线性不可分数据线性可分数据 寻找最大间隔分类器求解的优化问题 SMO高效优化算法简化版SMO处理小规模数据集伪代码程序清单 完整Platt SMO 算法加速优化完整 Platt SMO的支持函数完整Platt SMO算法中的优化例程完整Platt S…