外国域名注册网站,平面设计学徒,百度统计数据分析,做网站要怎样加盟欧普文章目录 前言MicroPython在线仿真GPIO的工作模式一、有哪些工作模式#xff1f;1.1 GPIO的详细介绍1.2 GPIO的内部框图输入模式输出部分 一、machine.Pin类1.1 machine.Pin 类的构造对象1.2 machine.Pin 类的方法init方法value方法设置高低电平方法 二、延时函数 三、流水灯总… 文章目录 前言MicroPython在线仿真GPIO的工作模式一、有哪些工作模式1.1 GPIO的详细介绍1.2 GPIO的内部框图输入模式输出部分 一、machine.Pin类1.1 machine.Pin 类的构造对象1.2 machine.Pin 类的方法init方法value方法设置高低电平方法 二、延时函数 三、流水灯总结 前言
MicroPython是一种精简版的Python 3编程语言专为微控制器和嵌入式系统设计。它提供了一个简洁而强大的工具集使得开发者可以轻松地在微控制器上编写Python代码实现各种功能。本教程将介绍如何使用MicroPython点亮第一个LED并实现一个简单的流水灯效果帮助初学者快速入门MicroPython的基础知识。 MicroPython在线仿真
Micropython在线仿真
GPIO的工作模式
GPIO是General Purpose Input/Output通用输入/输出的缩写。它是现代微控制器MCU或嵌入式系统中的一种重要接口用于连接外部设备和传感器。每个GPIO引脚可以被配置为输入或输出并且可以通过软件控制其电平状态。 GPIO就是我们开发板上的针脚
以下内容引用自我的博客GPIO
一、有哪些工作模式
1.1 GPIO的详细介绍
GPIO是General-purpose and alternate-function I/Os的缩写 他的含义是通用和复用的引脚
GPIO是分组的每一组有很多引脚 比如说PA0、PA1…PA15一组GPIO有16个引脚 组数是由芯片决定的具体的组数可以看对应的芯片的原理图
1.2 GPIO的内部框图
我们可以在芯片手册中找到GPIO的对应框图他说对于某一个引脚的 他可以分为两部分上部分就是输入下部分就是输出
输入模式
输入模式的框图如下 要理解他我们可以看下面的图
我们通过配置pin1让他为输入然后我们读某个寄存器就可以得到他的状态。 当k1按下接到电源那么pin肯定状态是1高电平如果没有按下相当于这个引脚是悬空状态 那么你读这个值你知道他是什么状态吗可能读出来是1可以是0
再比如我们配置pin2让他为输入和上面一样我们也去读按下时为0那么没有按下是什么状态呢就和上面的是一样的了
那么我们怎么解决他这个问题呢 对于pin1我们可以加一个下拉电阻 那么他按下时就就会是高电平没按就是低电平
同样的对于pin2就需要加上拉电阻了 那么他按下时就就会是低电平没按就是高电平
所以上下拉电阻是需要看实际的情况来选择的。
这些电阻集成到了芯片我们可以直接设置他是上拉还是下拉我们就不用每一个都搞一个电阻了
回到框图 其中里面的VDD为上拉电阻 Vss为下拉电阻他在芯片中已经设计好的了
还有一种输入就是 Analog Input模拟输入那么模拟输入的话他需要得到具体的电压值所以我们不能设置上下拉电阻完全由外部电路控制要不然模拟输入和直接输入没两样了
那么输入就是这几部分上拉输入、下拉输入、浮空输入、模拟输入
在最后我们通过读取输入寄存器Input data register得到1/0
如果说他有毛刺怎么办他会在某一个范围电压内为1某一个电压范围为0
输出部分 他这个GPIO可以接到一个灯或者其他的芯片 如果是点灯那么电压肯定是越高越好 如果是关灯电压肯定是越低越好
当输出1时I/O pin连接到P-MOS的VDD然后就能点灯了 如果输出0P-MOS断开连接地所以就关灯 推挽输出当你要高电平就推到VDD如果要低电平就推到VSS这样就是推挽输出可以输出高低电平
开漏输出 在开漏输出中有两种状态开和关。当开漏输出为开启状态时它会将电路连接到地或负极使得电路的输出变为低电平。而当开漏输出为关闭状态时它不会连接到任何地方使得电路的输出由外部设备或其他电路来控制。
开漏输出一般是用来解决两个芯片通信的问题的 不至于把两个芯片搞坏
一、machine.Pin类
1.1 machine.Pin 类的构造对象
在MicroPython中machine.Pin类用于与硬件引脚进行交互包括读取和设置引脚状态。下面是关于machine.Pin类的构造和参数的介绍
构造对象的方式
pin_object machine.Pin(pin_number, mode, pull, value)参数说明 pin_number必需 这是一个整数代表硬件引脚的编号。这个参数指定了我们要控制的具体引脚。
mode可选默认为machine.Pin.OUT 这是一个整数表示引脚的模式。可以是以下几个常量之一 machine.Pin.IN输入模式。 machine.Pin.OUT输出模式。 machine.Pin.OPEN_DRAIN开漏输出模式。
pull可选默认为None 这是一个整数表示引脚的上下拉设置。可以是以下几个常量之一 machine.Pin.PULL_UP上拉。 machine.Pin.PULL_DOWN下拉。 None无上下拉。
value可选默认为None 这是一个整数表示引脚的初始值。对于输出模式可以是以下几个常量之一 machine.Pin.LOW低电平。 machine.Pin.HIGH高电平。 对于输入模式这个参数通常被忽略。 示例
import machine# 构造一个引脚对象设置为输出模式无上下拉初始值为低电平
led_pin machine.Pin(26, modemachine.Pin.OUT, pullNone, value1)在这个示例中我们创建了一个machine.Pin对象代表硬件引脚编号为26的引脚。该引脚被配置为输出模式无上下拉初始电平为低电平。这样我们就可以通过led_pin.value(1)将引脚电平设置为高从而点亮与该引脚连接的LED。 1.2 machine.Pin 类的方法
init方法
我们可以使用init方法重新初始化引脚
led.init(mode-1, pull-1,valueNone)value方法
我们可以使用value方法设置/获取引脚高低电平
led.value([x])当无参数时放回当前的高低电平 如果写了x则设置高低电平
设置高低电平方法
设置引脚高电平
led.on()设置引脚低电平
led.off()二、延时函数
在 MicroPython 中系统延时需要用到 time/utime 模块。该模块下有三个 sleep 方法
time.sleep(seconds)秒级的延时
time.sleep_ms(ms)毫秒的延时
time.sleep_us(us)微秒的延时我们有延时函数就可以实现灯的闪烁了
import machine
import time# 构造一个引脚对象设置为输出模式无上下拉初始值为低电平
led_pin machine.Pin(26, modemachine.Pin.OUT, pullNone, value1)while True:led_pin.off()time.sleep_ms(500)led_pin.on()time.sleep_ms(500)三、流水灯
import machine
import time# 定义LED连接的引脚
led_pins [2, 3, 4, 5]# 初始化引脚对象
led_objects [machine.Pin(pin, machine.Pin.OUT) for pin in led_pins]# 流水灯效果
while True:for led in led_objects:led.value(1) # 点亮LEDtime.sleep(0.1) # 延时led.value(0) # 关闭LED总结
通过本教程我们学习了如何在MicroPython环境下控制LED。首先我们了解了如何连接开发板和LED。然后我们使用MicroPython的GPIO模块初始化GPIO引脚并将其配置为输出模式。接着我们通过设置GPIO引脚的电平来点亮LED。最后我们利用循环结构和延时函数实现了一个简单的流水灯效果。通过这个简单的例子我们初步掌握了MicroPython的基本语法和GPIO控制方法为进一步学习和应用MicroPython打下了坚实的基础。