embassy-ttp223b
Driver asynchrone no_std pour le capteur tactile TTP223B via GPIO, testé sur la Pico 2 et Pico 2040.
Élimine les faux positifs par un filtrage temporel logiciel (debounce 50 ms) sans jamais bloquer le CPU, garantissant une efficacité énergétique maximale. Optimisé pour l'exécuteur embassy.
Câblage exemple Testé
Waveshare Pico 2350B
| TTP223B | Pico 2350B | Description |
|---|---|---|
| GND | GND | Ground (masse commune) |
| VCC | 3V3 | Alimentation 3.3V |
| OUT | GPIO16 | Signal de sortie tactile |
Schéma de connexion :
TTP223B Pico 2350B
GND -------> GND (pin 38 ou autre GND)
VCC -------> 3V3 (pin 36)
OUT -------> GPIO16 (pin 21)
Utilisation
[]
= "0.1.0"
use ;
let mut touch = new;
loop
Exemple avec affichage SSD1306
use ;
use Ssd1306;
let mut oled = new;
let mut touch = new;
oled.init.await.unwrap;
loop
Exemple Pico 2040
let mut touch = new;
loop
Timing personnalisé
use Ttp223;
// debounce 80 ms, polling toutes les 5 ms
let mut touch = new_with_timing;
Fonctionnalités
wait_for_change: attend un changement d'état confirmé (debounce asynchrone)get_state: retourne l'état mémorisé sans attendreis_pressed: raccourci booléen pour l'état pressénew_with_timingdurées de debounce et de polling configurablesrelease: libère le pin GPIO et retourne la ressource matérielle- Zéro allocation, zéro
unsafe, zéro blocage CPU
📋 Historique et Évolutions (Changelog)
Version : v0.1.0
- Implémentation initiale du driver TTP223B asynchrone
- Debounce logiciel 50 ms par défaut
- API
wait_for_change,get_state,is_pressed,release - Timing configurable via
new_with_timing
Pour consulter le détail de toutes les versions, veuillez vous référer au fichier : 👉 CHANGELOG.md
Licence
GPL-3.0-or-later — Copyright (C) 2026 Jorge Andre Castro