プルアップ・ダウン抵抗とRaspberry Pi内部で持っている抵抗 | そう備忘録

プルアップ・ダウン抵抗とRaspberry Pi内部で持っている抵抗

プルダウン・プルアップ抵抗

前回の記事でプルダウン抵抗を配置した回路を試したので今回はプルアップ抵抗の回路を試してみるのと、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で大電流が流れないようにした回路だ。

前回の記事のプルダウン抵抗の回路図
タクトスイッチによるLEDの点灯

プルアップ抵抗

プルアップ抵抗の場合は3.3VとGPIO17の間に10kΩの抵抗を入れてタクトスイッチ、GNDと接続する。

プルアップ抵抗の例

この回路図で前回のPythonのプログラムを実行するとタクトスイッチを押していない時に点灯、押すと消灯と前回とタクトスイッチと動きが逆になる事が確認できた。

LED点灯

Raspberry Pi内部にある抵抗

続いて実際に抵抗を配置しなくてもRaspberry Pi内部にあるプルアップ(プルダウン)抵抗を使って同じ事ができるかどうかを試してみる。

回路図

プルダウン抵抗の回路図から10kΩの抵抗を取り除く。

3.3v→タクトスイッチ→GPIO17と単純な配線になった。

10kΩの抵抗を回路図から取り除いた

プログラム

ソースコード

プログラム中にプルダウン抵抗の指定をする。

# -*- 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のアソシエイトとして、当メディアは適格販売により収入を得ていますのでご了承ください。

souichirou

やった事を忘れない為の備忘録 同じような事をやりたい人の参考になればと思ってブログにしてます。 主にレゴ、AWS(Amazon Web Services)、WordPress、Deep Learning、RaspberryPiに関するブログを書いています。 仕事では工場に協働ロボットの導入や中小企業へのAI/IoT導入のアドバイザーをやっています。 2019年7月にJDLA(一般社団法人 日本デイープラーニング協会)Deep Learning for GENERALに合格しました。 質問は記事一番下にあるコメントかメニュー上部の問い合わせからお願いします。

おすすめ

質問やコメントや励ましの言葉などを残す

名前、メール、サイト欄は任意です。
またメールアドレスは公開されません。