嵌入式人工智能ESP32(2-GPIO之LED与按键)

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实现差不多。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32 | SPI+flash闪存(第十一天)W25Q128举例

点击上方"蓝字"关注我们 01、SPI 1.1 SPI概念理解 SPI 是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。是Motorola首先在其MC68HCXX系列处理器上定义的。SPI 接口主要应用在 EEPROM,FLASH,实时时钟,AD 转换器,还有数字信号处理器和数…

MySQL笔记-基础篇(二):多表查询

​ 博客主页: 南来_北往 系列专栏:Spring Boot实战 前言 MySQL的多表查询是一项非常实用的数据库操作技术,它能够通过关联不同表中的数据来提供更加丰富和准确的信息。在实际应用中,数据通常不是孤立存在的,而是分布在多个…

Ubuntu(20.04)云主机SSH安全加固

1、新增SSH服务端口 #vim /etc/ssh/sshd_config 找到 #Port 22 去掉注释符,下面添加:Port [新端口] 2、本地防火墙放通 #ufw allow [新端口] #ufw reload //防火墙重新加载 #ufw status verbose //查询是否开放SSH新端口 3、腾讯云防火墙配…

提高PDF电子书的分辨率

解决方法出处 1. 安装ImageMagick brew install imagemagick brew install ghostscript2. 按流程进行 convert -density 600 your_pdf_filename.pdf output-%02d.jpg convert output*.jpg -normalize -threshold 80% final-%02d.jpg convert final*.jpg my_new_highcontras…

长语境窗口扩展:LongRoPE技术解析

人工智能咨询培训老师叶梓 转载标明出处 由于大模型高昂的微调成本、长文本的稀缺性,以及新引入的标记位置可能导致的灾难性值,目前扩展的语境窗口通常被限制在大约128k标记。为了克服这些限制,微软研究院的研究团队提出了一种名为LongRoPE的…

Apache OFBiz 曝出严重漏洞,允许预身份验证 RCE

近日,研究人员发现 Apache OFBiz 中存在一个新的关键漏洞,该漏洞是 Apache OFBiz 中的一个错误授权问题,被追踪为CVE-2024-38856。该漏洞影响 18.12.14 之前的版本,18.12.15 版本解决了该漏洞。 SonicWall 的安全研究员 Hasib Vh…

C语言常用的字符串函数(含模拟实现)

在使用C语言编写代码的时候,我们经常会用到一些库函数来实现一些平常难以实现的功能,今天我就为大家来分享一些我经常会用到的库函数,并且也会将他们的用法和部分的模拟实现函数分享给大家~ (文中部分图片来取自strlen - C Refer…

优购电商小程序的设计

管理员账户功能包括:系统首页,个人中心,用户管理,商品分类管理,商品信息管理,留言板管理,订单管理,系统管理 微信端账号功能包括:系统首页,商品信息&#xf…

音频进阶学习一——模拟信号和数字信号

文章目录 前言|版本声明:山河君,未经博主允许,禁止转载 一、什么是模拟信号和数字信号信号模拟信号数字信号数字和模拟信号的区别一览 二、信号处理系统总结 前言 所有软件的运行都得益于硬件上的突破,数字信号是从40年前就开始高…

Qt 实战(9)窗体 | 9.2、QDialog

文章目录 一、QDialog1、基本概念2、常用特性2.1、模态与非模态2.2、数据交互 3、总结 前言: Qt框架中的QDialog类是一个功能强大且灵活的对话框控件,广泛应用于各种GUI(图形用户界面)应用程序中,用于处理用户输入、消…

2024年4月份我放弃了前端,转行了!!!猜我得到了什么?

为什么离开这个行业?最近在干什么? 为什么离开这个行业这个问题其实 我真的真的想了很多很多,我也分享给你们我的想法,希望可以帮助想继续深耕这个行业的继续深耕,犹豫想转行的帮助你们确定转行。 我能干什么&#x…

开源 AI 智能名片 S2B2C 商城小程序赋能下的社区团购商业模式研究

摘要:本文深入探讨了社区团购商业模式的本质、特点及其优势,并详细分析了开源 AI 智能名片 S2B2C 商城小程序在社区团购中的应用与价值。通过对相关案例的研究和数据的分析,揭示了这一创新组合对社区商业生态的重要影响,为未来社区…

FFmpeg开发笔记(四十五)使用SRT Streamer开启APP直播推流

FFmpeg开发笔记(四十五)使用SRT Streamer开启APP直播推流 合集 - FFmpeg开发实战(46) 1.FFmpeg开发笔记(一)搭建Linux系统的开发环境2023-04-162.FFmpeg开发笔记(二)搭建Windows系统的开发环境2023-04-29…

深入探索 Wireshark——网络封包分析的利器

一、引言 在当今数字化的时代,网络通信变得日益复杂和关键。无论是企业的网络运维,还是网络安全研究,都需要深入了解网络中传输的数据。Wireshark 作为一款强大的网络封包分析工具,成为了网络工程师、安全研究人员和技术爱好者不…

8.6-设置mysql开机自启+角色生效+主从数据库

一、设置mysql开机自启 1.添加开机自启 #添加开机启动 [root004 mysql]# #systemctl enable mysqld [root004 mysql]# chkconfig --list注:该输出结果只显示 SysV 服务,并不包含 原生 systemd 服务。SysV 配置数据 可能被原生 systemd 配置覆盖。 要列…

【C语言】位段详解

🦄个人主页:小米里的大麦-CSDN博客 🎏所属专栏:https://blog.csdn.net/huangcancan666/category_12718530.html 🎁代码托管:黄灿灿 (huang-cancan-xbc) - Gitee.com ⚙️操作环境:Visual Studio 2022 目录 一、什么是位段? 二、…

Leetcode面试经典150题-2.两数相加

解法都在代码里,不懂就留言或者私信 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* ListNode(int val, ListNode next) { this.val …

ubuntu插入模块测试

文章目录 一、环境二、步骤 一、环境 ubuntu 20.04 内核版本:5.15-generic 二、步骤 先看一下ubuntu用的哪个内核版本: 到内核目录下: 随便建个文件夹存一下编译完的ko模块: 写测试代码: 写makefile:…

Flink-DataWorks第六部分:数据运维(第62天)

系列文章目录 运维中心 4.1 功能概述 4.2 操作流程 4.2.1 操作流程概览 4.2.2 步骤一:查看周期任务配置 4.2.3 步骤二:测试周期任务 4.2.4 步骤三:周期任务补历史数据 4.2.5 步骤四:查看周期实例 4.2.6 步骤五:查看执…

knn图像分类

K近邻算法(K-NN),即给定一个已训练的数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的K个实例,这K个实例的多数属于某个类,则判定该输入实例同属此类。 1. OpenCV K近邻模块的使用 接下来通过一个例子&…