物联网AI MicroPython传感器学习 之 GC7219点阵屏驱动模块

news2024/11/16 6:00:58

学物联网,来万物简单IoT物联网!!在这里插入图片描述

一、产品简介

LED-8 * 32点阵屏显示板由 4 块单色 8x8 共阴红色点阵单元组成,通过 SPI 菊花链模式将多块显示屏连接后可以组成更大的分辨率显示屏幕,任意组合分辨率。可用于简单仪表显示、LED显示屏、万年历、数字钟、温度计、计数器、电压表等显示使用。
image.png
引脚定义:

  • VCC:接电源正极(3.3-5V)
  • GND:接电源负极
  • DIN:SPI MOSI信号
  • CS:SPI 片选信号
  • CLK:SPI 时钟信号

二、技术参数

  • 采用常规SPI通讯,支持 16 级亮度调节
  • 支持命令模式和数据模式
  • 支持 SPI 的链接模式,扩展多级 LED 屏幕
  • 工作电压:2.4-5.5V
  • 工作电流:低亮度30mA,高亮度300mA(5V电压时)
  • 尺寸:15.2 x 3.8 厘米

三、软件接口

GC7219(spiObj, CS) - 创建 GC7219 驱动对象

  • 函数原型:

gc7219Obj = GC7219(spiObj ,CS)

  • 参数说明:
参数类型必选参数?说明
spiObjSPI传入SPI对象
CSGPIO传入片选信号 CS 对象
  • 返回值:
    GC7219 对象成功,返回 GC7219 对象;GC7219 对象创建失败,抛出 Exception
  • 示例代码:
from machine import SPI, Pin
import gc7219

# 初始化 SPI
spiObj = SPI(2, baudrate=2000000, sck=Pin(18), mosi=Pin(23), miso=Pin(19))
# 初始化片选
csObj = Pin(21, Pin.OUT)
# 创建 GC7219 驱动
gc7219Obj = gc7219.GC7219(spiObj, csObj)
print("GC7219 inited!")
  • 输出:
GC7219 inited!

flush() - 将驱动的 bitmap 数据刷到 LED 点阵屏幕上

  • 函数功能:
    将 bitmap 切割成每块8x8 LED 点阵屏数据,并通过 SPI DIN 口将数据刷到 LED 点阵屏幕上
  • 函数原型:

gc7219Obj.flush()

  • 参数说明:
  • 返回值:
  • 示例:
from machine import SPI, Pin
import gc7219

# 初始化 SPI
spiObj = SPI(2, baudrate=2000000, sck=Pin(18), mosi=Pin(23), miso=Pin(19))
# 初始化片选
csObj = Pin(21, Pin.OUT)
# 创建 GC7219 驱动
gc7219Obj = gc7219.GC7219(spiObj, csObj)
print("GC7219 inited!")

# 准备 bitmap 点阵屏数据
# 一共 32x8 宽高的 bitmap,设置第一块 0 0、第二块1 1、第三块2 2、第四块3 3点亮
gc7219Obj.bitmap.setPixel(0, 0, True)
gc7219Obj.bitmap.setPixel(8+1, 1, True)
gc7219Obj.bitmap.setPixel(16+2, 2, True)
gc7219Obj.bitmap.setPixel(24+3, 3, True)
# 将 bitmap 刷新到 LED 屏幕上
gc7219Obj.flush()
print("drv.bitmap flush done")
  • 输出:
GC7219 inited 
drv.bitmap flush done

四、接口案例

  • 代码:
# Python代码
from machine import SPI, Pin
import gc7219

# 初始化 SPI
spiObj = SPI(2, baudrate=2000000, sck=Pin(18), mosi=Pin(23), miso=Pin(19))
# 初始化片选
csObj = Pin(21, Pin.OUT)
# 创建 GC7219 驱动
gc7219Obj = gc7219.GC7219(spiObj, csObj)
print("GC7219 inited!")
# 一共 32x8 宽高的 bitmap,设置第一块 0 0、第二块1 1、第三块2 2、第四块3 3点亮
gc7219Obj.bitmap.setPixel(0, 0, True)
gc7219Obj.bitmap.setPixel(8+1, 1, True)
gc7219Obj.bitmap.setPixel(16+2, 2, True)
gc7219Obj.bitmap.setPixel(24+3, 3, True)
# 将 bitmap 刷新到 LED 屏幕上
gc7219Obj.flush()
print("drv.bitmap flush done")
  • 输出:
