デジタル信号の入出力方法を学びます。
Author: Karl Söderby、Last revision: 2024/02/05
この章では、電子部品とMicroPythonモジュールを使い、実用的な例を通じてデジタル信号を扱います。
以下の事柄を学びます。
- ボタンの状態を取得する
- LEDを光らせる
- Nano ESP32で連続して動作させる(ループ状態にする)
デジタル信号
デジタル信号はHIGHかLOWの2つの状態だけを持ちます。例えば、ボタンの状態(押されているか、押されていないか)を読んだり、LEDを点灯させたり(オン/オフ)します。
デジタル信号はどのように動作するのでしょうか? とても簡単です。ボタンの場合、Arduinoは電圧がかかっているかをプログラムで確認し、電圧がかかっていれば、HIGH状態もしくは1です。そうでなければ、LOW状態もしくは0です。
LEDの場合は、反対のことを行います。HIGHもしくはLOWを出力します。LEDをArduinoのデジタルピンに接続していれば、1か0を書き込むことで、LEDを点灯もしくは消灯できます。
演習1: ボタンの状態を取得する
この演習では、ボタンの状態を取得します。以下の図のように、ボタンをNano ESP32ボードに接続しておく必要があります。
Nano ESP32を、ねじ端子付き基盤に接続するときは、アダプタの図に注意し、ボードのUSB-C®ポートを、図のように接続してください。
ねじ端子付き基盤は、部品を素早く確実に接続するための、素晴らしい方法です。適切な大きさのドライバーを準備し、ピンに接続したい電線をアダプタのねじ端子の側面の穴に通し、対応するねじを締めます。
電線を固定したら、確実な接続ができました。
コードエディタを起動し、以下のスクリプトをmain.py
にコピー・ペーストします。そして、“Run"ボタンをクリックし、実行します。
from machine import Pin
import time
button = Pin(9, Pin.IN, Pin.PULL_UP)
while True:
print(button.value())
time.sleep(0.5)
if button.value() == 1:
print("BUTTON PRESSED!")
D6
ピンに接続していますが、コードでは9
番ピンを使っています。詳細とピンマップはこちらを参照してください。“Run"ボタンをクリックし、実行します。その後、ボタンを押すと、端末に"BUTTON PRESSED!“と表示されるのが見えます。
回路でよく使われる、ボタンの状態の取得に成功しました。
演習2: LEDを光らせる
次の演習では、LEDを光らせます。以下の図のように、LEDをNano ESP32ボードに接続しておく必要があります。
コードエディタを起動し、以下のスクリプトをmain.py
にコピー・ペーストします。そして、“Run"ボタンをクリックし、実行します。
from machine import Pin
import time
myLED = Pin(9, Pin.OUT)
while True:
myLED.value(0)
time.sleep(1)
myLED.value(1)
time.sleep(1)
スクリプトを実行すると、LEDが点滅するのがわかります。スクリプトにtime.sleep(1)
を追加したためです。この行が実行されると、Nano ESP32は次の命令を実行する前に1秒停止します。
while True:
文も使いました。これは、Nano ESP32をループ状態にし、スクリプトを停止させるまで、無限に実行します。
まとめ
デジタル信号は、2つの値を持ちます。一つはHIGHでもう一つはLOWです。これは、ボタンの状態(押しているか押していないか)を決定したり、LEDの点灯・消灯状態を制御したりします。これ以外にも多くのアプリケーションで利用されます。電気設計の基本の一部です。
演習では、デジタル信号に関するハンズオンを体験しました。Nano ESP32ボードに接続したボタンの状態を取得し、LEDの出力を制御しました。
次の章: アナログI/OとPWM信号
オリジナルのページ
https://docs.arduino.cc/micropython/micropython-course/course/digital/
最終更新日
April 14, 2024