MicroPythonでの、デジタルピンとアナログピンの使い方を学びます。
Author: Francesca Sanfilippo & Karl Söderby、Last revision: 2023/12/04
この章では、デジタルピンとアナログピンの扱い方を学びます。
対応している全てのボードは、一連のピンを備えています。ほとんどのピンは、汎用入出力(GPIO: general-purpose input/output)ピンとして動作します。信号に応じて、デジタルピンとアナログピンを使い分けます。入出力について学びます。
基本的には、デジタルピンとアナログピンという2種類のピンがあります。デジタルピンはHIGH(通常は5Vか3.3V)か、LOW(0V)に設定できます。例えば、LEDのオン・オフを切り替えるためのボタンの状態を読み取るのに利用できます。
デジタルピン
デジタル信号は、HIGH(1)とLOW(0)の2種類の値を持ちます。入出力が2つのどちらかの値を持つときに利用します。例えば、LEDをオン・オフするのに、デジタル信号を使うことができます。
Digital Write
このセクションでは、ピンの状態を制御するのに、machine
モジュールを紹介します。この例では、ピンにmyLED
という名前にします。
MicroPythonでは、Pin
は2つの引数で宣言します: 一つはピン番号で、制御したいピン番号を定義します。例えば、25
です。もう一つは、Pin.OUT
で、ピンを出力に設定します。
最後に、ピンをHIGHかLOWの状態にします。状態はvalue
で、1
か0
です。
|
|
いつもの"blink"の例を作るには、timi
モジュールもインポートし、while
ループを作ります。
以下の例は、ボード上のLEDを1秒ごとに点滅させます。
|
|
Digital Read(プルアップ)
この例では、PULL_UP
モードを使って、デジタルピンからデジタル値を読み取ります。ここでは、PIN.IN
コマンドを使って、ピンを入力と宣言します。
p2.value()
を使い、状態を読みます。これは、0(LOW)か1(HIGH)を返します。
|
|
Digital Read(プルダウン)
この例では、PULL_DOWN
モードを使って、デジタルピンからデジタル値を読み取ります。ここでは、PIN.IN
コマンドを使って、ピンを入力と宣言します。
p2.value()
を使い、状態を読みます。これは、0(LOW)か1(HIGH)を返します。
|
|
アナログピン
アナログピンの例は、ADCクラスです。これは、アナログ・デジタル変換器へのインターフェイスを提供し、継続的な電圧をサンプリングし、単一のエンドポイントを読み取りし、離散値に変換します。
ADCクラスを利用する、以下の4つのメソッドがあります: ADC.init
、ADC.block()
、ADC.read_u16()
、ADC.read_uv()
。
Analog Read
アナログピンを読み取るには、ADC.read_u16
コマンドを使います。このコマンドは指定したアナログピンを読み、0-65535の間の整数値を返します。これを使うには、machine
モジュールから、ADC
とPin
をインポートする必要があります。
|
|
PWM(Pulse Width Modulataion)
PWMは、高速にON/OFFするデジタル出力を使ってアナログ値を生成するのに使います。
結果として、指定した電圧をシミュレートし、ピンに出力することができます。以下の例では、0-65535(16ビット)の範囲の中から、30000
を出力します。LEDをピンに接続すれば、ほぼ半分の明るさで光ります。
これを使うには、machine
モジュールから、PWM
とPin
をインポートする必要があります。
from machine import Pin, PWM, ADC
pwm = PWM(Pin(15)) duty = 30000 #between 0-65000
pwm.freq(1000)
while True: pwm.duty_u16(duty)
オリジナルのページ
https://docs.arduino.cc/micropython/basics/digital-analog-pins/
最終更新日
April 14, 2024