...
GC7219 inited!
drv.bitmap flush done
...

五、通信协议

主控芯片与LED点阵屏之间使用 SPI 通讯,多块8x8点阵屏使用菊花链模式链接,即通过 SPI 主从串联方式,将一组数据刷新到所有点阵屏上。

六、工作原理

LED 控制芯片采用 GC7219,内部拥有 8x8 RAM 存储 64 个 LED 的点亮状态。
MCU 与从设备传输数据时,首先将 CS 片选信号置为低电平,随后通过 MOSI 传输数据存储到从设备的移位寄存器中,当 CS 信号从低电平设置为高电平时,从设备在上升沿将数据锁存,数据生效。
image.png

参考文献及购买链接

[1] GC7219 Datasheet参考资料
[2] GC7219购买链接

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

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

相关文章

义乌再次位列第一档!2022年跨境电商综试区评估结果揭晓!

义乌跨境电商综试区捷报频传,在商务部公布的“2022年跨境电子商务综合试验区评估”结果中,中国(义乌)跨境电子商务综合试验区(以下简称:“跨境综试区”)评估结果为成效明显,综合排名…

Qt扫盲-QImage 理论总结

QImage 理论总结 一、概述二、读写图像文件三、图像信息四、像素操作1. 32位2. 8位 五、图像格式六、图像转换 一、概述 QImage类提供了一个独立于硬件的图像表示,允许直接访问像素数据,并且可以用作绘画设备。Qt提供了四个类来处理图像数据&#xff1a…

volatile-可见性案例详解

6.3 volatile特性 6.3.1 保证可见性 保证不同线程对某个变量完成操作后结果及时可见,即该共享变量一旦改变所有线程立即可见 不加volatile,没有可见性,程序无法停止 加了volatile,保证可见性,程序可以停止 public…

爱创科技携手洽洽食品,探索渠道数字化最优解!

坚果的下半场,是从吃到喝。 消费升级大潮下,健康养生理念逐渐深入人心。以“天然健康”为核心的食品新消费潮流正加速形成,一个个打着“美味与营养”黄金设定的品类风口正被不断创建,其中人气有增无减的当属植物基饮品。据相关报告…

数据结构详细笔记——树

文章目录 树的定义和基本术语结点、树的属性描述有序树与无序树树与森林 树的常考性质树的存储结构双亲表示法(顺序存储)孩子表示法(顺序链式存储)孩子兄弟表示法(链式存储) 树和森林的遍历树的遍历森林的遍…

JVM、JRE、JDK

JVM JVM(Java Virtual Machine)是Java虚拟机的缩写,他是Java编程语言运行时环境,负责执行Java字节码。另外作为JVM虚拟机,它在各种操作系统上提供统一的平台,这帮助Java应用程序可以独立于操作系统底层运行…

Python自动化测试selenium指定截图文件名方法

这篇文章主要介绍了Python自动化测试selenium指定截图文件名方法,Selenium 支持 Web 浏览器的自动化,它提供一套测试函数,用于支持 Web 自动化测试,下文基于python实现指定截图文件名方法,需要的小伙伴可以参考一下 前…

Redis入门概述

Redis入门概述 1.redis是什么 是一种存在内存中的数据库。遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库。并且可以提供提供多种语言的 API。提供了主从模式、Redis Sentinel和Redis Cluster集群架构方案。总结来说redis是基于内存…

Ubuntu 下 VSCode Tab 间距非常小解决方案

Ubuntu 的 Tag 键很小,不利于阅读代码,检查 Tab Size 配的也没问题,也是4 解决方案为: 进入 设置-> 字体,把 红框中的 ‘Droid Sans Mono’, 删了 修改后如下: 再次回到代码界面,可以…

【框架源码篇 06】Spring源码题目

Spring源码面试题 谈谈你对Spring框架的理解? Spring 是一个开源的应用程序框架,它起源于 Rod Johnson 在其著名的 Spring Framework 专著中提出的一个轻量级框架的观念。下面是 Spring 的发展历史: 2002 年,Rod Johnson 发表了他的专著 …

硬盘驱动器(HDD)伺服系统鲁棒控制

在存在参数变化、非线性和噪声的情况下,轨道跟踪控制器必须实现更严格的调节。因此,利用闭环伺服系统采用μ合成和H∞优化等先进设计方法,实现鲁棒稳定性和鲁棒性能是合适的。 该磁盘组件由几个被称为圆盘的扁平磁盘组成,其两侧都…

找不到concrt140.dll无法继续执行此代码的解决方法总结,快速解决dll问题的5种方法

最近,我在使用电脑的过程中遇到了一个问题,即“找不到concrt140.dll无法继续执行此代码”。通过查阅资料和自己的实践,我了解到concrt140.dll是Microsoft Visual C 2015 Redistributable中的一个动态链接库文件。它提供了一些用于支持多线程编…

实战公益SRC | 弱口令登录+任意文件上传

目录 附言:从补天的公益src公司中选中了幸运儿。 1. 通过hunter鹰图平台搜索公司的相关资产,发现其采用了华途应用安全网关。 2.访问相关地址,尝试使用弱口令登录,发现直接利用admin/admin就登录了,可以看到后台的相…

Windows平台搭建wxWidgets 3.2.3开发环境

一.基础环境和使用的软件 操作系统:win11mingw工具集:i686-8.1.0-release-win32-sjljIDE:clionwxWidgets头文件:wxWidgets-3.2.3-headerswxWidgets库文件:wxMSW-3.2.3_gcc810_ReleaseDLL PS: 失败很多次才在网上看到, wxWidgets是挑mingw版本的.gcc用8.1,DLL就要用8.1 官网…

springBoot--ssm整合

ssm整合 1、创建项目并添加依赖2、配置数据源3、创建bean文件4、创建接口文件4.1创建接口文件4.2通过插件生成到mapper文件的xml文件4.3通过param进行签名,以后使用指定的名字在sql中取值4.4在sql语句中通过#{}进行取值4.5mapperScan:告诉MyBatis,扫描那个包下面的所…

【Acwing166】数独(dfs+剪枝+位运算)超级详细题解!

本题思路来源于acwing算法提高课 题目描述 看本文需要准备的知识 1.dfs算法基本思想 2.位运算基础 3.对剪枝这个名词的大概了解 剪枝优化位运算优化 常见四种剪枝策略 首先考虑这道题的搜索顺序,很明显,可以随意选择一个空格子,分支为这…

深入理解Java中的AbstractQueuedSynchronizer(AQS):并发编程的核心组件

文章目录 📕我是廖志伟,一名Java开发工程师、Java领域优质创作者、CSDN博客专家、51CTO专家博主、阿里云专家博主、清华大学出版社签约作者、产品软文创造者、技术文章评审老师、问卷调查设计师、个人社区创始人、开源项目贡献者。🌎跑过十五…

wait、notify、notifyAll 方法的使用注意事项?

Java全能学习面试指南:https://javaxiaobear.cn 我们主要学习 wait/notify/notifyAll 方法的使用注意事项。 我们主要从三个问题入手: 为什么 wait 方法必须在 synchronized 保护的同步代码中使用?为什么 wait/notify/notifyAll 被定义在 …

基于灰狼算法的无人机航迹规划-附代码

基于灰狼算法的无人机航迹规划 文章目录 基于灰狼算法的无人机航迹规划1.灰狼搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要:本文主要介绍利用灰狼算法来优化无人机航迹规划。 1.灰狼搜索算法 …

Python桌面应用之XX学院水卡报表查询系统(Tkinter+cx_Oracle)

一、功能样式 Python桌面应用之XX学院水卡报表查询系统功能: 连接Oracle数据库,查询XX学院水卡操作总明细报表,汇总数据报表,个人明细报表,进行预览并且支持导出报表 1.总明细报表样式 2.汇总明细样式 3.个人明细…