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

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

新規登録して質問してみよう
ただいま回答率
85.47%
Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

Q&A

解決済

3回答

4106閲覧

Arduino 内部プルアップについて

Alyn

総合スコア51

Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

0グッド

0クリップ

投稿2018/10/04 05:34

編集2018/10/04 23:14

内部プルアップには

pinMode(Pin, INPUT_PULLUP);の10KΩ

pinMode(Pin, INPUT); digitalWrite(Pin, HIGH);の20KΩ

の2種類ありますが、この10KΩと20KΩをどう使い分けしているのでしょうか?

また10KΩがよく使われる理由はなんですか?

追記

10KΩ、20KΩについてはこちらに書かれていました。

http://daisuki-arduino.com/arduino-input-output-input_pullup/

http://daisuki-arduino.com/arduino-highlow/

https://garretlab.web.fc2.com/arduino_reference/language/values/constants/constants.html

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

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

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

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

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

ikadzuchi

2018/10/04 15:55

y_waiwaiさんの回答にあるようにこの2つは同一のようで、私も抵抗値が選べるという話は聞いたことが無いのですが、10KΩと20KΩだとするのはどこから得た情報ですか?
guest

回答3

0

ベストアンサー

10KΩ、20KΩについてはこちらに書かれていました。

見ました。

http://daisuki-arduino.com/arduino-input-output-input_pullup/

こちらのページの内容は誤りです。
リンクされた原文ページを見ると分かりますが、10kΩなのはINPUT_PULLUPの内部プルアップ抵抗の値ではなく、INPUTで内部プルアップを使わない際の外付けのプルアップによく使われる値です。

https://garretlab.web.fc2.com/arduino_reference/language/values/constants/constants.html

こちらのページは正しく訳されています。
「10kΩの抵抗がよく用いられる」のは、「INPUTと設定されたピン」であって「INPUT_PULLUPと設定されたピン 」ではありません。

ですので質問への答えとしては、

2種類ありますが、この10KΩと20KΩをどう使い分けしているのでしょうか?

2種類ありません。どちらも同じ抵抗値(そのサイトの言うには20kΩ)です。使い分けることはできません。
(なお実際にはきっちり20kΩではなく大きな幅がありますし多分電源電圧にも依存します)

投稿2018/10/07 18:29

ikadzuchi

総合スコア3047

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

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

pepperleaf

2018/10/08 01:28

更新日時を見ると、最初の訳文は、原文より、一年以上前みたいです。どこが更新されたかは分かりませんが。
Alyn

2018/10/08 01:48

書き方が違うだけで、やってる中身は同じ内部プルアップ抵抗なんですね。 ありがとうございました!
guest

0

ATmega328PのデータシートではI/O Pin Pull-up Resistor 20~50kΩと記載されています。
その他のチップでは、違った値になります。
http://idle-spark.blogspot.com/2015/04/arduino-avr-328p-internal-pull-up.html
上記サイトで実際に測定した値(30.9kΩ)が記載してありますが、チップごとのばらつきが
も考慮する必要があります。

正確な値が必要であれば、測定するしかありません。

投稿2018/10/07 00:46

mappy

総合スコア65

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

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

Alyn

2018/10/07 11:14

10Kと20Kどういう違いなのですか? 何故抵抗値が違うのでしょうか?
mappy

2018/10/07 11:32

構成する回路の電圧等により抵抗値を選定します。 プルアップ抵抗が低すぎる場合に接点を閉じたときにショート状態に近づき 大電流により破損する可能性があります。 プルアップ抵抗が大きすぎる場合は、入力がHighにならない立ち上がりが鈍る等の影響が出ます。
guest

0

pinMode 関数のソースを見てみましょう
pinMode()

これを見るとわかりますが、
pinMode(Pin, INPUT_PULLUP);
は、
pinMode(Pin, INPUT); digitalWrite(Pin, HIGH);
と同じことをしていることがわかります

ということで、正解は、
プルアップのモードは一つだけで、双方同じことをしている、ということです。

んで、プルアップ有効にするためには、
pinMode(Pin, INPUT_PULLUP);
のほうが命令一発で済む、という利点がありますね

投稿2018/10/04 06:29

y_waiwai

総合スコア87784

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

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

Alyn

2018/10/04 14:38

使い分けたりはしないのですか?
y_waiwai

2018/10/04 15:01

使い分けしたいならすればよろしい。無駄なだけだけど
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問