3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

M5 Stackのボタン誤検出を防ぐ

Last updated at Posted at 2020-11-08

#この記事でやった事
*M5 Stackのボタン押下誤検出が生じていたので、その対策
*M5 UI Flowで現象確認から防止策まで

#怪現象の発生
前回 [M5StackからLINE Notify発信] (https://qiita.com/mokatsumo/items/ff173012c9cfeaa9c784)、を書きましたがこの時、しばらく放置しているとボタンを押していないのにLINEに通知が届く怪現象が発生していました。

色々試してみると、ボタンAだけこの現象が発生するようでした。
ノイズ等を拾いやすいのかAだけが瞬時押された状態になってそれを検出してしまうようです。

#現象の確認
ON状態になる時間が十分短ければ、実際のボタン押下と見分けられるはずです。下記コードでONの時間を簡易に確認してみました 。
A81903E3-A9BF-46FA-9A15-80AAE037368F.jpeg
各ボタンを押した回数と、最新の「押した時間の長さ(ms)」を表示します。

ボタンを押すとこうなります。左からボタン名、回数、時間(ms)です。
46211D83-693C-43C8-BF2B-1DE89BFDC713.jpeg
短く押してもだいたい50msくらいにはなるようです。

回数クリアして1時間放置してみると、
06023AC2-C8DE-430F-A927-976C7557904A.jpeg
Aボタンに2回の検出がありました。時間は0ms以下、ごく短いようです。
10ms以下は誤検出として無視できそうですね。

#対策案
下記のように10ms以下を無視するようにして、再度放置してみました。
B32427F7-6B12-46C6-9B1A-107D82A87F7B.jpeg

1時間経っても誤検出はなく、問題なさそうです。

#その後
最終的にはシンプルに10ms待ってからボタン再判定を入れる事でノイズ回避することにしました。1日放置しても誤検出ありません。

#さらにその後(2021.9.12)
M5 UIのファームウェア側で対策されたのか、Ver1.8.3アップデート以降は特に対策無しでも誤検出自体発生していません。よかったです。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?