Arduino+OLED基础保姆级教程(1)

这篇具有很好参考价值的文章主要介绍了Arduino+OLED基础保姆级教程(1)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

第一篇:先打好基础(基础篇->1)

(一)先说两句

这个教程从0到1让你入门OLED;教程是系列课程包括:OLED上显示第一行字,显示数字,显示汉字到写个简单的OLED显示界面再到最后写个炫酷的菜单功能的实现。

通过本系列教程大家能达到的效果:

视频效果演示

如果你有基础可以点击下面蓝色链接跳转到实现过程!

这篇是保姆级的实现过程哟!

(二)关于OLED的必懂知识

市面上 的OLED有很多种,多式多样;我选择用简单的两种分类方式去分类:第一种是根据通信协议分为:iic通信协议下的OLED(栗子:图一是常见的四针 iic通信协议的OLED)和SPI通信协议下的OLED(栗子:图二是常见的七针支持SPI协议的OLED);

Arduino+OLED基础保姆级教程(1)Arduino+OLED基础保姆级教程(1)

 图一:常见支持iic协议的四针OLED                                           图二:常见支持SPI协议的七针OLED

本套系列教程举例使用七针SPI协议下的0.96寸OLED;当然适合四针0.96寸OLED,只需要改个引脚定义函数和引脚的接线;

基于什么是iic通信,什么是spi通信可以去参考小光学嵌入式的下面这条博文:

小光学嵌入式iic和spi通信的讲解博文

(三)OLED的显示原理

Arduino+OLED基础保姆级教程(1)

简单讲解一下引脚功能吧(栗子用的是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;

Arduino+OLED基础保姆级教程(1)

 (五)显示万能词 hello world

首先对U8g2库有个了解吧;U8g2库是嵌入式设备单色图形库,支持非常多的嵌入式设备平台,比如arduino,stm32,esp8266等等。。。

关于U8g2库在CSDN上其实好文章很多,我在这引用一个,我就不去一一去讲了

文章来自于单片机菜鸟哥关于U8g2库的文章     

效果图:                               

Arduino+OLED基础保姆级教程(1)

 (图拍的有点模糊,估计是焦距的问题吧)

代码:

#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循环不断地刷新显示即可;文章来源地址https://www.toymoban.com/news/detail-409853.html

到了这里,关于Arduino+OLED基础保姆级教程(1)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Arduino驱动oled

    I2C显示屏(驱动为ssd1306,分辨率为128*64)  Arduino nano(Atmega168p) 参考开发板管教定义图可知SCL、SDA应该连接A5、A4。 oled 开发板 GND GND VCC 3-5V SCL A5 SDA A4 这里之所以使用u8g2库是因为Atmega168p的flash只有16k,运行gfx等图形库内存会不足,显示一些文字还是没问题的。 除了此代码

    2024年02月16日
    浏览(35)
  • 数据结构--》从数据结构开始,打好算法基础

    目录 数据结构的基本概念 数据结构的三要素 算法的基本概念 数据结构的基本概念         在学习某个知识之前,我们是否都有问过自己我们到底在学习的目的是什么?学习数据结构也一样,我们学习数据结构 主要是为了 用程序把现实世界的问题信息化;用计算机高效

    2024年02月09日
    浏览(53)
  • 【2023最新版】超详细Metasploit安装保姆级教程,Metasploit渗透测试使用,看完这一篇就够了

    Metasploit 官方介绍 Metasploit是一个渗透测试框架,可以帮助您发现和利用漏洞。 Metasploit还为您提供了一个开发平台,您可以编写自己的安全工具或利用代码。 今天,我将指导您了解如何使用Metasploit的基础知识:如何安装Metasploit,使用框架以及利用漏洞。 下载地址:https://

    2024年02月13日
    浏览(70)
  • 【2023最新版】超详细Sqlmap安装保姆级教程,SQL注入使用指南,收藏这一篇就够了

    一、sqlmap简介 sqlmap是一个自动化的SQL注入工具,其主要功能是扫描,发现并利用给定的URL进行SQL注入。目前支持的数据库有MySql、Oracle、Access、PostageSQL、SQL Server、IBM DB2、SQLite、Firebird、Sybase和SAP MaxDB等 Sqlmap采用了以下5种独特的SQL注入技术 基于布尔类型的盲注,即可以根据

    2024年02月10日
    浏览(62)
  • OLED 行列设置一篇搞懂

    我们大家的目的就是想让我们的OLED显示出多彩的图案,但是我们该在去做呢,其实这些的是指都是去写寄存器来实现的(下图来源于网 络) 我相信,大家应该看了很多东西都没用懂,那些博客写了设置列地址的低四位,和设置列的高四位,页面地址,但你看完一定不太懂,这个效果

    2024年02月07日
    浏览(34)
  • arduino Xiao ESP32C3 oled0.96 下雪花

    雪花下落的时候, 随机生成半径和位置 sandR和sandX,sandY 保存雪花下落位置的时候, 将其周边一圈设置为-1, 标记为有雪花 其他雪花下落的时候, 其他雪花的一圈如果遇到-1, 则停止下落, 并重复2

    2024年02月12日
    浏览(43)
  • MLX90614红外测温传感器使用arduino采集温度数据OLED显示

    点击图片购买 MLX90614是一款由迈来芯公司提供的低成本,无接触温度计。输出数据和物体温度呈线性比例,具有高精度和高分辨率。TO-39金属封装里同时集成了红外感应热电堆探测器芯片MLX81101(温度是通过PTC或是PTAT元件测量)和信号处理专用集成芯片MLX90302,专门用于处理红

    2024年02月03日
    浏览(73)
  • 【PT+Arduino+OneNET基础教程7】PacketTracer上云OneNET详细教程(TCP透传)

    教程1.PacketTracer中MCU芯片编程入门教程 教程2.全部智能设备连接MCU使用方法 教程3.读卡器与红外探测器连接MCU使用方法 教程4.常用传感器使用方法 教程5.几种按钮与开关的使用方法 教程6.执行器使用方法 教程7.上云教程 教程8.多设备上云教程 教程9.Arduino+OneNET TCP透传上云教程

    2024年02月03日
    浏览(36)
  • 【雕爷学编程】Arduino动手做(187)---1.3寸OLED液晶屏模块2

    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手试试多做实验,不管成功与否,都会记录下

    2024年02月14日
    浏览(42)
  • 【雕爷学编程】Arduino动手做(188)---0.66寸OLED液晶屏模块

    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手试试多做实验,不管成功与否,都会记录下

    2024年02月14日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包