• (1)Micropython+ESP32 点亮一个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依次交替闪烁。

  • 相关阅读:
    a超链接设置样式
    return break continue的区别 js java
    mysql 约束
    JAVA中循环删除list中元素
    empty() 与 html("") 的区别
    java 各种数据类型判断为空
    bootstrap 栅栏系统
    height、clientHeight、offsetHeight、scrollHeight、height()、 innerHeight()、outerHeight()等的区别
    使用windos电脑模拟搭建集群(三)实现全网监控
    使用windos模拟搭建web集群(二)
  • 原文地址:https://www.cnblogs.com/voidxy/p/15808370.html
Copyright © 2020-2023  润新知