たかが抵抗1本されど抵抗1本、プルアップ抵抗の役割とは今岡通博の俺流!組み込み用語解説(3)(2/2 ページ)

» 2024年07月18日 07時00分 公開
[今岡通博MONOist]
前のページへ 1|2       

Arduinoの入力端子にプルアップ抵抗を設定する

 ここまでの説明で、マイコン入力端子にプルアップ抵抗がいかに必要かが分かってもらえたかと思います。

 このマイコンに必要不可欠と言ってもいいプルアップ抵抗は、マイコンボードでは簡単に設定できるようになっています。ここからは、マイコンボードにおけるプルアップ抵抗の設定方法について説明します。

 図2は、マイコンボードの代表と言ってもいいArduino UNOの代表的な写真です。マイコンとしては、アトメル(Atmel)の「Atmega328シリーズ」が搭載されています。アトメルは2016年にマイクロチップに買収されましたが、現在も製品としてのAtmega328シリーズは供給されているようです。

図2 図2 「Arduino UNO」の外観 出所:Wikipediaより、Mister rf, CC BY-SA 2.0、ウィキメディア・コモンズ経由で

 リスト1はArduinoの入出力端子の中から1本を入力端子として設定する記述です。setupという関数内で入出力設定を行っています。pinMode関数で入出力ピンの設定を行うわけですが、第1引数のbuttonPinで設定を行うピンを指定します。このbuttonPinのピン番号はグローバル変数などで整数値が定義されています。

void setup() { 
  pinMode(buttonPin, INPUT); 
}
リスト1 Arduinoの入出力端子の中から1本を入力端子として設定する記述

 次の第2引数では第1引数で指定した入出力端子について、入力端子として使うか出力ピンとして使うかを指定しています。このリストの場合“INPUT”となっていますので、この端子は入力端子として設定されることになります。

 この入力端子に、図1に示した回路図のようにタクトスイッチとプルアップ抵抗を接続すると、指定した入力端子からタクトスイッチが押下されているか否かを電圧のハイとローでマイコン側のプログラムで読み取ることができます。

 リスト2はマイコン内部でプルアップ抵抗を接続する設定を行うコードです。第2引数を“INPUT_PULLUP”に変更することでこの設定が可能になります。

void setup() { 
  pinMode(buttonPin, INPUT_PULLUP); // プルアップ抵抗設定
}
リスト2 

 図3はマイコンの入力端子にプルアップ抵抗を接続しない回路図になっています。本来ならタクトスイッチが押下されていない場合に入力端子の電位が不定になりますが、リスト2を実行しておくことでマイコン内部にプルアップ抵抗が設定されるため、マイコン外部にプルアップ抵抗を接続する必要がなくなるのです。

図3 図3 Arduinoでプルアップ抵抗を設定済みなのでプルアップ抵抗を外付けする必要がない

おわりに

 今回はプルアップ抵抗について語ってみました。いかがでしたでしょうか。抵抗1本の話でしたが、デジタル入力を安定させるために重要な役割を果たします。たかが抵抗1本されど抵抗1本。次回も楽しんでいただけるコンテンツを用意しております。お楽しみに。

⇒MONOist編集部へのご意見はこちらまで

前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.