Raspberry Pi Picoでポテンショメータを活用 アナログ入力とLED制御の実践ガイド

はじめに

Raspberry Pi Pico は アナログ入力(ADC) を持っており、ポテンショメータ(可変抵抗)を使って電圧を読み取ることができます。ポテンショメータ活用すると、ボリューム調整やロボットの制御など、さまざまな電子工作が可能になります!今回は、ポテンショメータの基本的な動作原理を解説しながら、Pico でアナログ値を読み取る方法を紹介します。

ポテンショメータとは?

ポテンショメータ(Potentiometer)とは、回転によって抵抗値が変化する電子部品 です。主に以下のような用途で使われます。

・音量調整(ボリューム)
・サーボモーターやLEDの制御
・ジョイスティックやロボット操作

ポテンショメータの内部構造と動作原理

ポテンショメータは、内部にカーボンや金属でできた 抵抗体可動接点(スライダー) を持つ 可変抵抗器 です。

ポテンショメータは、電圧を 分圧 することで、任意の電圧を出力します。
Vout = Vin × R2/(R1+R2)
Vout : 出力電圧。PicoのADCピンで読み取る値
Vin  : 入力電圧。3.3V
R1,R2 : 抵抗値。スライダーの位置で変化する

10kΩのポテンショメータでスライダーを中央(50%)にすると
 Vout = 3.3(V) × 5kΩ / (5kΩ + 5kΩ) = 1.65(V)
スライダーを動かすとVoutが0~3.3Vの間で変化する

ラズベリーパイ Pico の ADC の仕組み

アナログ信号とデジタル信号
アナログ信号
連続的な値(電圧など)を持つ信号。ポテンショメータの出力はアナログ信号です。

デジタル信号
離散的な値を持つ信号(例: 0~65535)。コンピュータが処理できる形式に変換する必要があります。

ADC(アナログ-デジタルコンバータ)

ラズベリーパイ Pico には、アナログ信号をデジタル信号に変換するための ADC(アナログ-デジタルコンバータ) が内蔵されています。

入力範囲
Pico の ADC は、0V ~ 3.3V のアナログ電圧を取り込むことができます。

分解能
ADC は 16 ビットの分解能を持っています。つまり、入力電圧が 0V ~ 3.3V の範囲を 0 ~ 65535 の整数値に変換します。

デジタル値 = 入力電源 / 基準電源(3.3V) × 65535

変換時間
picoのADCは非常に高速。およそ500kサンプル/秒つまり、2マイクロ秒に1回サンプリングできる能力があります。

配線

PicoのADCは3.3Vまでしか計測できないので、ご注意ください。

RaspberryPi Picoポテンショメータ
VBUS(40番)VCC
GND(38番)GND
GP26(20番)OUT
()内はピン番号

ポテンショメータを使う

ポテンショメータの値を取得する

from machine import ADC, Pin
from time import sleep

# ポテンショメータを GP26(ADC0)に接続
pot = ADC(Pin(26))

while True:
    value = pot.read_u16()  # 0 〜 65535 の範囲
    voltage = (value / 65535) * 3.3  # 0〜3.3V に変換
    print("ADC Value:", value, "Voltage:", voltage, "V")
    sleep(0.1)  # 0.1秒ごとに測定

ポテンショメータで LED の明るさを調整してみます。
LEDのアノードをGP15(PWM)に接続します。

from machine import Pin, ADC, PWM
from time import sleep

# ポテンショメータ(GP26)
pot = ADC(Pin(26))

# LED(GP15, PWM制御)
led = PWM(Pin(15))
led.freq(1000)  # PWM周波数を1kHzに設定

while True:
    value = pot.read_u16()  # 0〜65535
    duty = int((value / 65535) * 65535)  # PWMデューティ比に変換
    led.duty_u16(duty)
    sleep(0.1)

まとめ

ポテンショメーターは非常に多くの場面で登場します。仕組みを理解すれば、アナログ入力を活用した電子工作の幅がぐっと広がります。ぜひチャレンジしてみてください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする