| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> MicroPython-On-ESP8266——数码管的使用,四位数码管及动态扫描显示 -> 正文阅读 |
|
[嵌入式]MicroPython-On-ESP8266——数码管的使用,四位数码管及动态扫描显示 |
MicroPython-On-ESP8266——数码管的使用,四位数码管及动态扫描显示1. 四位数码管介绍
显然这么做就太蠢了,从上图也能看出来,这个HS420361K-32数码管只引出12个引脚出来,上下各6个。这个数码管是共阴型的,后面的学习都是按共阴模式来的(公共端接地),如果是共阳型的只要反过来控制就行,所以咱们要好好学习一下原理图及驱动逻辑。 2. 四位数码管原理及驱动方式2.1. 电路原理图这个数码管我没找到厂家及官方电路原理图,只能在淘宝上查这个型号,然后一家家看商品宣传里面有没有资料,只找到一个类似的其他型号的原理图,但实际结构是一致的。 3-1)只看最左边那8个二极管,对应的就是四位数码管的第一位,单看这个的话,跟上节那个单位的数码管也是一样的,只不过不同的是这里标12呈引脚的地方都是接到了led二极管的负极,正极按A~DP这8个段位来看,依次接到了11/7/4/2/1/10/5/3这几个引脚上。上节文章里面最后的实验部分,我就是接了这几个地方的连接来展示效果的,就是共阳和共极处理时,十六进制的编码部分要取反一下。 2.2. 驱动原理分析电路结构已经清楚了,那就看如果驱动四位数码管显示了,因为每一位的同名段led是并联在一起的,也就意味着,如果按上节课学过的十六进制方式控制段位引脚的高低电平时,这4位显示的数值是一样的(前提是这4位的公共端都接地了) 那下来就要解决两个问题:1是怎样控制每一位是否开启(公共端与esp8266之间加个能控制的开关);2是怎样让这四位能同时显示不同的数值,毕竟都显示一样的话也就失去多位的意义了。 2.2.1. 每个位独立开关的方式电路原理图上数码管的12/9/8/6这四个引脚是各个管位的公共端,接到单片机负极,然后段位引脚上给高电平就可以点亮对应的led段。四个公共端都接负极,那四个管位都显示一样的内部,哪个不接负极哪个就不显示。 是不是需要个开关的意思呀,那就需要借助三极管来实现了,这里只贴一下三极管使用的接线原理,具体为何能用三极管控制,三极管又是通过什么原理去控制的,这都够展示个专题来写了。我对数模电这些的不精通,就不献丑了。
2.2.2. 各位数码管显示不同数值的方式(动态扫描)由于各位数码管的同名段位led是并联在一起的,所以在各位上显示的数值是一样的,如果想要不一样,其实利用到的是人的视觉暂留机制。 3. 实验:四位数码管显示不断增长的数字3.1. 接线图根据前面原理及驱动的分析,咱们可以把数码管跟ESP8266开发板连接起来了,需要用到12个GPIO口来控制8个段+4个管位,还需要借助4个NPN小型三极管来做各个位的开关。
我是按照图上GPIO口的顺序来接线的呀,几个意思~ 重要烧录固件包,还好esptool工具还能正常操作,过程不表。顺便刷了最新的esp8266-20210902-v1.17.bin固件。 回到micropython官网查查,汗~ 只有9个IO口能用,咱还指望着用12个来动态扫描呢。。。。
3.2. 测试代码这测试代码算是阉割版了,只能驱动两位数码管。
3.2.1. 消抖与消影
最后面的while循环里面,用法比较怪异,看上面的片段: 其实这里这样写,是使用到了消抖和消影的手法,先保持一段时间是为了让人产生视觉暂留,但时间又不能长,我原来写的10毫秒,都会有抖动的现象。后面关闭管位后,又保持了一段时间,其实这也是利用了视觉暂留,不加这一段时间而直接显示下一轮数字时,后面出现的数字还有叠加上一轮数字的轮廓,看起来像是上一轮数字有影子一样的。 大家拿到代码,把sleep_ms里面的参数调一调,自己体会一下。调得不好,要不就是数字在抖动,要不就是有重影。 3.3. 实验效果唉,这效果只能看到两位管,太打击人了,不过正好,也为咱们下一节学习由两片595位移寄存器驱动的数码管打下基础,到时候就不用为IO口不够用发愁了。 |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 8:23:14- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |