物联网AI MicroPython传感器学习 之 4路电容式触摸开关
学物联网,来万物简单IoT物联网!!
一、产品简介
板载TTP224电容式4键触摸感应IC,开发者通过触摸该电容模块获取对应的高低电平状态,可以广泛应用于灯光控制、玩具、家用电器等产品中。
引脚定义:
- VCC:接 3.3V
- GND:接 GND
- OUT1:接 GPIO
- OUT2:接 GPIO
- OUT3:接 GPIO
- OUT4:接 GPIO
二、技术参数
- 工作电压:2.3V-5.5V DC
- TTP224电流(3V):2.5uA-9.0uA
- 板载4路电平状态指示灯
- 模式:设置输出模式、键输出模式、上限输出时间和快速/低功耗选择
- 规格尺寸:35mm * 29mm
三、软件接口
TTP224(ttp01Obj,ttp02Obj,ttp03Obj,ttp04Obj) - 创建TTP224驱动对象
- 函数原型:
ttp224Obj = TTP224(ttp01Obj,ttp02Obj,ttp03Obj,ttp04Obj)
- 参数说明:
参数 | 类型 | 必选参数? | 说明 |
---|---|---|---|
ttp01Obj | GPIO | 否 | |
ttp02Obj | GPIO | 否 | |
ttp03Obj | GPIO | 否 | |
ttp04Obj | GPIO | 否 |
- 返回值:
TTP224对象创建成功,返回TTP224对象;TTP224对象创建失败,抛出Exception - 示例代码:
from machine import Pin
import ttp224ttp01Dev = Pin(2, Pin.IN, Pin.PULLUP)
ttp02Dev = Pin(4, Pin.IN, Pin.PULLUP)
ttp03Dev = Pin(16, Pin.IN, Pin.PULLUP)
ttp04Dev = Pin(17, Pin.IN, Pin.PULLUP)
ttp = ttp224.TTP224(ttp01Dev,None,ttp03Dev)
print("ttp224 inited!")
- 输出:
ttp224 inited!
getStatus() - 获取TTP224的电容触摸状态值
- 函数功能:
获取TTP224的电容触摸状态值 - 函数原型:
TTP224.getStatus()
- 参数说明:
无 - 返回值:
返回值 | 类型 | 说明 |
---|---|---|
cntobj | 整型 | 返回创建了几路TTP对象,0-没有创建对象 |
ttp01 | 整型 | None-该路未创建,0-未触摸,1-触摸 |
ttp02 | 整型 | None-该路未创建,0-未触摸,1-触摸 |
ttp03 | 整型 | None-该路未创建,0-未触摸,1-触摸 |
ttp04 | 整型 | None-该路未创建,0-未触摸,1-触摸 |
- 示例:
from machine import Pin
import ttp224
import utimettp01Dev = Pin(2, Pin.IN, Pin.PULLUP)
ttp02Dev = Pin(4, Pin.IN, Pin.PULLUP)
ttp03Dev = Pin(16, Pin.IN, Pin.PULLUP)
ttp04Dev = Pin(17, Pin.IN, Pin.PULLUP)
ttp = ttp224.TTP224(ttp01Dev,None,ttp03Dev)
print("ttp224 Init!")
while True: # 无限循环cnt,ttp01,ttp02,ttp03,ttp04 = ttp.getStatus()print(cnt,ttp01,ttp02,ttp03,ttp04)utime.sleep(1)
- 输出:
ttp224 Init!
2 0 None 0 None
2 0 None 0 None
2 0 None 0 None
2 0 None 0 None
2 0 None 0 None
2 1 None 0 None
2 1 None 0 None
2 0 None 0 None
2 0 None 1 None
2 1 None 1 None
2 0 None 0 None
2 0 None 0 None
2 0 None 0 None
四、接口案例
- 示例代码:
# Python代码
from machine import Pin
import ttp224
import utimettp01Dev = Pin(2, Pin.IN, Pin.PULLUP)
ttp02Dev = Pin(4, Pin.IN, Pin.PULLUP)
ttp03Dev = Pin(16, Pin.IN, Pin.PULLUP)
ttp04Dev = Pin(17, Pin.IN, Pin.PULLUP)
ttp = ttp224.TTP224(ttp01Dev,None,ttp03Dev)
print("ttp224 Init!")
while True: # 无限循环cnt,ttp01,ttp02,ttp03,ttp04 = ttp.getStatus()print(cnt,ttp01,ttp02,ttp03,ttp04)utime.sleep_ms(500)
- 输出:
ttp224 Init!
4 0 0 0 0
4 0 0 0 0
4 0 0 0 0
4 0 0 0 0
4 1 0 0 0
4 1 1 0 0
4 0 0 1 0
参考文献及购买链接
- [1] 4路电容式触摸开关购买链接
相关文章:

