teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

回答に追記

2018/11/03 12:34

投稿

y_waiwai
y_waiwai

スコア88180

answer CHANGED
@@ -1,3 +1,15 @@
1
1
  A相、B相それぞれのレベルを覚えておいて、立ち上がり/立ち下がりのエッジを捉えてカウントしていく操作をする必要がありますね
2
2
 
3
- 右回転の検出でカウントUP、左回転でカウントDOWN、それをどう判断するか考えてみてください
3
+ 右回転の検出でカウントUP、左回転でカウントDOWN、それをどう判断するか考えてみてください
4
+
5
+ ---
6
+ なんかまだ解決してないようで、、
7
+ まず、
8
+ pinMode(EnPinA, INPUT_PULLUP);
9
+ pinMode(EnPinB, INPUT_PULLUP);
10
+ としてください。
11
+ これでレベルが勝手に変わる、ということはなくなります
12
+
13
+ で、ここで言うロータリエンコーダとはダイヤルタイプの接点出力のヤツだと思いますが、これをきちんと動かそうとするとちとめんどくさいです
14
+ こっちでやったのは、1msほどのタイマ割り込みでA相B相を取り込み、チャタリング処理&エッジ検出してカウントさせるってことをやってました。
15
+ これだとArduinoNanoでもきちんとカウント動作ができます