【HaaS Python硬件积木】4路触摸电容模块-TTP224

简介: 【HaaS Python硬件积木】4路触摸电容模块-TTP224

来这里发现更多拿来即用的传感器

HaaS开发框架

HaaS积木方案,赋能生态开发者,让您快速找到自己需要的解决方案,硬件主板与外设,以及各种应用组件。

https://haas.iot.aliyun.com/solution/hardware


一、产品简介

板载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

三、软件接口

4路触摸电容模块HaaS Python驱动:下载地址


TTP224(ttp01Obj,ttp02Obj,ttp03Obj,ttp04Obj) - 创建TTP224驱动对象

函数原型:

ttp224Obj = TTP224(ttp01Obj,ttp02Obj,ttp03Obj,ttp04Obj)


参数说明:

参数 类型 必选参数? 说明

ttp01Obj GPIO 否

ttp02Obj GPIO 否

ttp03Obj GPIO 否

ttp04Obj GPIO 否

返回值: TTP224对象创建成功,返回TTP224对象;TTP224对象创建失败,抛出Exception

示例代码:

import ttp224

from driver import GPIO

ttp01Dev = GPIO()

ttp01Dev.open("ttp01")

ttp02Dev = GPIO()

ttp02Dev.open("ttp02")

ttp03Dev = GPIO()

ttp03Dev.open("ttp03")

ttp04Dev = GPIO()

ttp04Dev.open("ttp04")

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-触摸

示例:

import ttp224

from driver import GPIO

import utime

ttp01Dev = GPIO()

ttp01Dev.open("ttp01")

ttp02Dev = GPIO()

ttp02Dev.open("ttp02")

ttp03Dev = GPIO()

ttp03Dev.open("ttp03")

ttp04Dev = GPIO()

ttp04Dev.open("ttp04")

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

四、接口案例

此使用实例在board.json中定义了名为tTTP224的I2C类型的对象。在Python脚本中周期性的获取TTP224各路触摸电容的状态并打印在日志中。


代码:

# board.json配置:

{

   "name": "board-name",

   "version": "1.0.0",

   "io": {

     "ttp01": {

       "type": "GPIO",

       "port": 2,

       "dir": "input",

       "pull": "pullup"

     },

     "ttp02": {

       "type": "GPIO",

       "port": 12,

       "dir": "input",

       "pull": "pullup"

     },

     "ttp03": {

       "type": "GPIO",

       "port": 13,

       "dir": "input",

       "pull": "pullup"

     },

     "ttp04": {

       "type": "GPIO",

       "port": 14,

       "dir": "input",

       "pull": "pullup"

     }

   },

   "debugLevel": "ERROR",

   "repl": "disable"

}


# Python代码

import ttp224

from driver import GPIO

import utime

ttp01Dev = GPIO()

ttp01Dev.open("ttp01")

ttp02Dev = GPIO()

ttp02Dev.open("ttp02")

ttp03Dev = GPIO()

ttp03Dev.open("ttp03")

ttp04Dev = GPIO()

ttp04Dev.open("ttp04")

ttp = ttp224.TTP224(ttp01Dev,ttp02Dev,ttp03Dev,ttp04Dev)

print("ttp224 Init!")

while True:             # 无限循环

   cnt,ttp01,ttp02,ttp03,ttp04 = ttp.getStatus()

   print(cnt,ttp01,ttp02,ttp03,ttp04)

   utime.sleep(1)


输出:

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

 

————————————————

版权声明:本文为CSDN博主「HaaS技术社区」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/HaaSTech/article/details/124926760

相关文章
|
3月前
|
开发者 Python
如何在Python中管理模块和包的依赖关系?
在实际开发中,通常会结合多种方法来管理模块和包的依赖关系,以确保项目的顺利进行和可维护性。同时,要及时更新和解决依赖冲突等问题,以保证代码的稳定性和可靠性
155 62
|
2月前
|
Python
Python Internet 模块
Python Internet 模块。
131 74
|
3月前
|
算法 数据安全/隐私保护 开发者
马特赛特旋转算法:Python的随机模块背后的力量
马特赛特旋转算法是Python `random`模块的核心,由松本真和西村拓士于1997年提出。它基于线性反馈移位寄存器,具有超长周期和高维均匀性,适用于模拟、密码学等领域。Python中通过设置种子值初始化状态数组,经状态更新和输出提取生成随机数,代码简单高效。
141 63
|
3月前
|
数据可视化 Python
如何在Python中解决模块和包的依赖冲突?
解决模块和包的依赖冲突需要综合运用多种方法,并且需要团队成员的共同努力和协作。通过合理的管理和解决冲突,可以提高项目的稳定性和可扩展性
|
3月前
|
测试技术 Python
手动解决Python模块和包依赖冲突的具体步骤是什么?
需要注意的是,手动解决依赖冲突可能需要一定的时间和经验,并且需要谨慎操作,避免引入新的问题。在实际操作中,还可以结合使用其他方法,如虚拟环境等,来更好地管理和解决依赖冲突😉。
|
3月前
|
持续交付 Python
如何在Python中自动解决模块和包的依赖冲突?
完全自动解决所有依赖冲突可能并不总是可行,特别是在复杂的项目中。有时候仍然需要人工干预和判断。自动解决的方法主要是提供辅助和便捷,但不能完全替代人工的分析和决策😉。
|
1月前
|
Python
[oeasy]python057_如何删除print函数_dunder_builtins_系统内建模块
本文介绍了如何删除Python中的`print`函数,并探讨了系统内建模块`__builtins__`的作用。主要内容包括: 1. **回忆上次内容**:上次提到使用下划线避免命名冲突。 2. **双下划线变量**:解释了双下划线(如`__name__`、`__doc__`、`__builtins__`)是系统定义的标识符,具有特殊含义。
32 3
|
存储 Python
Python必知词汇:硬件
硬件是电脑的物理设备,是指计算机系统中由电子,机械和光电元件等组成的各种物理装置的总称。这些物理装置按系统结构的要求构成一个有机整体,为计算机软件运行提供物质基础。
354 0
|
2月前
|
人工智能 数据可视化 数据挖掘
探索Python编程:从基础到高级
在这篇文章中,我们将一起深入探索Python编程的世界。无论你是初学者还是有经验的程序员,都可以从中获得新的知识和技能。我们将从Python的基础语法开始,然后逐步过渡到更复杂的主题,如面向对象编程、异常处理和模块使用。最后,我们将通过一些实际的代码示例,来展示如何应用这些知识解决实际问题。让我们一起开启Python编程的旅程吧!
|
2月前
|
存储 数据采集 人工智能
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。