3734|2

212

帖子

0

TA的资源

一粒金砂(高级)

楼主
 

PYB Nano驱动OLED显示 [复制链接]

       这次使用PYB Nano驱动0.96寸OLED显示屏,此次参考了国外网友的例程,OLED可以使用SPI或者I2C均可。
【1】硬件连接:
这里以SPI连接方式为例,使用PYB Nano的SPI1:


【2】程序源码:
库文件: ssd1306.rar (4.39 KB, 下载次数: 36)
  1. import pyb
  2. from ssd1306 import SSD1306

  3. # SPI
  4. display = SSD1306(pinout={'dc': 'Y9',
  5.                           'res': 'Y10'},
  6.                   height=64,
  7.                   external_vcc=False)

  8. # I2C connected to Y9, Y10 (I2C bus 2)
  9. # display = SSD1306(pinout={'sda': 'Y10',
  10. #                           'scl': 'Y9'},
  11. #                   height=64,
  12. #                   external_vcc=False)

  13. led_red = pyb.LED(1)
  14. led_red.off()

  15. try:
  16.   display.poweron()
  17.   display.init_display()

  18.   display.draw_text(1,1,'PYB Nano OLED Test',size=1,space=1)
  19.   display.draw_text(1,10,'Hello MicroPython!',size=1,space=1)
  20.   
  21.   # Write display buffer
  22.   display.display()
  23.   pyb.delay(10000)

  24.   x = 0
  25.   y = 0
  26.   direction_x = True
  27.   direction_y = True

  28.   while True:
  29.     # Clear the previous lines
  30.     prev_x = x
  31.     prev_y = y

  32.     # Move bars
  33.     x += (1 if direction_x else -1)
  34.     y += (1 if direction_y else -1)

  35.     # Bounce back, if required
  36.     if x == 128:
  37.        direction_x = False
  38.        x = 126
  39.     elif x == -1:
  40.        direction_x = True
  41.        x = 1
  42.     if y == 64:
  43.        direction_y = False
  44.        y = 63
  45.     elif y == -1:
  46.        direction_y = True
  47.        y = 1

  48.     # Draw new lines
  49.     for i in range(64):
  50.       display.set_pixel(prev_x, i, False)
  51.       display.set_pixel(x, i, True)
  52.     for i in range(128):
  53.       display.set_pixel(i, prev_y, False)
  54.       display.set_pixel(i, y, True)

  55.     # Make sure the corners are active
  56.     display.set_pixel(0,   0,  True)
  57.     display.set_pixel(127, 0,  True)
  58.     display.set_pixel(0,   63, True)
  59.     display.set_pixel(127, 63, True)
  60.    
  61.     # Write display buffer
  62.     display.display()

  63. except Exception as ex:
  64.   led_red.on()
  65.   print('Unexpected error: {0}'.format(ex))
  66.   display.poweroff()
复制代码

【3】显示效果:






最新回复

等会用L011K4试试  我也有一块屏  详情 回复 发表于 2016-12-5 16:53

赞赏

1

查看全部赞赏

点赞 关注
 
 

回复
举报

1万

帖子

25

TA的资源

版主

沙发
 
效果不错啊。
 
 
 

回复

173

帖子

0

TA的资源

一粒金砂(高级)

板凳
 
等会用L011K4试试  我也有一块屏
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表