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()

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM