当前位置:   article > 正文

物联网开发笔记(73)- 使用Micropython开发ESP32开发板之控制带74HC595芯片的4位数码管_python 74hc595

python 74hc595

        大家在很多嵌入式设备上,经常看到数码管,可以显示数字,英文字母,非常的实用。下面我们一起学习怎么用ESP32开发板来控制它。之前我们已经学习过,数码管相关的内容,大家可以回去复习一下:

物联网开发笔记(21)- 使用Micropython开发ESP32开发板之控制单个数码管_microptython 数码管_魔都飘雪的博客-CSDN博客使用Micropython开发ESP32开发板之控制单个数码管https://blog.csdn.net/zhusongziye/article/details/127242295?spm=1001.2014.3001.5501物联网开发笔记(22)- 使用Micropython开发ESP32开发板之控制数码管实例_micropython示例_魔都飘雪的博客-CSDN博客物联网开发笔记(22)- 使用Micropython开发ESP32开发板之控制数码管实例https://blog.csdn.net/zhusongziye/article/details/127289716?spm=1001.2014.3001.5501物联网开发笔记(23)- 使用Micropython开发ESP32开发板之控制4位数码管_魔都飘雪的博客-CSDN博客使用Micropython开发ESP32开发板之控制4位数码管显示数字https://blog.csdn.net/zhusongziye/article/details/127289606?spm=1001.2014.3001.5501        以上内容是根据数码管的针脚,一个个接线的,比较占用IO口。所以下面使用带74HC595芯片的4位数码管来节省珍贵的IO口资源。

一、目的

        使用MicroPython开发ESP32,控制带74HC595芯片的4位数码管

二、环境

        ESP32开发板 + 带74HC595芯片的4位数码管 + Thonny IDE + Win10

三、带74HC595芯片的4位数码管介绍

        74HC595芯片介绍,如下图:

        

四、硬件接线方法

     

 

五、代码

  1. from machine import Pin
  2. # import utime
  3. # 准备数据引脚
  4. pin_sclk = Pin(12, Pin.OUT); pin_sclk.off() # 上升跳变时锁存
  5. pin_rlck = Pin(14, Pin.OUT); pin_rlck.off() # 上升跳变时数据位移
  6. pin_dio = Pin(13, Pin.OUT); pin_dio.off() # 待移入数据位
  7. mapper = { # 共阳方式段码对照
  8. '0': 0xC0, '1': 0xF9, '2': 0xA4, '3': 0xB0,
  9. '4': 0x99, '5': 0x92, '6': 0x82, '7': 0xF8,
  10. '8': 0x80, '9': 0x90, 'A': 0x88, 'B': 0x83,
  11. 'C': 0xA7, 'D': 0xA1, 'E': 0x86, 'F': 0x8E,
  12. }
  13. def jump_up(pin):
  14. pin.on() # 产生跳变
  15. # utime.sleep_ms(1)
  16. pin.off() # 保持一段时间后关闭
  17. def send_data(num, is_position=False, has_point=False):
  18. '向位称寄存器送数据'
  19. if is_position: # 位码处理( 1~4位)
  20. value = {1:0x01, 2:0x02, 3:0x04, 4:0x08}.get(num, 0)
  21. else: # 段码处理
  22. value = mapper.get(str(num), 0)
  23. value = value & 0x7F if has_point else value # 共阳方式
  24. # value = (~value | 0x80) if has_point else ~value # 共阴方式
  25. for i in range(8):
  26. pin_dio.value(1 if (value << i) & 0x80 else 0) # 从最高位开始送数据
  27. jump_up(pin_sclk) # 每送完一位后就让位移寄存器跳变一下
  28. num = 0
  29. step = 1
  30. while True:
  31. # 显示千位
  32. send_data(int(num/1000))
  33. send_data(4, is_position=True)
  34. jump_up(pin_rlck)
  35. # 显示百位
  36. send_data(int(num / 100 % 10))
  37. send_data(3, is_position=True)
  38. jump_up(pin_rlck)
  39. # 显示十位
  40. send_data(int(num / 10 % 10))
  41. send_data(2, is_position=True)
  42. jump_up(pin_rlck)
  43. # 显示个位
  44. send_data(int(num % 10))
  45. send_data(1, is_position=True)
  46. jump_up(pin_rlck)
  47. if step%100==0:
  48. num += 1
  49. if num>9999: num=0
  50. step += 1

六、购买地址

https://item.taobao.com/item.htm?spm=a1z09.2.0.0.51c12e8d1eMPbI&id=522572326758&_u=4p01rchca48icon-default.png?t=N176https://item.taobao.com/item.htm?spm=a1z09.2.0.0.51c12e8d1eMPbI&id=522572326758&_u=4p01rchca48

 数码管资料下载:

下载链接:https://pan.baidu.com/s/1-Fikj7zqFbh2xSRPmTXTmQ      提取码:recu

七、参考文章和课程

1,MicroPython-On-ESP8266——数码管的使用,2片HC595驱动四位数码管_嗑烤队长的博客-CSDN博客_micropython hc595MicroPython-On-ESP8266——数码管的使用,2片HC595驱动四位数码管1. 背景前面在使用四位数码管时,需要用来12个GPIO接口,结果咱micropython能驱动的esp8266开发板只有9个口能用,导致只能驱动两位数码管。还好动态扫描的机制是用到了。这回来学习第三个数码管,由两片72HC595位移寄存器芯片驱动的四位数码管。2. 位移寄存器芯片74HC595先了解一下这个74HC595芯片(收下简称595)是个什么东西又是如何工作的。2.1. 595原理图https://blog.csdn.net/fatway/article/details/1212763362,17,MicroPython Esp32 使用74hc595驱动数码管_哔哩哔哩_bilibilieps32物联网芯片课程连接:https://h5.m.taobao.com/awp/core/detail.htm?ft=t&id=694099001741, 视频播放量 148、弹幕量 0、点赞数 9、投硬币枚数 2、收藏人数 4、转发人数 0, 视频作者 下班后实验室, 作者简介 勤学如春起之苗,不见其增日有所长;辍学如磨刀之石,不见其损日有所亏。,相关视频:16,MicroPython Esp32 数码管工作原理&驱动单位数码管实现静态动态显示,19,MicroPython Esp32 使用74hc595串联三线驱动LCD1602液晶SPI协议LCD1602,18,MicroPython Esp32 RTC时钟&数码管显示实验,手把手教你学ESP32--基于MicroPython,22,MicroPython Esp32驱动max7219点阵详细讲解8x8点阵,2,MicroPython Esp32物联网课 基本延时time延时使用,1,MicroPython Esp32物联网微控制器开发环境配置,STM32入门教程-2023持续更新中,46、[下班后]STM32读取DHT11温湿度传感器数值DHT11驱动程序DHT11传感器介绍&应用实例,28、[下班后]STM32使用74HC595驱动LCD1602液晶https://www.bilibili.com/video/BV1y44y1U7bQ/?spm_id_from=333.788&vd_source=1117e013b2a310072ed7cf742e8d7cf9最后,希望和大家一起学习进步。如果你有好的学习资源,请在评论区分享,谢谢!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/211502
推荐阅读
相关标签
  

闽ICP备14008679号