为更新而更新,为保持更新状态而更新。

给学生讲解用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点阵相关推荐

  1. python turtle绘制七段数码管日期时间(注释)

    import turtle,time # 绘制单段数码管 #每次画笔描绘 真假 长度 描绘完成之后向右旋转角度 def drawGap():#每段描绘空格5像素turtle.penup()turtle ...

  2. python turtle 绘制七段数码管以及14段数码管显示字母和时间

    目录 书上的7段数码管,显示时间 书上的7断数码管显示应功都看过了,这里顺便提供一下` 看看显示原理 14段模型 14位数码管,画英文,和数字 书上的7段数码管,显示时间 书上的7断数码管显示应功都看 ...

  3. Python之绘制七段数码管

    今天课上老师教我们如何运用Python来绘制七段数码管,首先我们要了解七段数码管是怎么组成的,如下图 我们知道七段数码是怎么组成后,就开始来绘制七段数码管了.  一,绘制单个数码管 代码如下: imp ...

  4. python turtle画椭圆-python turtle 绘制太极图的实例

    效果如下所示: # -*- coding: utf-8 -*- import turtle # 绘制太极图函数 def draw_TJT(R): turtle.screensize(800, 600, ...

  5. python turtle画彩虹-Python turtle 绘制彩色螺旋线

    小朋友总会别各种五颜六色的色彩所吸引,就拿小编的小侄子来说,自己很喜欢美术课,看到五颜六色的颜色都想尝试着图一下,但结果总是不仅人意,今天南京小码王Python培训机构,就为大家介绍一下Python ...

  6. python简笔画绘制 数据驱动绘图恐龙_使用python turtle绘制简笔画大白-Go语言中文社区...

    使用python turtle绘制简笔画大白 完整代码: import turtle as t pen = t.Turtle() # 定义画笔实例 pen.speed(0) pen.pensize(5 ...

  7. 使用Python+turtle绘制同心圆

    使用Python+turtle绘制同心圆 问题描述:数学定义上是指:同一平面上同一圆心而半径不同的圆.简单来说就是:圆心相同半径不同的圆,如果几个圆的圆心是同一点,那么这几个圆就叫做同心圆. 本文使用 ...

  8. 使用python turtle绘制简笔画大白

    使用python turtle绘制简笔画大白 完整代码: import turtle as t pen = t.Turtle() # 定义画笔实例 pen.speed(0) pen.pensize(5 ...

  9. python turtle绘制圣诞树,就一棵破松树

    这里写自定义目录标题 python turtle绘制圣诞树 思路 代码 python turtle绘制圣诞树 思路 画三角形,从小到大,画,没了 代码 import turtle as tdef pa ...

最新文章

  1. tshark存储数据到mysql_网络分析利器wireshark命令版(2):tshark使用示例
  2. NET- SplitContainer控件说明
  3. 数据库乱象丛生,开发者该如何选择?
  4. 【软件项目管理】需求规格说明可以包括系统的运行环境
  5. 解决Zabbix网页端Get value error: cannot connect to [[192.168.238.139]:10050]: [113] No route to host问题...
  6. Linux篇---Grep和正则匹配
  7. 20行Python代码爬取王者荣耀全英雄皮肤
  8. OVS使用VLAN隔离VM流量
  9. java applet介绍,applet java 介绍
  10. SeasonJoe学长的考研日记
  11. 计算机与投影仪的记录,投影仪和电脑的连接及PPT播放
  12. 达达-京东到家面试总结
  13. 空间两条直线的最短距离及最近点计算
  14. 神一样的美国高中作文比喻集锦
  15. Matlab 公式大全
  16. 硬盘卡住磁头的解决办法
  17. 判了!腾讯获赔 475 万!首例“微信自动抢红包”不正当竞争案宣判
  18. Extraction failed.
  19. 计算机和管理结合,计算机应用技术与信息管理的结合
  20. java小程序_Java小程序

热门文章

  1. 通俗易懂告诉你CPU/GPU是什么?
  2. IoT -- (四) 物联网系统架构介绍
  3. Java面向对象编程篇3——接口与抽象类
  4. c语言c98标准,1.3.2 C语言标准
  5. php swoole udp,基于Swoole如何搭建UDP服务?
  6. c语言分配飞机10个座位,leetcode1227(飞机座位分配)--C语言实现
  7. 学php要先学css吗,学PHP是不是就必须学htmlcssjs
  8. bios设置 联想m8000t_怎么进bios设置硬盘启动顺序
  9. Web应用安全————多点登录互斥
  10. 管理服务器文件绿色版本,Services.msc服务器文件官方版