#パルスカウンターを作ってみる
m5stackを使ってパルスカウンターを作ってみました。
m5stackについて調べた自分の記事のテスト編になります。
m5stackで遊ぼう
https://qiita.com/zasshyu6/items/35a1048a9781bdcfebb7
##開発環境
- windows 10 Home 64bit
- Visual Studio Code 1.36.1
- PlatformIO
- 使用言語はarduino
##仕様
-
動作仕様
-
5usec
で入力の変化を取得してパルスをカウントする。 - 入力モードは5種類
- A/Bパルス入力 -> 1/2/4逓倍
- +/-パルス入力
- DIR/PLS入力
- 最高取得周波数は
100kHz
-
5usec
周期なので無茶苦茶遅い・・・
-
-
-
ボタンとか入力の設定
-
Button A
でCOUNT START/STOP -
Button B
で1/2/4逓倍と+/- pulse入力 ,DIR/PLS 入力切替 -
Button C
でカウントリセット -
GPIO21
がA_INPUT
,GPIO22
がB_INPUT
- 入力は内部で
PULL-UP
する - 使用するエンコーダは千石電商で購入
EC12シリーズ
-
##やってみた
いつも通りソースはgithubに上げました。今回は分割しました。
https://github.com/zasshyu66/m5stack_Study/tree/master/pulseCounter
多分使われないと思いますが・・・
最高周波数の確認などはしていないので自己責任でお願いします。
今回は、スレッドを2つに分け、一つはボタン確認、もう一つは画面表示に使用しています。
やってて気づいたのですが、スレッドを定周期で回すためにvTaskDelayUntil
を使用しましたが、
どうやらWDTのほうへ処理を返していないのか、すぐにリセットがかかってしまいました。
vTaskDelay
かdelay
を入れてあげないとリセットがかかるようです。
どういう動きになっているのか・・・
##次にやること
サーボモータを動かそうと思いましたが、最近softAPを使ってみて楽しかったのと
ESP32が持っているパルスカウンターを使ってみたいといったことが出てきたので
ESP-IDF
にチャレンジしてみたいと思います。