質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.36%
Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

2000閲覧

RaspberryPiで回路が導通すると0Vになる理由が知りたいです。

goffee555

総合スコア6

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/08/21 09:40

編集2020/08/21 10:09

前提

ボタンを押すとLINEに通知がいく仕組みをRaspberryPiで制作しています。
プログラム自体は問題なく動作するのですが、下記の条件について理解できない部分があります。

###わからないこと
下記の条件、ピンの結線でタクトスイッチが押されていない状態で3.3Vが流れ
タクトスイッチが押された状態だと、0Vになる仕組みがわからないです。

コード

python

1# coding: UTF-8 2import RPi.GPIO as GPIO 3import time 4import requests 5 6GPIO_INPUT = 2 7 8GPIO.setmode(GPIO.BCM) #GPIOへアクセスする番号をBCMの番号で指定 9GPIO.setup(GPIO_INPUT, GPIO.IN) #BCM 2番ピンを入力に設定 10 11def line_notify(): 12 payload = {'message':'\n'+'hogehoge'} 13 headers = {'Authorization': 'Bearer ' + 'アクセストークン' } 14 requests.post('https://notify-api.line.me/api/notify', data=payload, headers=headers)- リスト 15 16try: 17 while True: 18 if GPIO.input(GPIO_INPUT) == GPIO.LOW: 19 line_notify() 20 print('switch') 21 time.sleep(0.1) 22 else: 23 print("runnning") 24 time.sleep(0.1) 25except KeyboardInterrupt: 26 print("stopped") 27 GPIO.cleanup()

ハード構成

イメージ説明
ピンはGPIO2とGDNを使用しています。
LEDは導通確認でつけているだけです。

###回路図
イメージ説明
電子回路についてあまり詳しくないのですが、回路図は上記の通りです。

  • タクトスイッチはA接点です。

(補足のご指摘ありがとうございます。)

補足情報(FW/ツールのバージョンなど)

  • 本体:RaspberryPi3 Model B

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

CHERRY

2020/08/21 09:52 編集

現物の写真ではなく、回路図を質問に追記していただきことは可能でしょうか? もしかして、もっと単純な話で、「プルアップ回路」の動作がわからないということでしょうか?
maisumakun

2020/08/21 09:46

回路図として書いていただけませんか?
1T2R3M4

2020/08/21 09:46

回路図を描いてみてはいかがでしょうか。
episteme

2020/08/21 11:02 編集

pull-up してないけど...いいのかな? ラズパイ内でpull-upされてるなら問題ないか。
guest

回答2

0

ベストアンサー

GPIO2は1.8KΩでプルアップされているので入力端子(高インピーダンス)に繋がっていれば3.3Vで、
0Vにスイッチで繋いだのなら0Vになる。それだけです。

仕組みを説明しろと言われると「電気とは」をイチから説明しなきゃいけないことになるかと思いますが...ちょっとその気力はないなぁ。抵抗による分圧とか高校物理で習ってますか? であればそのへんから話が出来るかも知れません。

あと、電圧は「流れ」ません。「掛かる」あるいは「加える/印加する」ものです。流れるのは電流。

ちゃんと電流を流せるところでない端子にLEDを繋いだりすると動作不安定になったり故障の原因にもなりかねません。大丈夫ですか?


R1がプルアップ抵抗とすれば、この回路図のA点の電圧を求めればいいわけです。電圧は5Vで書いてしまいましたが3.3Vですね。読み替えて下さい。
R2が無限大(スイッチがOFFのとき)、あるいは0Ωのとき(スイッチがONのとき)マイコンの論理回路への入力電圧(A点)はどれだけになりますか、という話。一応マイコンの内部の(いいかげんな)等価回路も入れておきましたが、1.8KΩに対して数百倍とかなので無視していいです。どうしても計算したければしてもいいですけれど。
分圧回路

プルダウンであれば、R1がスイッチになってR2がプルダウン抵抗です。

投稿2020/08/21 10:09

編集2020/08/21 14:05
thkana

総合スコア7703

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

goffee555

2020/08/21 10:55

ご回答いただき感謝します。 追加で質問してもよろしいでしょうか? https://novicengineering.com/%E3%83%97%E3%83%AB%E3%82%A2%E3%83%83%E3%83%97%E6%8A%B5%E6%8A%97%E3%80%81%E3%83%97%E3%83%AB%E3%83%80%E3%82%A6%E3%83%B3%E6%8A%B5%E6%8A%97/ ↑こちらの資料を参考にプルアップについて調べました。 3.3Vが常時供給されるのは理解できました。 0Vになるのはタクトスイッチが押されると、入力端子内のスイッチがGND側に繋がり3.3Vの電圧が全てプルアップ抵抗側に印加されるから という認識で合っているでしょうか?
episteme

2020/08/21 11:05

単にGPIO端子がGND電圧(つまり0)と同じになるから、でしょ。
goffee555

2020/08/21 23:57

この分野に関してあまり知識がなく、解決に時間を多く費やしていたため非常に助かりました。 thkanaさん、丁寧な説明に加え、回路図まで用意していただきありがとうございました。
guest

0

まあ、スイッチで0V(GND)と導通するから、0Vになるってことですね
GNDとピンを抵抗でつないどいて、3.3Vとピンの間にスイッチを入れれば、押してる間は3.3Vになるようにできますね

投稿2020/08/21 11:02

y_waiwai

総合スコア88026

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

thkana

2020/08/21 13:33

Raspberry PiのGPIO2は1.8kΩの外付けの抵抗でPull upされてるからPull downはちょっとやめておいた方がいい、とかいう話があるようです。
y_waiwai

2020/08/21 14:21

ならその他のピンを使えばいいというはなしに。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問