MicroPython ESP8266 GPIO引脚使用详解

news2024/11/6 7:31:22

MicroPython ESP8266 GPIO引脚使用


  • 📌相关篇《【MicroPython esp8266】固件烧写教程》

  • ✨本案例基于Thonny平台开发。✨

  • 📜固件版本信息:MicroPython v1.19.1 on 2022-06-18; ESP module with ESP8266

  • 🔖ESP8266可用管脚有:0、1、2、3、4、5、12、13、14、15、16,对应ESP8266芯片实际的GPIO管脚编号。请注意,许多开发板板使用的引脚编号(标记为例如 D0、D1、…)。
    在这里插入图片描述

  • ⚡注意 :Pin(1) 和 Pin(3) 分别是 REPL UART TX 和 RX。另请注意,Pin(16) 是一个特殊的 pin(用于从深度睡眠模式唤醒),可能无法用于更高级别的类,如 Neopixel.

  • 🔖通过Shell调试窗口查询Pin类的的相关帮助信息from machine import Pin

在这里插入图片描述

  • 🌿init - 初始化引脚状态
  • machine.Pin.init() 方法的参数列表:
  • mode:引脚的模式,默认为 None。可以是 machine.Pin.IN、machine.Pin.OUT 或 machine.Pin.OPEN_DRAIN。
  • pull:引脚的内部上拉machine.Pin.PULL_UP,默认为 None。
    value:引脚的初始状态,默认为 None。当 mode 为 machine.Pin.OUT 时有效,可以是 0 或 1。
import machine

# 初始化 GPIO0,设置为输入模式,启用上拉电阻
button = machine.Pin(0, machine.Pin.IN)
button.init(mode=machine.Pin.IN, pull=machine.Pin.PULL_UP)

# 初始化 GPIO2,设置为输出模式,初始化状态为低电平
led = machine.Pin(2, machine.Pin.OUT)
led.init(mode=machine.Pin.OUT, value=0)

  • 🌿 value – 不带参数为获取状态,带参数为赋值
  • 🌿 off – 赋值0
  • 🌿 on – 赋值1
  • 🌿 irq – 中断函数
  • 🌿 IN – 输入模式
  • 🌿 OUT – 输出模式
  • 🌿OPEN_DRAIN – 开漏输出
  • 🌿 PULL_UP – 上拉
  • 🌿 IRQ_RISING – 中断触发条件,上升沿触发
  • 🌿IRQ_FALLING --中断触发条件,下降沿触发

📝GPIO输入输出配置

from machine import Pin

p0 = Pin(0, Pin.OUT)    # create output pin on GPIO0
p0.on()                 # set pin to "on" (high) level
p0.off()                # set pin to "off" (low) level
p0.value(1)             # set pin to on/high

p2 = Pin(2, Pin.IN)     # create input pin on GPIO2
print(p2.value())       # get value, 0 or 1

p4 = Pin(4, Pin.IN, Pin.PULL_UP) # enable internal pull-up resistor
p5 = Pin(5, Pin.OUT, value=1) # set pin high on creation

📝GPIO2板子LED闪烁程序

import machine
import utime

# 初始化 GPIO2 为输出引脚
led = machine.Pin(2, machine.Pin.OUT)

# 循环闪烁 LED
while True:
    # 点亮 LED
    led.value(1)
    # 等待500ms
    utime.sleep_ms(500)
    # 关闭 LED
    led.value(0)
    # 等待500ms
    utime.sleep_ms(500)
  • 🌿状态翻转
import machine
import utime

# 初始化 GPIO2 为输出引脚
led = machine.Pin(2, machine.Pin.OUT)

# 循环闪烁 LED
while True:
    # led状态翻转
    led.value(not led.value())
    # 等待500ms
    utime.sleep_ms(500)

📖GPIO 中断以及输入输出示例

from machine import Pin

# 初始化 GPIO2 为输出引脚
led = Pin(2, Pin.OUT,value=0)# 初始化时候设置引脚的值为 1(高电平)

# 中断回调函数
def callback(p):
    print("Button pressed")
    led.value(not led.value())

# 初始化一个引脚对象
button = Pin(0, Pin.IN,Pin.PULL_UP)# 打开内部上拉电阻

# 注册中断回调函数
button.irq(trigger=Pin.IRQ_FALLING, handler=callback)


在这里插入图片描述

📝GPIO中断 + lambda单行任务匿名表达式示例

