1.led点阵原理....

老师给的led点阵是8*8的..

我把他们理解为坐标,有几个引脚的来控制选择y轴的灯,而其他几个是控制显示x轴哪个亮

这个原理跟2位8段led差不多,x轴的可以理解位8个灯管,而y轴的理解为选择。

我们要驱动它显示字母,就要用到时分复用,这个在之前实验都用到了,就不在多讲,直接类比到这个点阵,每次选择一个y轴,然后亮x轴的灯,然后灭了,再下一行,这一速度快了看起来就是连续的了!

附上我探索得到的led点阵的引脚与显示的关系:(手工做图,比较丑陋)

2.与树莓派GPIO连接

由于我的树莓派引脚有两个有点问题,所以我就用了10个引脚来控制5*5的led灯

树莓派GPIO示意图:(因为我用的是Rpi.GPIO的库,所以用这个图)

其对应的关系如下:

pin{7,11,13,19,21}对应的是led的y轴,

pin{23,26,24,22,12}对应的是led

的 x轴,

如下图:

3.设计字母

这次设计字母,用到了图形学的二值图(说的那么高端其实就是小孩子图格子)....

A:

00100

01010

11111

10001

10001

这应该很明显 就是亮的格子是1,不亮是0..然后设计26个字母,用以上的方式对他们进行编码....

4.连接好一切之后就是写python脚本了

这个做过led

8段数码管的驱动的来说应该很简单(道相同!)

另外这次脚本读外部的data文件,使得脚本拓展性强了,可以任意拓展

ab.py:

import RPi.GPIO as GPIO

import sys

import string

import time

GPIO.setmode(GPIO.BOARD)

SUM = 0

gpioy = [7,11,13,19,21] #y

gpiox = [23,26,24,22,12]#x

table = {}#data!

alpha = []

def init():

global SUM

for line in open("./data"):

t = line.split(',') #t[0] key,t[1] + t[2] value1

key = t[0]

value = t[1],t[2],t[3],t[4],t[5]

table[key] = value #append

alpha.append(key)

SUM = SUM +1

def setx(a):

#light x!

#a='00100' do nothing

for i in range(0,4+1):

o = string.atoi(a[i])

if o==1:

GPIO.output(gpiox[i],GPIO.LOW)

def downx(a):

for i in range(0,4+1):

o = string.atoi(a[i])

if o==1:

GPIO.output(gpiox[i],GPIO.HIGH)

if __name__ == "__main__":

#sys.argv[1]

init()

GPIO.setwarnings(False)

#set to output!

for i in range(0, 4 + 1):

GPIO.setup(gpioy[i],GPIO.OUT)

GPIO.setup(gpiox[i],GPIO.OUT)

GPIO.output(gpioy[i],GPIO.LOW)

GPIO.output(gpiox[i],GPIO.HIGH)

for k in range(0,SUM):

n = table[alpha[k]]

print alpha[k]

i = 0

while i<1000:

a = n[0]

setx(a)

GPIO.output(gpioy[0],GPIO.HIGH)

downx(a)

GPIO.output(gpioy[0],GPIO.LOW)

a = n[1]

setx(a)

GPIO.output(gpioy[1],GPIO.HIGH)

downx(a)

GPIO.output(gpioy[1],GPIO.LOW)

a = n[2]

setx(a)

GPIO.output(gpioy[2],GPIO.HIGH)

downx(a)

GPIO.output(gpioy[2],GPIO.LOW)

a = n[3]

setx(a)

GPIO.output(gpioy[3],GPIO.HIGH)

downx(a)

GPIO.output(gpioy[3],GPIO.LOW)

a = n[4]

setx(a)

GPIO.output(gpioy[4],GPIO.HIGH)

downx(a)

GPIO.output(gpioy[4],GPIO.LOW)

i = i+1

data:(只要在文本后面按格式加入想要的符号和编码就能显示啦!方便又好玩)

a,00100,01010,11111,10001,10001

b,11110,10001,11110,10001,11110

c,00111,01000,10000,01000,00111

d,11100,10010,10001,10010,11100

e,11111,10000,11111,10000,11111

f,11111,10000,11111,10000,10000

g,11111,10000,10001,10001,11111

h,10001,10001,11111,10001,10001

i,01110,00100,00100,00100,01110

j,01110,00100,00100,00100,01100

k,10001,10010,11100,10010,10001

l,10000,10000,10000,10000,11111

m,10001,11011,10101,10001,10001

n,10001,11001,10101,10011,10001

o,01110,10001,10001,10001,01110

p,11110,10001,11110,10000,10000

q,01110,10001,10101,10001,01110

r,11110,10001,11110,10010,10001

s,11111,10000,11111,00001,11111

t,11111,00100,00100,00100,00100

u,10001,10001,10001,10001,11111

v,10001,10001,10001,01010,00100

w,10001,10001,10101,11011,10001

x,10001,01010,00100,01010,10001

y,10001,01010,00100,00100,00100

z,11111,00010,00100,01000,11111

5.效果

URL:

