Linux数码管和点阵程序,随笔:python turtle绘制八段数码管和共阳极8x8led点阵
为更新而更新,为保持更新状态而更新。
给学生讲解用gpiozero库控制八段管和8x8共阳极LED点阵。已经讲解了单个LED的控制,RGB彩色灯珠的控制,在讲解八段管就很容易理解,多个八段管的讲解稍微麻烦一点,然后LED点阵为了便于理解,绘制了演示程序,可以演示行扫描图案变化过程,以及设置阳极高低引脚图案的变化。8短数码管的很简单,LED点阵的略复杂。
模拟共阴极八段数码管
image.png
from turtle import *
speed(0)
sega = Turtle()
sega.pu()
sega.goto(0, 300)
w = 150
h = 20
def rect(t,flag=True, fill=False):
for i in range(2):
if fill:
t.begin_fill()
if flag:
t.fd(w)
t.rt(90)
t.fd(h)
t.rt(90)
else:
t.fd(h)
t.rt(90)
t.fd(w)
t.rt(90)
if fill:
t.end_fill()
sega.pd()
rect(sega)
segg = Turtle()
segg.pu()
segg.goto(0, 120)
segg.pd()
rect(segg)
segd = Turtle()
segd.pu()
segd.goto(0, -65)
segd.pd()
rect(segd)
segb = Turtle()
segb.pu()
segb.goto(130, 275)
segb.pd()
rect(segb, False)
segc = Turtle()
segc.pu()
segc.goto(130, 90)
segc.pd()
rect(segc, False)
sege = Turtle()
sege.pu()
sege.goto(0, 90)
sege.pd()
rect(sege, False)
segf = Turtle()
segf.pu()
segf.goto(0, 275)
segf.pd()
rect(segf, False)
segh = Turtle()
segh.pu()
segh.goto(180, 30)
segh.pd()
rect(segh, False)
zero = [1, 1, 1, 1, 1, 1, 0, 0]
one = [0, 1, 1, 0, 0, 0, 0, 0]
two = [1, 1, 0, 1, 1, 0, 1, 0]
three = [1, 1, 1, 1, 0, 0, 1, 0]
four = [0, 1, 1, 0, 0, 1, 1, 0]
five = [1, 0, 1, 1, 0, 1, 1, 0]
segs = [sega, segb, segc, segd, sege, segf, segg, segh]
dirt = [True, False, False, True, False, False, True, False]
for seg in segs:
seg.speed(0)
for i in range(8):
if five[i] == 1:
rect(segs[i], flag=dirt[i], fill=True)
else:
rect(segs[i], flag=dirt[i], fill=False)
image.png
模拟共阳极8x8led点阵
image.png
from turtle import *
tracer(40, 2)
class LED():
def __init__(self, x, y, r=15):
self.r = r
self.neg = 0
self.pos = 0
self.t = Turtle()
self.t.pu()
self.t.goto(x, y)
self.t.speed(0)
self.t.ht()
self.setNeg(self.neg)
self.display()
def setNeg(self, value):
self.neg = value
self.display()
def display(self):
if self.neg == 1:
self.t.color((0.4, 0.4, 0.4), (1, 0, 0))
else:
self.t.color((0.4, 0.4, 0.4), 'white')
self.t.begin_fill()
self.t.pd()
self.t.circle(self.r)
self.t.pu()
self.t.end_fill()
offx = -200
offy = 200
leds = []
gap = 50
color((0.4, 0.4, 0.4))
pu()
goto(offx - gap/2, offy + 3*gap/4)
pd()
begin_fill()
for i in range(4):
fd(8 * gap)
rt(90)
end_fill()
##for row in range(8):
## led_row = []
## for col in range(8):
## led = LED(offx + gap * col, offy - gap * row)
## # led.display()
## led_row.append(LED(offx + 20 * col, offy - 20 * row))
## leds.append(led_row)
for j in range(8):
row = []
for i in range(8):
led = LED(offx + gap * i, offy - gap * j)
row.append(led)
leds.append(row)
from time import sleep
heart =[
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 1, 1, 0, 0, 1, 1, 0],
[1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1],
[0, 1, 1, 1, 1, 1, 1, 0],
[0, 0, 1, 1, 1, 1, 0, 0],
[0, 0, 0, 1, 1, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
]
heart_sm =[
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 1, 1, 0, 0, 1, 1, 0],
[1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1],
[0, 1, 1, 1, 1, 1, 1, 0],
[0, 0, 1, 1, 1, 1, 0, 0],
[0, 0, 0, 1, 1, 0, 0, 0],
]
while True:
for row in range(8):
for col in range(8):
leds[row][col].setNeg(heart[row][col])
leds[row][col].display()
for row in range(8):
for col in range(8):
leds[row][col].setNeg(heart_sm[row][col])
leds[row][col].display()
image.png
image.png
image.png
Linux数码管和点阵程序,随笔:python turtle绘制八段数码管和共阳极8x8led点阵相关推荐
- python turtle绘制七段数码管日期时间(注释)
import turtle,time # 绘制单段数码管 #每次画笔描绘 真假 长度 描绘完成之后向右旋转角度 def drawGap():#每段描绘空格5像素turtle.penup()turtle ...
- python turtle 绘制七段数码管以及14段数码管显示字母和时间
目录 书上的7段数码管,显示时间 书上的7断数码管显示应功都看过了,这里顺便提供一下` 看看显示原理 14段模型 14位数码管,画英文,和数字 书上的7段数码管,显示时间 书上的7断数码管显示应功都看 ...
- Python之绘制七段数码管
今天课上老师教我们如何运用Python来绘制七段数码管,首先我们要了解七段数码管是怎么组成的,如下图 我们知道七段数码是怎么组成后,就开始来绘制七段数码管了. 一,绘制单个数码管 代码如下: imp ...
- python turtle画椭圆-python turtle 绘制太极图的实例
效果如下所示: # -*- coding: utf-8 -*- import turtle # 绘制太极图函数 def draw_TJT(R): turtle.screensize(800, 600, ...
- python turtle画彩虹-Python turtle 绘制彩色螺旋线
小朋友总会别各种五颜六色的色彩所吸引,就拿小编的小侄子来说,自己很喜欢美术课,看到五颜六色的颜色都想尝试着图一下,但结果总是不仅人意,今天南京小码王Python培训机构,就为大家介绍一下Python ...
- python简笔画绘制 数据驱动绘图恐龙_使用python turtle绘制简笔画大白-Go语言中文社区...
使用python turtle绘制简笔画大白 完整代码: import turtle as t pen = t.Turtle() # 定义画笔实例 pen.speed(0) pen.pensize(5 ...
- 使用Python+turtle绘制同心圆
使用Python+turtle绘制同心圆 问题描述:数学定义上是指:同一平面上同一圆心而半径不同的圆.简单来说就是:圆心相同半径不同的圆,如果几个圆的圆心是同一点,那么这几个圆就叫做同心圆. 本文使用 ...
- 使用python turtle绘制简笔画大白
使用python turtle绘制简笔画大白 完整代码: import turtle as t pen = t.Turtle() # 定义画笔实例 pen.speed(0) pen.pensize(5 ...
- python turtle绘制圣诞树,就一棵破松树
这里写自定义目录标题 python turtle绘制圣诞树 思路 代码 python turtle绘制圣诞树 思路 画三角形,从小到大,画,没了 代码 import turtle as tdef pa ...
最新文章
- tshark存储数据到mysql_网络分析利器wireshark命令版(2):tshark使用示例
- NET- SplitContainer控件说明
- 数据库乱象丛生,开发者该如何选择?
- 【软件项目管理】需求规格说明可以包括系统的运行环境
- 解决Zabbix网页端Get value error: cannot connect to [[192.168.238.139]:10050]: [113] No route to host问题...
- Linux篇---Grep和正则匹配
- 20行Python代码爬取王者荣耀全英雄皮肤
- OVS使用VLAN隔离VM流量
- java applet介绍,applet java 介绍
- SeasonJoe学长的考研日记
- 计算机与投影仪的记录,投影仪和电脑的连接及PPT播放
- 达达-京东到家面试总结
- 空间两条直线的最短距离及最近点计算
- 神一样的美国高中作文比喻集锦
- Matlab 公式大全
- 硬盘卡住磁头的解决办法
- 判了!腾讯获赔 475 万!首例“微信自动抢红包”不正当竞争案宣判
- Extraction failed.
- 计算机和管理结合,计算机应用技术与信息管理的结合
- java小程序_Java小程序
热门文章
- 通俗易懂告诉你CPU/GPU是什么?
- IoT -- (四) 物联网系统架构介绍
- Java面向对象编程篇3——接口与抽象类
- c语言c98标准,1.3.2 C语言标准
- php swoole udp,基于Swoole如何搭建UDP服务?
- c语言分配飞机10个座位,leetcode1227(飞机座位分配)--C语言实现
- 学php要先学css吗,学PHP是不是就必须学htmlcssjs
- bios设置 联想m8000t_怎么进bios设置硬盘启动顺序
- Web应用安全————多点登录互斥
- 管理服务器文件绿色版本,Services.msc服务器文件官方版