Jun 24, 2023
ポテンショメータとロータリーエンコーダ、および Arduino での使用方法
ポテンショメータとロータリーエンコーダは一見するとほぼ同じに見えますが、動作方法が異なります。 Arduino で両方を使用する方法をご覧ください。 電子ユーザーコントロールコンポーネントのうち、ロータリー
ポテンショメータとロータリーエンコーダは一見するとほぼ同じに見えますが、動作方法が異なります。 Arduino で両方を使用する方法をご覧ください。
電子ユーザー コントロール コンポーネントの中でも、ロータリー ノブは最も使い心地の良いコンポーネントとして際立っています。 これらは、ボタンやスイッチとうまく連携するだけでなく、タッチスクリーンやその他の入力デバイスを補完することもできます。 しかし、独自の DIY Arduino プロジェクトにノブを追加するにはどうすればよいでしょうか?
主なオプションは 2 つあり、ポテンショメータまたはロータリー エンコーダです。 これらのコンポーネントは似ているように見えますが、Arduino マイクロコントローラー ボードなどのデバイスで使用する方法は大きく異なります。 それらを相互に比較してみましょう。
DIY 愛好家が目にするポテンショメータやロータリー エンコーダのほとんどは、同様のフォーム ファクタで提供されます。 コネクタの脚が取り付けられた直方体または円筒形のベースと、ねじれてキャップを取り付けるための切り欠きのある丸いシャフトが付いています。
一部のポテンショメータは、音楽ミキシング デッキにあるような長いスライドの形をしているものなど、見た目が異なります。 ただし、ロータリー式の場合は、一見するとロータリーエンコーダとほとんど同じに見えるので、同じだと思っても仕方ありません。
ポテンショメータは本質的には可変抵抗器です。 シャフトが回転すると、ポテンショメータ内の抵抗が変化するため、ユーザーは回路を再構築することなく、回路の特性を変更できます。 ポテンショメータにはアナログとデジタルの両方がありますが、デジタル ポテンショメータはアナログ ポテンショメータを模倣しているため、使用方法は非常に似ています。
ポテンショメータには、シャフトを回転できなくなる開始点と終了点が常に定義されています。 ポテンショメータの中には、回すとゴツゴツとした感触のものもありますが、古いステレオにあるような滑らかなものも多くあります。
ポテンショメータはアナログであるにもかかわらず、マイクロコントローラとうまく連携します。 Raspberry Pi Pico または Arduino を使用してポテンショメータを簡単にセットアップできます。
ロータリー エンコーダは、接続されているデバイスにアナログまたはデジタル信号を提供するセンサーを使用してシャフトの位置を決定します。 これにより、エンコーダがどの位置にあるかがデバイスに通知されます。通常、ロータリー エンコーダには、回転シャフトに加えて、シャフトを下に押すことによって作動する内蔵ボタンもあります。
ポテンショメータとは異なり、ロータリー エンコーダは停止することなく回転でき、ほとんどの場合、シャフトの各位置に触覚バンプがあります。 最近の自動車の多くは、エンターテイメント システムを制御するためにロータリー エンコーダを使用しています。
シンプルな設計のおかげで、Arduino でポテンショメータを使用するのは簡単です。 ポテンショメータには、グランド、出力、vref の 3 つのコネクタがあります。 ground ピンと vref ピンはそれぞれ Arduino の GND コネクタと 5V コネクタに接続し、ポテンショメータの出力ピンはボード上のアナログ入力の 1 つに接続します。
Arduino ポテンショメータ コードは基本的なコードから始まります。設定()そしてループ() Arduino IDE で新しいファイルを作成するときに表示されるテンプレート。 まず、定数整数コードの先頭にある変数を使用して、ポットのアナログ ピン接続を登録します (この場合は A0)。
これに続いて、設定()関数は簡単です。ポテンショメータのピンを入力として宣言するだけです。 診断のために PC にデータを送信する場合は、シリアル接続を開始することもできます。
次に、設定を行います。ループ()関数。 まずは、整数を使用した変数アナログ読み取り()ポテンショメータの位置を保存する機能。 これに続いて、次を使用できます。地図()この例では、PWM 仕様に一致させるために、たとえば LED の明るさを制御するために、処理している値のサイズを縮小する関数を使用します。 安定性を確保するために短い遅延を追加します。
ポテンショメータの位置がわかったので、それをコードの他の部分で使用できます。 たとえば、もし