INPUT と INPUT_PULLUP
浮いたピンが誤った値を示す理由と、プルアップによる解決方法を学びます
「INPUT と INPUT_PULLUP」はCoddyKit上の無料Arduino & IoT Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはArduino & IoT Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Arduino & IoT Academyコースには全4レッスンが含まれています。
ピンは入力もできる
これまではピンから信号を出力していました。次はピンを入力として使い、ボタンを検知してボードを反応させます。
ピンをINPUTに設定する
ボタンを読み取るには、まずピンが信号を受け取るように設定します。setup()内でモードをINPUTに設定します。
void setup() {
pinMode(2, INPUT);
}浮いたピンは誤った値を返す
何にも接続されていないINPUTピンはfloatingと呼ばれます。周囲のノイズを拾い、何もしなくてもHIGHとLOWの間で値が変動します。
浮いた状態が問題になる理由
浮いたピンは、ボタンが押されていないのに押されたと判断するなど、ランダムで誤った読み取り値を返します。⚡
プル抵抗で解決する
プル抵抗は、ピンを既知の電圧にゆるやかに接続します。これにより、ボタンが状態を変えるまで、安定した初期値が得られます。
プルアップとプルダウン
プルアップは初期状態でピンをHIGHに保持し、プルダウンはLOWに保持します。Arduinoには便利なプルアップがチップ内部に組み込まれています。
INPUT_PULLUPを使う
外付け抵抗は不要です。モードをINPUT_PULLUPに設定すると、ボードが内蔵プルアップを自動的に有効にします。
void setup() {
pinMode(2, INPUT_PULLUP);
}論理が反転する
INPUT_PULLUPでは、ボタンを離しているときにピンはHIGHを読み取り、押しているときにLOWを読み取ります。意図的に論理が反転しています。
グラウンドに接続する
内蔵プルアップがピンをHIGHに保持するため、ボタンはピンとGNDの間に接続します。ボタンを押すと、ピンがLOWに引き下げられます。
配線もバグも減らせる
INPUT_PULLUPを使うと、ブレッドボード上の抵抗が1本減り、ピンが浮くこともありません。初心者がボタンを使う場合は、ほとんどの場合これが最も簡単な選択です。
適切なモードを選ぶ
回路側にプル抵抗がすでにある場合だけ、通常のINPUTを使います。それ以外では、INPUT_PULLUPを使うと安全かつ簡単です。
確認問題
何も操作していないボタンで、INPUT_PULLUPがどのように動作するか考えてみましょう。
まとめ
INPUTピンは浮いた状態になると誤った値を返すこと、そしてINPUT_PULLUPで解決できることを学びました。ボタンを離すとHIGH、押すとLOWです。次は実際にその値を読み取ります。👍
AI チューターと学ぶ C++ — 無料
ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。
- コース
- 30
- レッスン
- 120
よくある質問
「INPUT と INPUT_PULLUP」レッスンは無料ですか?
はい。「INPUT と INPUT_PULLUP」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Arduino & IoT Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Arduino & IoT Academyコースには全4レッスンが含まれています。
「INPUT と INPUT_PULLUP」で何を学びますか?
浮いたピンが誤った値を示す理由と、プルアップによる解決方法を学びます ブラウザで直接実行するハンズオンコードでArduino & IoT Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Arduino & IoT Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのArduino & IoT Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「INPUT と INPUT_PULLUP」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このArduino & IoT Academyレッスンでコードを書いて実行できますか?
はい。すべてのArduino & IoT Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- INPUT と INPUT_PULLUP
- ボタンの状態を読み取る
- if/else: ボタンに LED を連動させる
- ブレッドボードにボタンを配線する