こんばんは!
今回はプルアップ抵抗、プルダウン抵抗についてと、arduinoでの使い方を説明したいと思います。
使用するもの
・Arduinoメインボード(https://amzn.to/2vkPIUH)
・USBケーブル(https://amzn.to/2UHhntl)
・ブレッドボード(https://amzn.to/38eNi8u)
・ジャンパワイヤ (https://amzn.to/39uBU8T)
・タクトスイッチ(https://amzn.to/3aVZe0k)
・抵抗100Ω(https://amzn.to/2CfF5SN)
プルアップ、プルダウンとは
プルアップとはあらかじめ電源(arduinoであれば5Vや3.3V)に接続しているため、HIGHが供給されていて、スイッチを押してGND側と接続するとLOWが供給されます、
逆にプルダウンとはあらかじめGNDに接続しているため、LOWが供給されていて、スイッチを押して電源側と接続するとHIGHが供給されます。
プルアップ抵抗、プルダウン抵抗とは
電子回路での信号としての電圧はHIGHまたはLOWが印加されるのですが、実際には様々な要因によって、0.1Vの電圧がかかったりすることもあります。
そのときにマイコンが誤作動を起こしてしまうため、対策として、プルアップ抵抗、プルダウン抵抗を回路に取り付ける必要があります。
プルアップ抵抗、プルダウン抵抗を取り付けたプルアップ回路、プルダウン回路を以下に示します。
HIGH側に抵抗がついています。これがプルアップ抵抗です。
LOW側に抵抗がついています。これがプルダウン抵抗です。
Arduinoでの使い方
では実際にarduinoを使ってプルアップ回路、プルダウン回路を作っていきます。
まずプルアップ回路からです。
以下のように配線します。
次にコードを書いていきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | int button = 7; int led = 13; int ledState = HIGH; void setup() { pinMode(button, INPUT); pinMode(led, OUTPUT); } void loop() { ledState = digitalRead(button); digitalWrite(led,ledState); } |
実行したときは以下の動画のように、スイッチを押したときはLEDが消え、スイッチを押していないときはLEDが点灯します。
次にプルダウン回路です。
以下のように配線します。
そして、次のコードを書いていきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | int button = 7; int led = 13; int ledState = LOW; void setup() { pinMode(button, INPUT); pinMode(led, OUTPUT); } void loop() { ledState = digitalRead(button); digitalWrite(led,ledState); } |
実行したときは以下の動画のように、スイッチを押したときはLEDが点灯し、LEDを押していないときはLEDが消えます。
Arduino内部でのプルアップ抵抗
Arduinoではマイコン内部で外部のプルアップ抵抗を使わずにプルアップすることができます。
内部プルアップ抵抗を有効にすると入力はHIGHになるので、スイッチが押された時にLOWになるように以下のように接続をします。
次にコードを書いていきます。
内部プルアップ抵抗を有効にするにはINPUT_PULLUPを使用します。
pinMode(button, INPUT_PULLUP);
でbutton(D13ピン)を入力にし、プルアップ抵抗を有効にします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | int button = 7; int led = 13; int ledState = LOW; void setup() { pinMode(button, INPUT_PULLUP); pinMode(led, OUTPUT); } void loop() { ledState = digitalRead(button); digitalWrite(led,ledState); } |
実行したときは以下の動画のように、スイッチを押したときはLEDが消え、スイッチを押していないときはLEDが点灯します。
まとめ
今回はプルアップ抵抗、プルダウン抵抗、またArduinoでの使用方法について、さらにArduino内部でのプルアップ抵抗を有効にする方法を説明しました。
内部でのプルアップ抵抗を有効にすることにより、わざわざ外部の抵抗を用意することなくプルアップ抵抗を使用することができるので、回路が単純になるメリットがありますが、視覚的に見えないためのデメリットも存在するので、注意が必要です。
今回はこれで終わります。
ではまた!