zoukankan      html  css  js  c++  java
  • MicroPython拼插编程实例:点亮心形8x8点阵

    一、什么是TPYBoard开发板
    TPYBoard是以遵照MIT许可的MicroPython为基础的一款MicroPython开发板,它基于STM32F405单片机,通过USB接口进行数据传输。该开发板内置4个LED灯、一个加速传感器,可在3V-10V之间的电压正常工作。TPYBoard开发板让用户可以通过Python代码轻松控制微控制器的各种外设,比如LED等,读取管脚电压,播放歌曲,和其他设备联网等等。TPYBoard开发板支持Python3.0及以上版本的直接运行,支持重力加速度传感器,支持上百周边外设配件,支持SWD烧写固件。零基础也能灵活掌握单片机技术!

    二、利用TPYBoard完成心形点阵
    1、具体要求
    通过TPYBoardv10x开发板连接红色8x8LED点阵屏,实现心形图案的显示。
    2、所需器件
    TYBoard开发板 一块
    USB数据线 一根
    红色8x8LED点阵屏 一个
    杜邦线 若干
    3、8x8点阵屏介绍



    点阵后面有两排针脚,一排以1开头,即1-8针脚,一排以9开头(8针脚的正对面的针脚),即9-16针脚,上图中圆圈内的数字即为针脚的对应序号。ROW 1对应的针脚就是9。当某ROW 的针脚为高电平,某COL的针脚为低电平时候,它们交叉点的LED就会被点亮。 为了方便操作行和列,我们可以将ROW的8个引脚接到我们TPYBoard v102的X1-X8,COL的8个引脚接到我们TPYBoard v102的Y1-Y8。这样我们通过控制X引脚和Y引脚的高低电平就可以控制每一个LED的亮与不亮,这样就可以设计想显示的任何字符和图形,快来试试吧。
    三、制作主要过程


    4、制作流程
    图形代码:

    import pyb
    from pyb import *
    
    
    image = ['11111111', '11011101', '10001000', '10000000', '10000000', '11000001', '11100011', '11110111']
    x_p = [Pin('X1',Pin.OUT_PP,Pin.PULL_NONE), Pin('X2',Pin.OUT_PP,Pin.PULL_NONE), Pin('X3',Pin.OUT_PP,Pin.PULL_NONE), Pin('X4',Pin.OUT_PP,Pin.PULL_NONE), Pin('X5',Pin.OUT_PP,Pin.PULL_NONE), Pin('X6',Pin.OUT_PP,Pin.PULL_NONE), Pin('X7',Pin.OUT_PP,Pin.PULL_NONE), Pin('X8',Pin.OUT_PP,Pin.PULL_NONE)]
    y_p = [Pin('Y1',Pin.OUT_PP,Pin.PULL_NONE), Pin('Y2',Pin.OUT_PP,Pin.PULL_NONE), Pin('Y3',Pin.OUT_PP,Pin.PULL_NONE), Pin('Y4',Pin.OUT_PP,Pin.PULL_NONE), Pin('Y5',Pin.OUT_PP,Pin.PULL_NONE), Pin('Y6',Pin.OUT_PP,Pin.PULL_NONE), Pin('Y7',Pin.OUT_PP,Pin.PULL_NONE), Pin('Y8',Pin.OUT_PP,Pin.PULL_NONE)]
    def displayLED():
      flag = 1
      for x in range(1, 9):
        for b in range(1, 9):
          if b != flag:
            temp = x_p[int(b - 1)]
            temp.low()
        li_l = image[int(x - 1)]
        for k in range(1, 9):
          temp = y_p[int(k - 1)]
          if li_l[int(k - 1)] == '1':
            temp.high()
          else:
            temp.low()
        temp = x_p[int(flag - 1)]
        temp.high()
        flag = flag + 1
        delay(2)
      return
    while True:
      displayLED()
    

      

  • 相关阅读:
    [MFC]CImageList仅显示黑色的问题
    [hessdroid]Android下使用Hessian与Java服务端通讯的传值测试
    [MFC]Sqlite问题小记
    [MFC] FTP 遍历服务器目录文件卡住的问题
    ExtJs 备忘录(9)—— Ext常用属性、方法小结 [系列完]
    [MFC]托盘图标删除后不自动消失的问题
    RIL接听电话没有声音的问题 [ RIL_Answer | RIL_SetAudioDevices ]
    [Qt]Qt Creator汉化方法
    [C++]遍历可变参数 (va_list)
    [杀毒]删除U盘autorun.inf
  • 原文地址:https://www.cnblogs.com/xxosu/p/9584790.html
Copyright © 2011-2022 走看看