Arduino+OLED基础保姆级教程(1)
第一篇:先打好基础(基础篇->1)
(一)先说两句
这个教程从0到1让你入门OLED;教程是系列课程包括:OLED上显示第一行字,显示数字,显示汉字到写个简单的OLED显示界面再到最后写个炫酷的菜单功能的实现。
通过本系列教程大家能达到的效果:
视频效果演示
如果你有基础可以点击下面蓝色链接跳转到实现过程!
这篇是保姆级的实现过程哟!
(二)关于OLED的必懂知识
市面上 的OLED有很多种,多式多样;我选择用简单的两种分类方式去分类:第一种是根据通信协议分为:iic通信协议下的OLED(栗子:图一是常见的四针 iic通信协议的OLED)和SPI通信协议下的OLED(栗子:图二是常见的七针支持SPI协议的OLED);
图一:常见支持iic协议的四针OLED 图二:常见支持SPI协议的七针OLED
本套系列教程举例使用七针SPI协议下的0.96寸OLED;当然适合四针0.96寸OLED,只需要改个引脚定义函数和引脚的接线;
基于什么是iic通信,什么是spi通信可以去参考小光学嵌入式的下面这条博文:
小光学嵌入式iic和spi通信的讲解博文
(三)OLED的显示原理
简单讲解一下引脚功能吧(栗子用的是OLED8080)
CS:为OLED的片选信号;
WR:向OLED 写入数据;
RD:从OLED读取数据;
D[7-0]:8位双向数据线;
RST(RES):硬件复位OLED;
DC(RS):命令/数据标志(0,读写命令;1,读写数据);
OLED8080并口读写过程:
模块的8080并口读/写的过程为:
①将数据放到数据口;
②根据要写入/读取的数据的类型,设置DC(RS)为高(数据)/低(命令);
③拉低片选,选中SSD1306;
④接着我们根据是读数据,还是要写数据置RD/WR为低;
⑤读数据过程:在RD的上升沿, 使数据锁存到数据线(D[7:0])上;
⑥写数据过程:在WR的上升沿,使数据写入到SSD1306里面;
⑦拉高CS和DC(RS)。
更详细的可以去看看博主yngz_Miao的下面这篇博文;
关于OLED显示原理的详细博文
(四)0.96寸七针OLED与arduino接线
SCL=D0=10; RES=RESET;
SDA=D1=9; GND=GND;
CS=12; VCC=VCC/5V;
DC=11;
(五)显示万能词 hello world
首先对U8g2库有个了解吧;U8g2库是嵌入式设备单色图形库,支持非常多的嵌入式设备平台,比如arduino,stm32,esp8266等等。。。
关于U8g2库在CSDN上其实好文章很多,我在这引用一个,我就不去一一去讲了
文章来自于单片机菜鸟哥关于U8g2库的文章
效果图:
(图拍的有点模糊,估计是焦距的问题吧)
代码:
#include "U8glib.h"//U8g2库
void draw(void);
//四针iic的引脚定义
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE);//SCL-A5;SDA-A4
//七针spi的引脚定义
//U8GLIB_SSD1306_128X64 u8g(10, 9, 12, 11); // SW SPI Com: SCL =D0= 10, SDA = D1=9, CS = 12, DC = 11,RES=RESET,D0=10,D1=9;
void setup() {}
void draw(){u8g.setFont(u8g_font_fub14);//设置字体和字号u8g.setPrintPos(18,32); //显示的位置u8g.print("hello world");//显示时间字样
}
void loop() {u8g.firstPage(); do {draw();} while( u8g.nextPage() );}
简单解释一下:首先就是U8g库的引入(注意:引入使用前记得去查一下库安装是否成功);下一步就是引脚的定义,关于引脚我在上面的关于 硬件那一块去讲过。然后就是自己写一个函数叫draw;把显示的内容,字号和显示位置用draw函数封装进去;setup函数里面是空的;loop函数是相当于函数运行的主函数,程序运行过程中它会不断地刷新,屏幕也是它得不断地刷新自己要显示的内容。所以把封装好的draw函数用一个do-while循环不断地刷新显示即可;
Arduino+OLED基础保姆级教程(1)相关推荐
- 「AR裸眼插画」零基础保姆级教程来啦
使用Kivicube AR在线制作平台,新手也能5分钟制作出同款超震撼"AR裸眼插画",观看Kivisense吉祥物伊弥戟透过手机屏幕打破次元壁来到真实世界! 我们准备了视频与图文 ...
- 【宿舍指纹锁---Arduino UNO (保姆级教程)】
宿舍指纹锁-Arduino UNO 1.准备材料 Arduino UNO AS608指纹模块+TTL转接口 MG996R舵机 1602液晶 胶枪 杜邦线 面包板 细线 5v电源 2.库文件 https ...
- uni-app云开发基础保姆级教程
什么是uni-app云开发 uni-app云开发,也叫uniCloud,uniCloud是由Dcloud联合阿里云,腾讯云推出的,基于serverless的,跨全端的.用js开发服务端的云产品 uni ...
- ESP 保姆级教程 基础篇 —— 环境安装、NodeMcu引脚介绍
快速导读 1.安装 Arduino IDE -- 1.8.13 2.安装 ESP8266 -- 2.7.4 3.配置Arduino IDE 首选项 4.硬件开发板 -- ESP8266 NodeMcu ...
- 【保姆级教程】Docker基础操作篇-Dokerfile(含源码)
Docker系列文章: 你好!Docker[概念+源码+保姆式教程] [保姆级教程]Docker进阶操作篇-Compose(含源码) Docker常用命令 [保姆级教程]VMware+CentOS 7 ...
- 图片适应窗口_毕业论文排版保姆级教程——图片和公式排版
[小技巧]Origin作图过程中如何让图看起来更生动 2020-05-30 [小技巧]简单设置让你origin导出的图片不在有大白边 2020-05-29 [干货放送]萤火科研资源免费赠送第一期--必 ...
- 从购买服务器到网站搭建成功保姆级教程~超详细
??从购买服务器到网站搭建成功保姆级教程~真的超详细,各位看官细品 ??前言 ??预备知识 ??什么是云服务器? ??什么是域名? ??什么是SSL证书? ??服务器选配 ??阿里云[官网链接](ht ...
- 前端学习笔记 HTML5 保姆级教程
HTML5 保姆级教程 前端学习路线: HTML→CSS→JavaScript→jQuery→HTML5→CSS3→ES6→Vue.js→webpack→Node.js 除了掌握这些技术,后期我还需要 ...
- 保姆级教程:手把手教你搭建个人网站
保姆级教程:手把手教你搭建个人网站 前言 准备与搭建 1.Git管理工具的下载与安装 2.nodejs环境安装 3.hexo博客框架下载 npm换国内源 使用npm下载hexo博客框架 初始化mybl ...
最新文章
- C程序设计-----第1次作业
- Linux系统中如何关闭触摸鼠标
- JSP Cookie案例
- python时间模块哪个好arrow模块_python库: arrow (时间)
- 【收藏】Maven 生成打包可执行jar包
- 企业的无线安全问题综合解决方案
- 升级php7_PHP 5.6 已结束安全支持,你升级到 PHP 7 系列了吗?
- 2.vue的diff算法(2020.12.07)
- 魅族Flyme5系统内置原生铃声免费下载
- 谷粒商城:SPU管理规格显示404
- 【紫书第六章】二叉树、欧拉图基本概念与性质
- 安卓rom制作教程_【教程】安卓手机刷入第三方ROM通用教程
- 魔方cfop公式软件_按这七步训练,你可以快速玩转魔方!
- springboot后端接受图片到本地
- 2019中国区块链开发者大会 | Conflux 伍鸣:性能问题仍是区块链的应用阻碍
- 否定、合取、析取、条件、双条件定义及LaTex公式
- 寒假程序翻译1.27
- ps2摇杆模块控制小车_八个超赞的两轮平衡小车设计,小白最爱
- if与if else与if else if else之间的用法与区别(C++)
- golang syscall 系统调用认知
热门文章
- 佳佳GIS学习笔记2
- 智慧供应链专题——基于智慧大脑的供应链协同平台
- springmvc原理+springmvc面试题
- iPhone 13怎么关机?苹果iPhone 13关机图文教程
- 如何打造139团队(不同层次人员的选择与培养,大型研发团队,大型敏捷开发团队)
- 阿里巴巴经典智力问题
- spark笔记spark优化
- “蔚来杯“2022牛客暑期多校训练营7 L Maximum Range(强连通缩点+网络流输出方案)
- spring-上手spring
- ico格式的计算机图标,ico图标是什么格式的文件