ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

(1)Micropython+ESP32 点亮一个LED

2022-01-15 23:03:49  阅读:235  来源: 互联网

标签:Micropython led Pin GPIO ESP32 write gpio LED


之前有接触过通过adriuno来进行ESP32和ESP8266的开发。 但是因为日常工作当中没有太多的机会使用CPP,所以进展一直不大。知道后面开始使用MicroPython进行ESP32的开发,感觉路一下都亮了。
今天尝试回顾一个初学者的使用过程。点亮一个RGB LED 。
使用的硬件
ESP32 开发板一个
RGB LED一个

image

如图,RGB LED 一共4个引脚。分别是
GND - 接地
R - Red
Y - Yellow
G - Green
简单进行一个接入 :

image

分别对应了
GND — GND
R - GPIO13
Y - GPIO12
G - GPIO14
将开发板上电。 注:这里没有接入电阻,最好给LED接入一个电阻。 红色LED1.5-1.7V, 绿色1.8-2.0V。
下面进行代码的编写。

from machine import Pin
r_led = Pin(12, Pin.OUT)
y_led = Pin(13, Pin.OUT)
g_led = Pin(14, Pin.OUT)
r_led.on()
y_led.on()
g_led.on()

完成后,烧录到开发板。效果如下
image
接下来尝试一下LED交替闪烁,代码如下:

def flash_led(self):
        r_led = Pin(12, Pin.OUT)
        y_led = Pin(13, Pin.OUT)
        g_led = Pin(14, Pin.OUT)
        while True:
            r_led.on()
            utime.sleep_ms(100)
            r_led.off()
            y_led.on()
            utime.sleep_ms(100)
            y_led.off()
            g_led.on()
            utime.sleep_ms(100)
            g_led.off()

以上为使用原生的Microptython进行的一个点亮测试。 目前HAAS也提供了ESP32的固件,也可以使用HAAS的固件进行LED操作。

HAAS ESP 32 固件烧录,可以在阿里云HAAS官网当中下载。并根据引导使用VS CODE安装好HAAS Studio后进行烧录,或下载Thonny进行。 如果是对于PYTHON来说都是新手的话,建议使用Thonny来进行开发。

在HAAS里面,我们可以使用board.json 来配置我们各个引脚。 配置如下:
因为我们使用的是GPIO,所以这里,就只看关于IO-GPIO的配置项。

image

对应到我们项目当中的board.json,配置如下:

{
    "name": "haasedu",
    "version": "1.0.0",
    "io": { 
        "r_led":{ 
          "type": "GPIO",
          "port": 12,
          "dir": "output",
          "pull": "pulldown"
        },
        "y_led":{ 
          "type": "GPIO",
          "port": 13,
          "dir": "output",
          "pull": "pulldown"
        },
        "g_led":{ 
          "type": "GPIO",
          "port": 14,
          "dir": "output",
          "pull": "pulldown"
        } 
    },
    "debugLevel": "ERROR",
    "repl": "disable"
  }

配置完成后,实现代码如下:

from driver import GPIO 
import utime
class HAASLed:
    def light_led(self):  
        r_led_gpio = GPIO()
        y_led_gpio = GPIO()
        g_led_gpio = GPIO()
        r_led_gpio.open("r_led")
        y_led_gpio.open("y_led")
        g_led_gpio.open("g_led")
        r_led_gpio.write(1) # 打开LED
        y_led_gpio.write(1)  
        g_led_gpio.write(1)
    def flash_led(self):
        r_led_gpio = GPIO()
        y_led_gpio = GPIO()
        g_led_gpio = GPIO()
        r_led_gpio.open("r_led")
        y_led_gpio.open("y_led")
        g_led_gpio.open("g_led")
        while True:
            r_led_gpio.write(1)
            utime.sleep_ms(100)
            r_led_gpio.write(0)
            y_led_gpio.write(1)
            utime.sleep_ms(100)
            
            y_led_gpio.write(0)
            g_led_gpio.write(1)
            utime.sleep_ms(100)
            g_led_gpio.write(0)

将代码烧录到开发板后,3个LED依次交替闪烁。

标签:Micropython,led,Pin,GPIO,ESP32,write,gpio,LED
来源: https://www.cnblogs.com/voidxy/p/15808370.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有