物联网AI MicroPython传感器学习 之 4路电容式触摸开关
学物联网,来万物简单IoT物联网!! 一、产品简介 板载TTP224电容式4键触摸感应IC,开发者通过触摸该电容模块获取对应的高低电平状态,可以广泛应用于灯光控制、玩具、家用电器等产品中。 引脚定义: VCC&…...

头戴式耳机什么牌子最好?头戴式耳机推荐性价比高
脖子上挎个头戴式作为随身装备,不仅给服装配饰添加了潮流感,还可以可以随时聆听音乐,随着广大消费者的生活水平不断提高,市面上的头戴式耳机越来越多。 选择头戴式耳机时无非就是听音质、看外观、舒适度等等,那么头戴…...

第 366 场周赛 LeetCode 周赛题解
A 分类求和并作差 模拟 class Solution { public:int differenceOfSums(int n, int m) {int res 0;for (int i 1; i < n; i)res i % m ! 0 ? i : -i;return res;} };B 最小处理时间 排序:设四个 p r o c e s s o r T i m e processorTime processorTime 的元…...

Linux: tcpdump抓包示例
文章目录 1. 前言2. TCP 状态机3. tcpdump 抓包示例3.1 抓连接握手包:三次握手3.2 抓数据包示例3.3 抓终结连接:四次挥手 4. 参考资料 1. 前言 限于作者能力水平,本文可能存在谬误,因此而给读者带来的损失,作者不做任…...
seafile server10.0.1 onlyoffice
目标:解决seafile server无法查看office相关文档问题 seafile server 已安装完成 安装onlyoffice 一、Install Docker Engine on Ubuntu 20.04 验证是否安装成功 sudo docker run hello-world 二、拉取onlyoffice/documentserver 镜像及安装 docker network cre…...

商城系统选型:Java商城系统还是PHP商城系统好?
电子商务的不断发展,商城系统成为了企业建设在线销售平台的重要组成部分。 可是在选择合适的商城系统时,许多企业面临着一个重要的决策:是选择Java商城系统还是PHP商城系统呢?下面就对这两种常见的商城系统进行比较,并…...

【多线程进阶】线程安全的集合类
文章目录 前言1. 多线程环境使用 ArrayList2. 多线程环境使用队列3. 多线程环境使用哈希表3.1 HashTable3.2 ConcurrentHashMap 总结 前言 本文主要讲解 Java 线程安全的集合类, 在之前学习过的集合类中, 只有 Vector, Stack, HashTable, 是线程安全的, 因为在他们的关键方法中…...

016 Spring Boot + Vue 图书管理系统
Spring Boot Vue 图书馆管理系统(library-system) 本地快捷预览项目 第一步:运行 db 文件夹下的springboot-vue.sql(询问作者获取),创建springboot-vue数据库 第二步:修改后端数据库配置文件,启动后端 …...
C语言中volatile/register/const/static/extern/auto关键字的作用
目录 一、volatile 二、register详解 三、const详解 四、static详解 五、extern详解 语法 作用 六、auto详解 突然想总结一下这些关键字的作用,灵活使用这些对程序的可靠性和速率都有提高 一、volatile volatile是防止编译器优化,如果是高频繁…...

docker compose的安装和使用
docker-copose 介绍 docker-compose 是一个容器编排工具(自动化部署、管理); 它用来在单台 Linux 服务器上运行多个 Docker 容器; docker-compose 使用YAML文件来配置所有需要运行的 Docker 容器,该 YAML 文件的默认名称为 docker-compose.…...

