esp-01s要和单片机分开烧录吗(ESP-mp-01开发板I2C驱动OLED显示)
esp-01s要和单片机分开烧录吗(ESP-mp-01开发板I2C驱动OLED显示)import mathimport ssd1306# main.py -- put your code here!import machinefrom machine import Pin I2C
ESP-mp-01开发板是基于ESP8266 Soc的可以运行MicroPython的开发板,不像STM32版本的Pyboard,ESP8266本身没有USB,只能通过TTL串口和Wifi访问ESP8266。文件传输需要借助uPyLoader或ESPyHarp等工具来进行文件传输。此次使用开发板的I2C功能来驱动OLED显示。
【1】硬件连接:
ESP8266 I2C对应的引脚为Pin(14)--SCL,Pin(2)--SDA:
【2】程序源码:
-
# main.py -- put your code here!
-
import machine
-
from machine import Pin I2C
-
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)
-
led_blue = machine.Pin(2 Pin.OUT) # 设置 GPIO2 为输出
-
led_blue.high()
-
try:
-
display.poweron()
-
display.init_display()
-
display.text('PYBNano I2C OLED' 1 1)
-
display.text('Hi MicroPython!' 1 16)
-
display.text('By: hbzjt2012' 1 31)
-
# Write display buffer
-
display.show()
-
time.sleep(10)
-
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(10)
-
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.low()
-
print('Unexpected error: {0}'.format(ex))
-
display.poweroff()
复制代码
以上图文内容均是EEWORLD论坛网友:hanyeguxingwo原创,在此感谢。
欢迎微博@EEWORLD
如果你也写过此类原创干货请关注EEWORLD(电子工程世界)回复“投稿”,也可将你的原创发至:bbs_service@eeworld.com.cn,一经入选,我们将帮你登上头条!
与更多行业内网友进行交流请登陆EEWORLD论坛。