import machine

# 初始化 GPIO0,设置为输入模式,启用上拉电阻
button = machine.Pin(0, machine.Pin.IN)
button.init(mode=machine.Pin.IN, pull=machine.Pin.PULL_UP)

# 初始化 GPIO2,设置为输出模式,初始化状态为低电平
led = machine.Pin(2, machine.Pin.OUT)
led.init(mode=machine.Pin.OUT, value=0)

# 注册中断回调函数
button.irq( lambda pin:print("IRQ with flag:", pin.value()),trigger=machine.Pin.IRQ_FALLING)

📝GPIO中断 + lambda多行任务匿名表达式示例

import machine

# 初始化 GPIO0,设置为输入模式,启用上拉电阻
button = machine.Pin(0, machine.Pin.IN)
button.init(mode=machine.Pin.IN, pull=machine.Pin.PULL_UP)

# 初始化 GPIO2,设置为输出模式,初始化状态为低电平
led = machine.Pin(2, machine.Pin.OUT)
led.init(mode=machine.Pin.OUT, value=0)

def handle_button_press(pin):
    print("Button pressed")
    led.value(not led.value())
      
# 注册中断回调函数
button.irq(trigger=machine.Pin.IRQ_FALLING, handler=lambda pin: handle_button_press(pin))

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/437657.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机组成原理——第六章总线(上)

误逐世间乐,颇穷理乱情 文章目录 前言6.1.1 总线概述6.1.2 总线的性能指标6.2 总线仲裁(408不考) 前言 本章在概述部分我们会首先介绍一下总线的基本概念,介绍一下总线的分类以及经典结构,介绍一些性能指标来评价总线的性能如何,…

电子招标采购系统源码—企业战略布局下的采购

​ 智慧寻源 多策略、多场景寻源,多种看板让寻源过程全程可监控,根据不同采购场景,采取不同寻源策略, 实现采购寻源线上化管控;同时支持公域和私域寻源。 询价比价 全程线上询比价,信息公开透明&#xff0…

通过单线程/线程池/分治算法三种方式实现1亿个数字的累加

一、任务类型 我们在做项目的时候,都需要考虑当前的项目或者某一个功能主要的核心是什么?是CPU密集计算型,还是IO密集型任务。我们调整线程池中的线程数量的最主要的目的是为了充分并合理地使用 CPU 和内存等资源,从而最大限度地…

AIGC潮水中,重新理解低代码

如果将一句话生成应用形容成L4级的“无人驾驶”,伙伴云的「AI搭建」则更像L2级的“辅助驾驶”。 作者|斗斗 出品|产业家 2023年,AIGC下的低代码赛道“暗流涌动”。 “对于「AI搭建」的搭建效果,尤其是在场景覆盖的广度上,连…

正式开赛|2023年“桂林银行杯”数据建模大赛暨全国大学生数学建模竞赛广西赛区热身赛

为学习贯彻党的二十大工作报告中关于加快发展数字经济、促进数字经济和实体经济深度融合的重要指示,不断推进数字化转型与金融科技创新,桂林银行联合全国大学生数学建模竞赛广西赛区组委会、广西应用数学中心(广西大学)共同主办20…

如何选择CDN厂商

如果您的在线业务面临着流量和访客数量的增加,如果您想提高网站速度和用户体验,选择合适的CDN提供商是朝着正确方向迈出的一步,那么如何来选择最合适的CDN厂商呢,火伞云小编今天为您解答: 一、测试潜在的CDN提供商 对…

centos7.6非默认端口的ssh免密登录(centos7.6指定端口的ssh免密登录)

非默认端口号(以6622端口号示例)的免密登录 1.1. 修改/etc/ssh/sshd_config Port 6622 1.2. 重启sshd服务 service sshd restart 1.3. 创建用户ds(可选,这里以ds用户做免密为示例) adduser ds; 1.4. 查看ds用户(可选) id ds; …

HBase高手之路6—HBase高可用

文章目录 HBase的高可用一、HBase高可用简介二、搭建HBase的高可用1.在HBase的conf文件夹中创建一个backup-masters的文件2.修改backup-masters,添加作为备份master的节点信息3.分发backup-masters文件到其他的服务器4.重新启动HBase5.查看web ui 三、测试高可用1.尝…

辉煌优配|黄金价格创近两年半新高!2只黄金股一季度预增

