micropython 驱动oled0.91_【micropython教程】+4 SPI驱动OLED显示成功

# main.py -- put your code here!

from pyb import LED  #add LED

import machine

from machine import Pin

from machine import I2C

from machine import SPI

import ssd1306

import math

import time

# construct an I2C bus

#i2c = I2C(scl=Pin(14), sda=Pin(2), freq=100000)

#display = ssd1306.SSD1306_I2C(128,64, i2c)

# construct an SPI bus on the given pins

# polarity is the idle state of SCK

# phase=0 means sample on the first edge of SCK, phase=1 means the second

#                                  CN2    OLED

#Pin(14)--SCK  machine.Pin("Y6 ") --B13  --D0

#Pin(13)--MOSI machine.Pin("Y8 ") --B15  --D1

#Pin(12)--MISO machine.Pin("Y7 ") --B14  --

#Pin(16)--CS   machine.Pin("Y11") --B0   --CS

#Pin(4)--RES   machine.Pin("Y9")  --B10  --RES

#Pin(5)--DC    machine.Pin("Y10") --B11  --DC

spi = SPI(baudrate=10000000, polarity=1, phase=0, sck=machine.Pin("Y6"), mosi=machine.Pin("Y8"), miso=machine.Pin("Y7"))

display = ssd1306.SSD1306_SPI(128, 64, spi, machine.Pin("Y10"),machine.Pin("Y9"), machine.Pin("Y11"))

led_blue = LED(4)

led_blue.on()

try:

display.poweron()

display.init_display()

display.text('ESP-mp SPI OLED',1,1)

display.text('Hi, MicroPython!',1,16)

display.text('By: hbzjt2012',1,31)

# Write display buffer

display.show()

time.sleep(3)

display.fill(0)

for x in range(0, 128):

display.pixel(x, 32+int(math.sin(x/64*math.pi)*7 + 8), 1)

display.show()

time.sleep(3)

display.fill(0)

x = 0

y = 0

direction_x = True

direction_y = True

while True:

# Clear the previous lines

prev_x = x

prev_y = y

# Move bars

x += (1 if direction_x else -1)

y += (1 if direction_y else -1)

# Bounce back, if required

if x == 128:

direction_x = False

x = 126

elif x == -1:

direction_x = True

x = 1

if y == 64:

direction_y = False

y = 63

elif y == -1:

direction_y = True

y = 1

# Draw new lines

for i in range(64):

display.pixel(prev_x, i, False)

display.pixel(x, i, True)

for i in range(128):

display.pixel(i, prev_y, False)

display.pixel(i, y, True)

# Make sure the corners are active

display.pixel(0,   0,  True)

display.pixel(127, 0,  True)

display.pixel(0,   63, True)

display.pixel(127, 63, True)

# Write display buffer

display.show()

except Exception as ex:

led_blue.off()

print('Unexpected error: {0}'.format(ex))

display.poweroff()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值