http://v.youku.com/v_show/id_XNTY2MTk3NDA0.html

python点阵显示数字_led点阵——字母显示(可拓展,python脚本)相关推荐

  1. python数值计算guess_【python】猜数字game,旨在提高初学者对Python循环结构的使用...

    import random  #引入生成随机数的模块 ''' 需求:程序设定生成 1-20 之间的一个随机数,让用户猜 日期:2019-10-21 作者:xiaoxiaohui 目的:猜数字game, ...

  2. python自动化常用数字_Python全栈自动化系列之Python编程基础(基本数据类型)

    一.数值类型数据 1.整数(int):整数 2.浮点数(float):小数 3.布尔值(bool):只有两个值True和False 二.数据类型转换 1.整数和浮点数转换成字符串:使用str 2.字符 ...

  3. python命名规则数字开头的成语_浅谈Python中带_的变量或函数命名

    搜索热词 Python 的代码风格由 PEP 8 描述.这个文档描述了 Python 编程风格的方方面面.在遵守这个文档的条件下,不同程序员编写的 Python 代码可以保持最大程度的相似风格.这样就 ...

  4. python 提取一个单词的所有字母_如何用python提取单词(正则表达式or分割)

    "What brings u here today!"(今天什么风把你吹过来了!),相信大家也是遇到和我一样的难题了吧,想把字母提取出来很简单,但是想把整个单词(还不是相同的单词) ...

  5. python中矩阵的表示方法_在python中创建数字的二进制表示形式的矩阵 - python

    为了在鼠尾草中编程汉明鳕鱼(基于python的编译器),我需要创建一个矩阵,其中每一列都是数字的二进制表示形式 说Hamming(3)矩阵应该像这样 0 0 0 1 1 1 1 0 1 1 0 0 1 ...

  6. python输出字符串中的大写字母_如何在python中查找字符串中的大写字母

    我想在一个字符串的任何位置找到大写字母,我想如果一个字符串在一个字符串的任何位置由大写字母组成,那么应该打印字符串"1",如果字符串在任何位置不包含任何大写字母,那么应该打印字符串 ...

  7. 使用74LS245驱动8×8LED点阵屏显示数字

    使用8×8LED点阵屏显示数字.   点阵取模使用软件PCtoLCD2002取模软件,使用74LS245驱动点阵. 取模方式:阴码.列行式.顺位.C51格式. 取模软件的设置: 电路原理图: 代码: ...

  8. 加一计时器——每隔1s六位数码管显示数字加1,直至999999,之后归零,重新开始。

    加一计时器 2021-01-23,51单片机学习笔记 每隔1s六位数码管显示数字加1,直至999999,之后归零,重新开始. 代码: #include <reg52.h> #define ...

  9. python获取输入数字_python获取从命令行输入数字的方法

    本文实例讲述了python获取从命令行输入数字的方法.分享给大家供大家参考.具体如下: #---------------------------------------- # Name: numeri ...

最新文章

  1. 看漫画学python 豆瓣_看漫画就能学好python?
  2. 洛谷 P3368 【模板】树状数组 2
  3. python正则re
  4. 程序员过关斩将--领导说我的类的职责不单一
  5. Qt图形界面编程入门(创建一个简单的程序)
  6. JPA 多条件、多表查询
  7. sap 标准委外和工序委外_SAP那些事-实战篇-74-公司间委外的几种方式探讨
  8. 聊聊flink的KvStateRegistryGateway
  9. matlab imcrop 细节分析
  10. vue里面使用echarts实现根据浏览器屏幕大小自适应
  11. 【《Real-Time Rendering 3rd》提炼总结】完结篇:系列合集电子书PDF下载实时渲染知识网络图谱新系列预告
  12. smaba(跨平台文件共享)
  13. 【论文解读 WSDM 2018 | SHINE】Signed HIN Embedding for Sentiment Link Prediction
  14. 新iPhoneSE开卖市场预期不一?二手市场已降价转售
  15. 数据库中的CAP原理
  16. Jupyter Notebook 删除不需要的 Kernels
  17. Javascript与多线程
  18. AM Best将中国再保险(集团)股份有限公司及其子公司的发行人信用评级展望调整为正面,并确认中国再保险(香港)股份有限公司的信用评级
  19. 西门子消防主机FC18配套CAN光端机进行光纤冗余环网组网测试
  20. Vue 项目 build 流程解析(webpack工具解析)

热门文章

  1. dna分子结构具有抽象_新技术活动,抽象是具有远见的
  2. 南大通用GBase 8s优势介绍
  3. ECG信号读取,检测QRS,P,T 波(基于小波去噪与检测),基于BP神经网络的身份识别
  4. 半天打造小型万能OA办公系统, 靠的就是万能表单提交 + 轻量级工作流审批组件...
  5. ubuntu用Docker部署kafka消息服务
  6. aerospike数据库的使用
  7. 图解HTTP读书笔记(十)
  8. 二、软考2017年下半年软件设计师易错题整理
  9. 管家婆 mysql_管家婆数据库表.doc
  10. 关于完全卸载Office的一些记录