黄金板块早盘走强。 4月14日早盘,黄金板块团体走高,次新股四川黄金开盘半小时内拉升至涨停,封单资金到达7279.78万元,中润资源、晓程科技涨幅居前,分别为8.96%、8.48% 消息面上来看,近期全球黄金期货价格节…

Matlab进阶绘图第17期—气泡热图

气泡热图是一种特殊的热图(Heatmap)。 与传统热图相比,气泡热图利用不同颜色、不同大小的圆形表示数据的大小,可以更加直观地对矩阵数据进行可视化表达。 本文使用自制的bubbleheatmap小工具进行气泡热图的绘制,先来…

AttributeError: ‘LTP‘ object has no attribute ‘init_dict‘解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

【刷题】小技巧

好久没更了 写天梯模拟L1都有题不能AC&#xff0c;是什么品种的蒟蒻 L1-7 谷歌的招聘 题目详情 - L1-7 谷歌的招聘 (pintia.cn) 自己写半天都是Segmentation Fault&#xff0c; 学习一下几个函数叭// 1.substr&#xff08;&#xff09;函数 获取子串 #include<bits/st…

OpenCV 安卓编程示例:1~6 全

原文&#xff1a;OpenCV Android Programming By Example 协议&#xff1a;CC BY-NC-SA 4.0 译者&#xff1a;飞龙 本文来自【ApacheCN 计算机视觉 译文集】&#xff0c;采用译后编辑&#xff08;MTPE&#xff09;流程来尽可能提升效率。 当别人说你没有底线的时候&#xff0c;…

国产AI软件,10年前已出现,Excel表格变软件,用友用户:有救了

10年前&#xff0c;国产AI软件已经出现 在国内&#xff0c;我们早在10年就已经有AI软件&#xff0c;而且现在还在使用。 10年前&#xff0c;这款软件跟现在市面上流行的ChatGPT和文心一言相比&#xff0c;最为先进的是&#xff1a;不根本用写代码&#xff0c;只要会画表格就可…

【Docker01】入门

目录 概述 Docker平台 Docker可以做什么 快速、一致地交付应用程序 响应式部署和扩展 在同一硬件上运行更多工作负载 Docker架构 Docker守护程序&#xff08;The Docker daemon&#xff09; Docker客户端&#xff08;The Docker client&#xff09; Docker桌面&#x…

KingSCADA3.8保姆级安装教程

大家好&#xff0c;我是雷工&#xff01; 最近开始学习KingSCADA&#xff0c;今天这篇详细记录安装KingSCADA3.8的过程。 首先下载需要的安装版本&#xff0c;此处以从官网下载的最新版本KingSCADA3.8为例&#xff0c;双击&#xff1a;Setup.exe ; 一、安装主程序 1、点击“…

电脑端(PC)按键精灵2013——入门小白 详细 教程

电脑端(PC)按键精灵——1.入门详细说明&#xff1a; 本篇幅介绍的按键精灵的下载和安装&#xff1b;如果已经安装则直接看下面命令内容 电脑端(PC)按键精灵——2.键盘命令和鼠标命令 电脑端(PC)按键精灵——3其他命令 电脑端(PC)按键精灵——4.控制命令&#xff08;判断、循…

使用华为云免费资源训练Paddle UIE模型

一、创建虚拟环境 好习惯&#xff0c;首先创建单独的运行环境 conda create -n uie python3.10.9 conda activate uie 二、安装paddle框架及paddlenlp 2.1 参考官方文档安装paddle 开始使用_飞桨-源于产业实践的开源深度学习平台 首先查看自己服务器cuda版本&#xff0c;…

redis_5种数据结构及其底层实现原理详解

1、 redis中的数据结构 Redis支持五种数据类型&#xff1a;string&#xff08;字符串&#xff09;&#xff0c;hash&#xff08;哈希&#xff09;&#xff0c;list&#xff08;列表&#xff09;&#xff0c;set&#xff08;无序集合&#xff09;及zset(有序集合) 在秒杀项目里…

LED显示屏有色差要怎么处理?

LED显示屏在销售的时候不可避免的会产生尾货。这些尾货由于是不同批次的产品&#xff0c;亮度不可避免的有差异&#xff0c;拼装之后显示效果不佳&#xff0c;这时候就必须使用逐点校正技术。你知道LED显示屏的亮度和对比度是如何调节的吗&#xff1f; 消除差异逐点校正是一项用…