码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 物联网开发笔记(18)- 使用Micropython开发ESP32开发板之点亮LED和操作PWM呼吸灯


    哈喽,大家伙,我又来了,上一次我们带大家一起搭建了开发环境,今天我们来开始学习。首先学习点简单的哈,开始哈。。。

    一、环境

            ESP32开发板+Thonny IDE+Win10,具体看上一篇文章哈

    二、LED点亮实现原理

            前面已经通过在仿真网站Wokwi上跟大家演示了好几种操作LED灯的例子,相信大家都已经学会了。在真实的开发板上,操作也是同样的方法。下面演示ESP32板载的蓝色LED灯来进行。

    我们首先看一下我这个ESP32开发板的电路图,找到蓝色LED灯的位置,我们看到是对应的GPIO2,只要输入高电平,即可点亮。

    当然你也可以查看ESP32的官方文件档:

    Quick reference for the ESP32 — MicroPython 1.19.1 documentationhttp://docs.micropython.org/en/latest/esp32/quickref.html  
     

     三、LED闪烁实验

     好了,我们打开Thonny写代码,写个闪灯的吧,简单点

    1. import machine
    2. import time
    3. pin2 = machine.Pin(2, machine.Pin.OUT)
    4. while True:
    5. pin2.value(1)
    6. time.sleep(1)
    7. pin2.value(0)
    8. time.sleep(1)

    代码写好后,我们保存到开发板上

    然后点击运行,就可以看到板载的LED在闪烁。

      四、呼吸灯

    什么是呼吸灯?简单来说,就是一个灯从灭慢慢的到最亮,再从最亮慢慢的到灭,这样重复亮灭的行为。

    如果想要做到这个效果,我们需要用到PWM?什么是PWM?大家自行百度,或者查看官方网站介绍。这里不再赘述。

            接下来我们打开Thonny 编辑器,编写代码:

    1. from machine import Pin,PWM # 注意大小写
    2. import time
    3. # 创建PWM对象,并设置频率(支持1Hz-40MHz)
    4. blue_LED = PWM(Pin(2), freq = 1000)
    5. while True: # 写一个死循环
    6. # 灯从灭到最亮
    7. for level in range(0, 1024): # LED的亮度是从0到1023
    8. blue_LED.duty(level)
    9. time.sleep_ms(2)
    10. # 灯从最亮到灭
    11. for level in range(1023, -1, -1):
    12. blue_LED.duty(level)
    13. time.sleep_ms(2)

     然后保存运行,查看效果

     

     是不是很好玩啊???

    五、扩展

            这里刚入门的小伙伴,需要给仔细看官方文档,和了解一下硬件的基础电路知识。学会什么是PWM波?什么是占空比?什么是上拉电阻?什么是下拉电阻?以及上升沿,下降沿等基础知识。在以后的学习中会有助于你的理解和开发。

            另外,控制LED,不仅仅只有Pin可以,Signal同样也可以,而且更加好用和对其他板卡兼容性更好。具体请查看官方文档:

    class Signal – control and sense external I/O devices — MicroPython 1.19.1 documentationhttp://docs.micropython.org/en/latest/library/machine.Signal.html#machine-signal

  • 相关阅读:
    TS_开发一个项目
    使用Excel 表示汽车、摩托车10年免检时间、非常清晰。
    2023亚太杯数学建模A题思路分析
    【刷题笔记9.24】LeetCode:只出现一次的数字
    Python NLP 自然语言处理
    【1】zabbix6.4监控windows电脑操作教程
    运输层总结(未完待续)
    【python学习第12节 pandas】
    macOS 上如何写自定义命令行工具?
    C++中struct和class的区别
  • 原文地址:https://blog.csdn.net/zhusongziye/article/details/126915623
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号