1、ESP32引脚
ESP32 38脚与30脚的主要区别在于引脚数量和功能。选择38脚的ESP32开发板通常能提供更多的功能和更好的扩展性,适合需要连接多种传感器和外设以及进行复杂通信的应用。而30脚的ESP32开发板则可能更适合简单应用或成本敏感的项目。
SP32的引脚图通常包含芯片的外形轮廓、各个引脚的编号和名称、以及引脚的功能说明。引脚按照功能可以分为几类,包括GPIO(通用输入输出)、ADC(模数转换器)、UART(通用异步收发器)、I2C(双向同步串行总线)、SPI(串行外设接口)等。
1. GPIO引脚:GPIO引脚是ESP32最基本的引脚类型,可以用于数字信号的输入和输出。这些引脚可以通过软件配置为输入模式、输出模式或者中断模式,实现与外部设备的通信和控制。
2. ADC引脚:ADC引脚用于模拟信号的采集,可以将外部的模拟信号转换为数字信号进行处理。ESP32的ADC引脚支持多个通道的采样,可以同时采集多个模拟信号。
3. UART引脚:UART引脚用于串行通信,可以实现与其他设备的异步数据传输。ESP32的UART引脚支持多种波特率和数据位配置,可以满足不同的通信需求。
4. I2C引脚:I2C引脚用于连接I2C总线设备,可以实现主从设备之间的双向数据传输。ESP32的I2C引脚支持多个从设备的连接,可以通过软件配置主从模式、数据传输速率等参数。
2、ESP32的GPIO引脚
ESP32总共有48个GPIO引脚,但其中只有25个被拆引出到开发板两侧的插头。这些引脚可以分配给各种外围职责,包括:
● 15个ADC通道 - 15个12位SAR ADC的通道。 ADC范围可以在固件中设置为0-1V,0-1.4V,0-2V或0-4V
● 2个UART接口 - 2个UART接口。一个用于串口加载代码。它们具有流控制,并支持IRDA!
● 25个PWM输出 - 25个用于调光LED或控制电动机的PWM引脚通道。
● 2个DAC通道 - 8位DAC可产生真正的模拟电压。
● SPI、I2C和I2S接口 - 有3个SPI和1个I2C接口,可连接各种传感器和外围设备,如果您想在项目中添加声音,则有两个I2S接口。
● 9个触摸引脚- 9个GPIO具有电容触摸感应。
绿色突出显示的管脚可以使用。黄色突出显示的可以使用,但您需要注意,因为它们可能在启动时有意外行为。不建议将红色突出显示的管脚用作输入或输出。
GPIO34到39是GPIO–仅输入的管脚。这些引脚没有内部上拉或下拉电阻。它们不能用作输出。请注意不要把按键接G34-39.
因此我们把G16接按键,G19、G18、G5、G17接LED1-4,电源接3.3,GND接GND。
3、MicroPython代码
我歪打正着的找了个中文的参考代码网站关于 ESP32 端口的一般信息 —MicroPython中文 1.17 文档,
MicroPython让Python进入了微控制器领域,是一项重要的创新,既降低了编程门槛,又提供了良好的硬件控制能力。非常适合各类物联网和智能硬件的开发。但凡学过Python,不要1分钟,什么LED的点亮,闪烁,流水分分钟搞定啊。
from machine import Pin
import time#LED灯点亮
# P0 = Pin(19, Pin.OUT)
# P0.value(0)
#==================================================================
#LED灯闪烁
# P0 = Pin(19, Pin.OUT) # create output pin on GPIO0
#
# while True:
# P0.on() # set pin to "on" (high) level
# time.sleep(0.5)
# P0.off() # set pin to "off" (low) level
# time.sleep_ms(500)
#==================================================================
#LED流水
P0 = Pin(19, Pin.OUT)
P1 = Pin(18, Pin.OUT)
P2 = Pin(5, Pin.OUT)
P3 = Pin(17, Pin.OUT)
LED_List = [P0,P1,P2,P3]
def Led_Flow():for i in LED_List:print(i)i.value(0)time.sleep(0.1)for i in LED_List:i.value(1)time.sleep(0.1)while True:Led_Flow()
感觉还是Python简单啊,随心所欲的写写就实现了。
Key1 = Pin(16,Pin.IN,Pin.PULL_UP)
Led0 = Pin(19, Pin.OUT)
state =0
while True:if Key1.value()==0:time.sleep(0.15)if Key1.value()==0:state= not stateLed0.value(state)else:time.sleep(0.15)
这个是按键实现按一下led灯灭灯亮。基本和树莓派Python实现差不多。