Ardunio 连接OLED触摸屏(SSD1106驱动 4针 IIC通信)

 一、准备工作

        1、硬件

        UNO R3 :1套

        OLED触摸屏:1套

        导线诺干

        2、软件

        arduino

二、接线

UNO R3OLED
5VVCC
GNDGND
A5SCL
A4SDA

        脚位如下图所示:

        Uno R3脚位图

  触摸屏脚位图 

查阅显示屏的驱动规格:通常显示屏驱动芯片有SSD1306,SH1106

我在淘宝买到的这款比较奇怪,是SSD1106的

三、写代码

        1、安装驱动

        Tools->Manage Libraries

        在搜索栏收索U8glib,点击安装。(如果是SSD1306驱动的显示屏,则搜索SSD1306)

        2、按照厂家示例代码,修改编写一个显示hello world的小程序,通过Arduino IDE下载到R3中(SSD1306驱动的显示屏,第一行改#include “ACROBOTIC SSD 1306”)

#include "U8glib.h"
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE);void u8g_prepare(void) {u8g.setFont(u8g_font_6x10);       // 使用6x10像素字体u8g.setFontRefHeightExtendedText();u8g.setDefaultForegroundColor();u8g.setFontPosTop();
}void drawHelloWorld(void) {u8g_prepare();u8g.firstPage();do {// 计算居中坐标("helloworld"共10字符,6像素宽/字符)int x = (128 - 10*6)/2;  // 水平居中int y = 32;              // 垂直居中u8g.drawStr(x, y, "helloworld");} while(u8g.nextPage());
}void setup() {// 显示模式设置if (u8g.getMode() == U8G_MODE_R3G3B2)u8g.setColorIndex(255);else if (u8g.getMode() == U8G_MODE_GRAY2BIT)u8g.setColorIndex(3);else if (u8g.getMode() == U8G_MODE_BW)u8g.setColorIndex(1);u8g_prepare();
}void loop() {drawHelloWorld();// 移除所有动画逻辑,保持静态显示// 延迟可保留但非必须delay(100);
}

注意,下载到R3之前,需要安装 U8glib驱动。否则会出现U8glib缺失的报错

如果安装驱动不匹配,可能会出现下面效果或者显示屏不亮的情况

四、测试

显示屏成功显示 “hello world”,测试成功

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/898379.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器人技能列表

一、机器人制作基础入门 (一)机器人概述 1.机器人的定义与分类 2.机器人的发展历程与现状 3.机器人在各领域的应用案例 (二)必备工具与材料 4.常用电子工具介绍(万用表、电烙铁等) 5.机械加工工具&…

07. 面向对象高级(2)_设计模式

什么是设计模式 一个问题通常有种解法,其中肯定有一种解法是最优的,这个最优的解法被人总结出来了,称之为设计模式。 设计模式有20多种,对应20多种软件开发中会遇到的问题。 关于设计模式,主要学什么? 解…

【面试场景题-Redis中String类型和map类型的区别】

今天在面试中碰到一个场景题:在 Redis 中存储 100 万用户数据时,使用 String 类型和 Hash(Map)类型的主要区别是什么?体现在以下几个方面: 1. 存储结构与内存占用 String 类型 存储方式:每个用…

计算机操作系统和进程

目录 一. 操作系统 1. 操作系统的概念 2. 操作系统的功能 二. 进程 1. 进程的概念 2. 进程在系统中的管理 3. PBC (1)pid (2)内存指针 (3)文件标识符 4. 资源分配 5. 进程的调度 (…

【Matlab GUI】封装matlab GUI为exe文件

注:封装后的exe还是需要有matlab环境才能运行 (1)安装MCRinstaller.exe文件,在matlab安装目录下的toolbox/compiler/deploy/win64文件夹里 (2)安装完MCRinstaller.exe,字命令窗口输入&#x…

登山第二十梯:无人机实时自主探索——我是一只小小小鸟

文章目录 一 摘要 二 资源 三 内容 一 摘要 自主探索是无人机 (UAV) 各种应用的基本问题。最近,基于 LiDAR 的探索因其能够生成大规模环境的高精度点云地图而受到广泛关注。虽然点云本身就为导航提供了信息,但许多现有的勘探方…

JAVA序列化与反序列化URLDNS链CC1链

1、序列化的实现 java序列化的是对象属性的,只有实现了Serializable或者Externalizable接口的类的对象才能被序列化为字节序列。(不是则会抛出异常),静态成员变量是属于类的,所以静态成员变量是不能被序列化的&#x…

SAP-ABAP: 采购申请创建(PR)BAPI_PR_CREATE 技术指南-详解

BAPI_PR_CREATE 技术指南 用途:通过 RFC 接口创建 SAP 采购申请(PR),支持自动化集成与批量处理。 一、功能概览 类别说明核心功能创建标准采购申请、预留转采购申请,支持多行项目及账户分配。集成场景与 MRP 系统、外…

Android7 Input(一)Android Input服务初始化

本系列博客主要描述Android 7.1系统中输入管理服务InputManagerService的源码分析。 概述 本文主要描述了InputManagerService服务的初始化和启动,在Android7系统上InputManagerService服务的框架如下所示: 注:箭头的方向,并不能真实代表数…

用于 RGB-D 显著目标检测的点感知交互和 CNN 诱导的细化网络(问题)

摘要 问题一:但在对自模态和跨模态的全局长距离依赖关系进行建模方面仍显不足。什么意思? 自模态(Intra-modal)全局依赖:在同一模态内,长距离像素之间的信息交互对于理解全局背景很重要,但 CN…

html5基于Canvas的经典打砖块游戏开发实践

基于Canvas的经典打砖块游戏开发实践 这里写目录标题 基于Canvas的经典打砖块游戏开发实践项目介绍技术栈核心功能实现1. 游戏初始化2. 游戏对象设计3. 碰撞检测系统4. 动画系统5. 用户界面设计 性能优化1. 渲染优化2. 内存管理 项目亮点技术难点突破项目总结 项目介绍 在这个…

MySQL外键约束下的索引删除难题:从报错到完美解决的实战指南

🚨 MySQL外键约束下的索引删除难题:从报错到完美解决的实战指南 🔥 问题背景:一个看似简单的删除操作引发的连环坑 场景复现:某日接到需求,需删除 invite_codes 表中的冗余索引 FKnqn27fyjlgio5y60eieohi0…

使用 request 的 axios 状态码分析

request.interceptors.response.use(function(response){},function(error){})后端返回结果code400不经过response,直接跳到error。 当后端返回状态码为 400 时直接进入 error 回调而不经过 response 回调,这是因为 axios 默认会将状态码不在 200 - 299 范围内的响…

Rust嵌入式开发环境搭建指南(基于Stm32+Vscode)

Rust嵌入式开发环境搭建指南(基于Stm32+Vscode) 部分目录如下所示: 目录 简介Rust开发环境安装STM32开发工具链安装VSCode环境配置VSCode插件安装调试器配置项目创建与配置常见问题与解决方案简介 本文档旨在指导开发者如何搭建基于Rust语言的STM32嵌入式开发环境。相比传…

动态规划合集——动态规划基本原理

动态规划合集——动态规划基本原理 动态规划原理1258:【例9.2】数字金字塔 动态规划原理深度优先搜索记忆化搜索动态规划(顺推)动态规划原理题解分析 滚动数组优化动态规划(逆推) 动态规划原理 从数塔问题出发理解动态…

如何让节卡机器人精准对点?

如何让节卡机器人精准对点? JAKA Zu 软件主界面主要由功能栏、开关栏、菜单栏构成。 菜单栏:控制柜管理,机器人管理与软件管理组成。主要功能为对控制柜关机、APP 设置、机器人本体设 置、控制柜设置、连接机器人和机器人显示等功能。 开关…

自动化测试工具-Playwright介绍和快速实例

Playwright 是什么 Playwright 是由 Microsoft 开发的开源自动化测试工具,专为现代 Web 应用设计。它支持 Chromium、Firefox 和 WebKit 内核的浏览器,能够跨平台(Windows、macOS、Linux)运行,提供强大的浏览器自动化能力,适用于测试、爬虫和监控等场景。 Playwright的…

软考程序员考试知识点汇总

软考程序员考试(初级资格)主要考察计算机基础理论、编程能力及软件开发相关知识。以下是核心知识点总结及备考建议: 一、计算机基础 数制与编码 二进制、八进制、十进制、十六进制转换原码、反码、补码表示(整数与浮点数&#xf…

实时视频分析的破局之道:蓝耘 MaaS 如何与海螺 AI 视频实现高效协同

一、蓝耘 MaaS 平台:AI 模型全生命周期管理的智能引擎 蓝耘 MaaS(Model-as-a-Service)平台是由蓝耘科技推出的 AI 模型全生命周期管理平台,专注于为企业和开发者提供从模型训练、推理到部署的一站式解决方案。依托云原生架构、高…

设计模式(行为型)-策略模式

目录 定义 类图 角色 角色详解 Strategy(抽象策略类)​ Context(环境类 / 上下文类)​ ConcreteStrategy(具体策略类)​ 优缺点 优点​ 缺点​ 使用场景 类行为差异场景​ 动态算法选…