/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21‘ not found (required by
在某项目中遇到下面的错误, ./model2trt_v2: /lib64/libstdc.so.6: version GLIBCXX_3.4.21 not found (required by ./model2trt_v2) ./model2trt_v2: /lib64/libstdc.so.6: version GLIBCXX_3.4.21 not found (required by ../../../lib/linux_lib/libcuda_utils…...
数字化转型的必备工具:智能呼叫中心系统的应用
数字化转型已经成为企业发展的必然趋势,在这个过程中,智能呼叫中心系统成为了一个不可或缺的工具。智能呼叫中心系统通过整合各种通信渠道和自动化技术,为企业提供了高效、智能的客户服务解决方案。 首先,系统能够集成多种通信渠…...

macOS Sonoma 正式版系统已发布,macos14值得更新吗
北京时间9月27日macOS Sonoma 正式版系统发布,为 Mac 带来一系列丰富新功能:优化小组件、升级视频会议、沉浸式游戏体验等,最新macos14值得更新吗?这里根据我一个月的试用beta版本体验来分享一下。 我使用的是M1芯片的MacBook air…...

数据结构-图-最短路径问题
最短路径问题 单源最短路径Dijkstra算法原理代码实现 Bellman-Ford算法原理代码实现SPFA优化SPFA代码实现 多元最短路径Floyd-Warshall算法原理代码实现 单源最短路径 🚀最短路径:从图G的某个顶点出发到达另一个顶点的最短路径,其中最短是指…...
弹性资源组件elastic-resource设计(二)-集群
简介 弹性资源组件提供动态资源能力,是分布式系统关键基础设施,分布式datax,分布式索引,事件引擎都需要集群和资源的弹性资源能力,提高伸缩性和作业处理能力。 本文介绍弹性资源组件的设计,包括架构设计和详细设计,指导开发人员代码开发,设计基于《flink原理源码分析(一…...

Flink学习笔记(一):Flink重要概念和原理
文章目录 1、Flink 介绍2、Flink 概述3、Flink 组件介绍3.1、Deploy 物理部署层3.2、Runtime 核心层3.3、API&Libraries 层3.4、扩展库 4、Flink 四大基石4.1、Checkpoint4.2、State4.3、Time4.4、Window 5、Flink 的应用场景5.1、Event-driven Applications【事件驱动】5.…...
网络中的一些基本概念
数据共享本质是网络数据传输 ,即计算机之间通过网络来传输数据,也称为 网络通信 。 根据网络互连的规模不同,可以划分为局域网和广域网。 局域网 LAN 局域网,即 Local Area Network ,简称 LAN 。 Local 即标识了局…...
mysql中varchar长度为多少
一. varchar存储规则: 4.0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节) 5.0版本以上,varchar(20),指的是20字符,无论存…...

python+selenium实现UI自动化(入门篇)
一、基础准备。 python环境安装,参考:CSDN pycharm安装,参考:CSDN 谷歌浏览器驱动配置,参考:CSDN二、新建pycharm项目 截图中,上面是项目地址(可以提前在指定位置创建文件夹…...

深度学习基础知识 nn.Sequential | nn.ModuleList | nn.ModuleDict
深度学习基础知识 nn.Sequential | nn.ModuleList | nn.ModuleDict 1、nn.Sequential 、 nn.ModuleList 、 nn.ModuleDict 类都继承自 Module 类。2、nn.Sequential、nn.ModuleList 和 nn.ModuleDict语法3、Sequential 、ModuleDict、 ModuleList 的区别…...
基于算法竞赛的c++编程(28)结构体的进阶应用
结构体的嵌套与复杂数据组织 在C中,结构体可以嵌套使用,形成更复杂的数据结构。例如,可以通过嵌套结构体描述多层级数据关系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...

C++实现分布式网络通信框架RPC(3)--rpc调用端
目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中,我们已经大致实现了rpc服务端的各项功能代…...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...

【项目实战】通过多模态+LangGraph实现PPT生成助手
PPT自动生成系统 基于LangGraph的PPT自动生成系统,可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析:自动解析Markdown文档结构PPT模板分析:分析PPT模板的布局和风格智能布局决策:匹配内容与合适的PPT布局自动…...
关于 WASM:1. WASM 基础原理
一、WASM 简介 1.1 WebAssembly 是什么? WebAssembly(WASM) 是一种能在现代浏览器中高效运行的二进制指令格式,它不是传统的编程语言,而是一种 低级字节码格式,可由高级语言(如 C、C、Rust&am…...

让AI看见世界:MCP协议与服务器的工作原理
让AI看见世界:MCP协议与服务器的工作原理 MCP(Model Context Protocol)是一种创新的通信协议,旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天,MCP正成为连接AI与现实世界的重要桥梁。…...
大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计
随着大语言模型(LLM)参数规模的增长,推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长,而KV缓存的内存消耗可能高达数十GB(例如Llama2-7B处理100K token时需50GB内存&a…...

JVM 内存结构 详解
内存结构 运行时数据区: Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器: 线程私有,程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 每个线程都有一个程序计数…...

【分享】推荐一些办公小工具
1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由:大部分的转换软件需要收费,要么功能不齐全,而开会员又用不了几次浪费钱,借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...

人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式
今天是关于AI如何在教学中增强学生的学习体验,我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育,这并非炒作,而是已经发生的巨大变革。教育机构和教育者不能忽视它,试图简单地禁止学生使…...