【智能网络台灯】8. Maix bit驱动RGB
[复制链接]
过往分享
【2022得捷电子创新设计大赛】最晚开箱帖
【2022得捷电子创新设计大赛】1. ESP32-S2环境搭建及点灯
【智能网络台灯】2. 设置系统时间以及打印
【智能网络台灯】3. ESP32-S2 + lvgl使用
【智能网络台灯】4. ESP32-S2 板载按键使用
【智能网络台灯】5. ESP32-S2 使用sntp进行网络校时
【智能网络台灯】6. ESP32-S2解决RAM空间开销过大的问题
前言
很久没更新了,主要是ESP32S2添加阿里云功能弄了很长时间,资源不够用,ESP32S2同时使用lvgl+阿里云服务出现了很多问题,浪费了一些时间。本帖暂不做说明,主要是记录学习maix bit驱动RGB的过程。
环境搭建本帖不做说明,官方教程很详细,见https://wiki.sipeed.com/soft/maixpy/zh/get_started/env_install_driver.html
驱动流程
1. 查看原理图
如下,RGB的绿红蓝LED分别连接到了IO12,13,14,并且引脚拉低LED亮,拉高,LED灭。
2. 代码实现
打开MaixPy IDE,菜单栏点击工具->打开终端,在中断中输入我们的代码,进行调试。
代码实现如下,每句话的含义可以参考官网API手册:
from fpioa_manager import fm
from Maix import GPIO
import utime
io_led_green = 12
io_led_red = 13
io_led_blue = 14
fm.register(io_led_green, fm.fpioa.GPIO0)
fm.register(io_led_red, fm.fpioa.GPIO1)
fm.register(io_led_blue, fm.fpioa.GPIO2)
led_g=GPIO(GPIO.GPIO0, GPIO.OUT)
led_r=GPIO(GPIO.GPIO1, GPIO.OUT)
led_b=GPIO(GPIO.GPIO2, GPIO.OUT)
while(True):
led_r.value(0)
utime.sleep_ms(500)
led_r.value(1)
utime.sleep_ms(500)
led_g.value(0)
utime.sleep_ms(500)
led_g.value(1)
utime.sleep_ms(500)
led_b.value(0)
utime.sleep_ms(500)
led_b.value(1)
utime.sleep_ms(500)
上述代码含义简述:将IO12映射到GPIO0,IO13映射到GPIO1,IO14映射到GPIO2,然后都设置为输出模式,在死循环中控制绿红蓝三色LED流水灯周期闪烁。
实现效果
如下图:
点击上图查看Gif动图
|