質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

解決済

Arduino Leonardoでロータリーエンコーダーの状態を取得したい

NFHK
NNFF

総合スコア1

Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

1回答

0リアクション

0クリップ

556閲覧

投稿2022/03/02 13:22

編集2022/03/02 13:28

やりたいこと

現在Arduino Leonardoを使ってロータリーエンコーダーが
停止しているのか、左に回転しているのか、右に回転しているのかを取得したい。

現在Arduino Leonardoを使って
ロータリーエンコーダーの状態を取得しようとしています。

こちらのライブラリを使用して書き込みをしてみたのですが
エラーが発生してしまって困っています。

やっていること

スケッチ例→Rotary-Master→Interrupt
をArduino leonaldoに書き込んだ

/* Rotary Encoder - Interrupt Example The circuit: * encoder pin A to Arduino pin 2 * encoder pin B to Arduino pin 3 * encoder ground pin to ground (GND) */ #include <Rotary.h> Rotary r = Rotary(2, 3); void setup() { Serial.begin(9600); r.begin(); PCICR |= (1 << PCIE2); PCMSK2 |= (1 << PCINT18) | (1 << PCINT19); sei(); } void loop() { } ISR(PCINT2_vect) { unsigned char result = r.process(); if (result == DIR_NONE) { // do nothing } else if (result == DIR_CW) { Serial.println("ClockWise"); } else if (result == DIR_CCW) { Serial.println("CounterClockWise"); } }

エラーの内容

書き込みをする際に

'PCIE2' was not declared in this scope 'PCINT19' was not declared in this scope

これらのエラーが発生します。

エラー解決のためにやったこと

PCIE2,PCINTが定義されていないという内容なので
こちらのサイトを参考に

PCICR |= (1 << PCIE2); PCMSK2 |= (1 << PCINT18) | (1 << PCINT19);

の部分を

PCICR |= B00000100; PCMSK2 |= B00001000|B00000100;

と書き換えてみましたが

'PCMSK2' was not declared in this scope

と表示され、いまいち解決できそうにありません。

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。