74hc595-7x11-demo - 嘉立创EDA开源硬件平台

编辑器版本 ×
标准版 Standard

1、简单易用,可快速上手

2、流畅支持300个器件或1000个焊盘以下的设计规模

3、支持简单的电路仿真

4、面向学生、老师、创客

专业版 professional

1、全新的交互和界面

2、流畅支持超过3w器件或10w焊盘的设计规模,支持面板和外壳设计

3、更严谨的设计约束,更规范的流程

4、面向企业、更专业的用户

标准版 74hc595-7x11-demo

简介:74HC595驱动7x11点阵屏(LED-7X11-JHM)DEMO

开源协议: GPL 3.0

(未经作者授权,禁止转载)

创建时间: 2023-08-06 17:08:09
更新时间: 2024-03-03 13:40:11
描述
## 起因 由于我之前做了一个[点阵时钟](https://gitee.com/lengff/esp8266-lattice-clock-open) ,但是无奈LED点阵屏价格比较贵,所以想找一个价格较为便宜的点阵来做便宜一点的点阵方案,再淘宝上看到有那种五毛钱一个的7x11的LED点阵,所以就想着试试搞一下这种点阵屏,这个由于是7x11的点阵,没有比较好的驱动芯片,只能自己想办法,此时就想起以前用的``74HC595``芯片,用这个芯片来驱动LED点阵试试。 ![淘宝截图](//image.lceda.cn/pullimage/ZxJoI2T0dqtraY526DL5ngo4qIBjcVJWoHtZZUCm.jpeg) ## 原理 - 关于74HC595相关原理的可以参考我这篇 [Arduino+2 片 74hc595 驱动 8x8 (共阳) 点阵 (1008BS)](http://blog.lengff.com/2019/06/16/arduino-74h595-demo/) 由于点阵是7x11的格式,不是那种标准的8x8,所以代码的处理上都有些许的麻烦,所以可以把三个LED点阵看成一个整体,所以就是 7x33 的格式,需要的引脚就是 33+7= 40 个IO口,然后一个74HC595是可以控制8个IO口,这里用5个74HC595芯片即可。 ![电路原理图](//image.lceda.cn/pullimage/tqDVwNZOx8Pi1bMBESTqJ7OluekODKGn6iOD5EE6.jpeg) ## 立创PCB地址 [74HC595驱动7x11点阵屏DEMO验证PCB](https://oshwhub.com/fly-fish-studio/74hc595-7x11-demo.) ## 成品图 ![2.jpg](//image.lceda.cn/pullimage/sMB8EEM0tnVxB60rBSYeYoychHEGziqPy60fHKje.jpeg) ![3.jpg](//image.lceda.cn/pullimage/TSMNVljm7I2w1twFW17AIK8mH3tHCFHohdADsbY6.jpeg) ## 取模方法 - 这是在线取模地址:[点阵取模工具](http://lengff.com/lengff/lattice3.html) 这个取模主要是受代码控制,我这里的取模是直接用8x8的点阵取模逻辑,所以最末尾列是没有点亮的,这里可自行修改代码,具体请参考我的截图,不做过多解释 ![取模方法](//image.lceda.cn/pullimage/R6MwPL4Trapy5Jq3ekbRYoUTk3rtuqjmGs8woj9Y.png) ## arduino代码 - 这里用ESP8266的代码为例,其他板子的代码只需要改改引脚地址即可 ```c int latchPin = D6; int clockPin = D7; int dataPin = D5; /** 这里为啥是 7 - 5 7:表示每一行显示的内容 5:前面第一个是表示每行的行号,后面四个表示每八个一列显示的内容 所以这里取模的时候,第一列的值是固定的,后面每一列为一组,而不是一行为一组 */ uint8_t nums_font[7][5] = { {0x3f, 0xe0, 0x7e, 0x10, 0x18}, {0x5f, 0xa0, 0x81, 0x28, 0x3c}, {0x6f, 0xee, 0xa5, 0x44, 0x7e}, {0x77, 0x28, 0x81, 0x44, 0xff}, {0x7b, 0xee, 0x99, 0x7c, 0x18}, {0x7d, 0x0a, 0x81, 0x44, 0x18}, {0x7e, 0x0e, 0x7e, 0x44, 0x18} }; void setup() { Serial.begin(115200); pinMode(latchPin, OUTPUT); pinMode(clockPin, OUTPUT); pinMode(dataPin, OUTPUT); } void loop() { // 首先我们先获取数字取模的结果 // 这里为啥会是7,因为纵向只有七列 for (int i = 0; i < 7; i++) { digitalWrite(latchPin, LOW); // 这里为啥是5?因为横向33列是由 4片74hc595 + 第5片74hc595的第一个引脚控制的 for (int j = 0; j < 5; j++) { shiftOut(dataPin, clockPin, LSBFIRST, nums_font[i][(5-j)%5]); } digitalWrite(latchPin, HIGH); delay(1); } } ``` ## 尾巴 这里本来是想适配我那个点阵时钟代码的,但是由于这个的显示方式是逐行扫描,延迟只有1ms左右,所以搞起来很麻烦,需要一点时间去适配,希望后续可以搞定
设计图
原理图
1 /
PCB
1 /
未生成预览图,请在编辑器重新保存一次
ID Name Designator Footprint Quantity spiceSymbolName link
1 0.1UF C1 C0603 1 LCEDA_Lib C_0603_US
2 HDR-F-2.54_1x5 H1 HDR-F-2.54_1X5 1 LCEDA_Lib HDR-F-2.54_1x5
3 LED点阵7X11-JHM-2 LED1,LED2,LED3 LED-7X11-JHM-46.8X30 3 WOSHI6666444444 LED点阵7X11-JHM-2
4 74HC595 U1,U2,U3,U4,U5 74HC595 5 保持热爱 奔赴星海 74HC595

展开

工程视频/附件
暂无
侵权投诉
相关工程
换一批
加载中...
添加到专辑 ×

加载中...

温馨提示 ×

是否需要添加此工程到专辑?

温馨提示
动态内容涉嫌违规
内容:
  • 153 6159 2675

服务时间

周一至周五 9:00~18:00
  • 技术支持

support
  • 开源平台公众号

MP