立即注册

micropython-microbit 中文社区

查看: 1143|回复: 0

ESP8266/ESP32 驱动 16x16 点阵ws2812屏

[复制链接]
  • TA的每日心情
    开心
    2019-5-12 11:06
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    发表于 2018-2-14 00:14:51 | 显示全部楼层 |阅读模式

    马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    使用ESP8266/ESP32 驱动 16x16 点阵ws2812屏。

    效果图:
    16x16.gif

    github:https://github.com/shaoziyang/mp ... /neopixel/neo_16x16

    驱动程序
    1. """
    2.     ESP8266/ESP32 neopixel 16x16 display drive

    3.     Author: shaoziyang
    4.     Date:   2018.2

    5.     http://www.micropython.org.cn

    6. """
    7. from machine import Pin
    8. import neopixel

    9. class neo16x16:
    10.     def __init__(self, pin):
    11.         self.np = neopixel.NeoPixel(pin, 256)
    12.         self.color = (0,0,8)
    13.    
    14.     def clear(self):
    15.         self.np.fill((0,0,0))
    16.         self.np.write()

    17.     def set(self, n, color=''):
    18.         if dat!='':
    19.             self.np[n] = color
    20.         else:
    21.             self.np[n] = self.color
    22.         self.np.write()

    23.     def setcolor(self, color):
    24.         self.color = color

    25.     def show(self, dat, offset=0, clear = True, color=''):
    26.         if color != '':
    27.             self.color = color
    28.         if clear:
    29.             self.np.fill((0,0,0))
    30.         for x in range(16):
    31.             for y in range(16):
    32.                 if (x+offset)>=len(dat):
    33.                     self.np[x*16+y]=(0,0,0)
    34.                 else:
    35.                     if (1<<y)&dat[x+offset]:
    36.                         if offset%2==0:
    37.                             self.np[x*16 + y] = self.color
    38.                         else:
    39.                             self.np[x*16 +15 - y] = self.color

    40.         self.np.write()

    复制代码


    测试程序
    1. '''
    2.     ESP8266/ESP32 neopixel 16x16 demo

    3.     Author: shaoziyang
    4.     Date:   2018.2

    5.     http://www.micropython.org.cn

    6. '''
    7. from machine import Pin
    8. import time

    9. from neo16x16 import neo16x16

    10. np = neo16x16(Pin(2))

    11. npdat=[
    12. 0x2008,0x1FFC,0x3FF8,0x1084,0x0100,0x1084,0x3FF8,0x1FFC,
    13. 0x2008,0x0000,0x1F00,0x01FC,0x2480,0x0124,0x2480,0x01EC,
    14. 0x1700,0x0000,0x0000,0x0804,0x2010,0x1FFC,0x3FF8,0x0004,
    15. 0x2000,0x0000,0x0000,0x0000,0x2010,0x0804,0x3FF8,0x1FFC,
    16. 0x2000,0x0004,0x0000,0x0000,0x0000,0x00F8,0x3F80,0x0104,
    17. 0x2080,0x0104,0x3F80,0x00F8,0x0000,0x0080,0x0180,0x0700,
    18. 0xFFF8,0xFFFF,0x1047,0x0638,0x0F38,0xF8C2,0xC00F,0x13FF,
    19. 0x7FC8,0x1080,0x0728,0x1C78,0x1818,0x0000,0x4010,0x0846,
    20. 0x37F0,0xFFB8,0x1E1F,0x0FEE,0x61F0,0x0100,0x4082,0x4103,
    21. 0xFFE2,0x4FFE,0x009A,0x7100,0x0086,0x0100,]   

    22. n = 0
    23. while 1:
    24.     np.show(npdat, n)
    25.     n = (n + 1)%70
    26.     time.sleep_ms(200)
    复制代码


    本帖被以下淘专辑推荐:

    回复

    使用道具 举报

    游客
    回复
    您需要登录后才可以回帖 登录 | 立即注册

    Archiver|手机版|小黑屋|micropython-microbit 中文社区

    GMT+8, 2019-10-16 03:12 , Processed in 0.097399 second(s), 25 queries .

    Powered by Discuz! X3.4

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表