プルアップ・ダウン抵抗とRaspberry Pi内部で持っている抵抗
Contents
プルダウン・プルアップ抵抗
前回の記事でプルダウン抵抗を配置した回路を試したので今回はプルアップ抵抗の回路を試してみるのと、Raspberry Pi内部に持っているプルダウン(プルアップ)抵抗をPythonのプログラムから指定して実際の抵抗と同じ様に動作するかどうかを試してみる。
参考にした書籍
今回の記事も金丸隆志さんの「Raspberry Piで学ぶ電子工作」を参考にしている。
とても丁寧に書かれておりラズパイ初心者の自分にはとてもありがたかった。
尚、この書籍はRaspberry Pi 3ベースで書かれており、この記事で書いている電子回路は3も4も変わりが無いが、今ラズパイを購入するならRaspberry Pi 4だと思うので同じ著者のラズパイ4対応の書籍も紹介しておく。
試した環境
環境は以下の通り。
本体 | Raspberry Pi 3 B+ |
OS | Raspbian Version:June 2019 |
前回のプルダウン抵抗の回路
前回の回路はタクトスイッチとGNDとの間に10kΩの抵抗を配置してスイッチがオフの時に安定して0Vになり、スイッチがオンの時にはGNDで大電流が流れないようにした回路だ。
プルアップ抵抗
プルアップ抵抗の場合は3.3VとGPIO17の間に10kΩの抵抗を入れてタクトスイッチ、GNDと接続する。
この回路図で前回のPythonのプログラムを実行するとタクトスイッチを押していない時に点灯、押すと消灯と前回とタクトスイッチと動きが逆になる事が確認できた。
Raspberry Pi内部にある抵抗
続いて実際に抵抗を配置しなくてもRaspberry Pi内部にあるプルアップ(プルダウン)抵抗を使って同じ事ができるかどうかを試してみる。
回路図
プルダウン抵抗の回路図から10kΩの抵抗を取り除く。
3.3v→タクトスイッチ→GPIO17と単純な配線になった。
プログラム
ソースコード
プログラム中にプルダウン抵抗の指定をする。
# -*- coding: utf-8 -*-
"""
Created on Sun Aug 2 08:14:04 2020
@author: Souichirou Kikuchi
"""
import RPi.GPIO as GPIO
from time import sleep
LED_GPIO = 4 # LEDに接続するGPIO番号
TACT_GPIO = 17 # Tack Switchに接続するGPIO番号
GPIO.setmode(GPIO.BCM)
GPIO.setup(LED_GPIO, GPIO.OUT)
# GPIO.setup(TACT_GPIO, GPIO.IN) # この行をコメントアウト
GPIO.setup(TACT_GPIO, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) # この行を追加した
try:
print('--- start program ---')
while True:
if GPIO.input(TACT_GPIO) == GPIO.HIGH:
GPIO.output(LED_GPIO, GPIO.HIGH)
else:
GPIO.output(LED_GPIO, GPIO.LOW)
sleep(0.01)
except KeyboardInterrupt:
pass
finally:
GPIO.cleanup()
print('--- stop program ---')
補足説明
変更点は16行目をコメントアウトして17行目を追加しただけ。
pull_up_down=GPIO.PUD_DOWN
の指定をするだけで実際にタクトスイッチとGNDとの間に抵抗を入れたのと同じことをやってくれる事は確認できた。
今回の記事は以上で終了する。
この記事が何処かで誰かの役に立つことを願っている。
尚、当記事中の商品へのリンクはAmazonアソシエイトへのリンクが含まれています。Amazonのアソシエイトとして、当メディアは適格販売により収入を得ていますのでご了承ください。
最近のコメント