ここまでの説明で、マイコン入力端子にプルアップ抵抗がいかに必要かが分かってもらえたかと思います。
このマイコンに必要不可欠と言ってもいいプルアップ抵抗は、マイコンボードでは簡単に設定できるようになっています。ここからは、マイコンボードにおけるプルアップ抵抗の設定方法について説明します。
図2は、マイコンボードの代表と言ってもいいArduino UNOの代表的な写真です。マイコンとしては、アトメル(Atmel)の「Atmega328シリーズ」が搭載されています。アトメルは2016年にマイクロチップに買収されましたが、現在も製品としてのAtmega328シリーズは供給されているようです。
リスト1はArduinoの入出力端子の中から1本を入力端子として設定する記述です。setupという関数内で入出力設定を行っています。pinMode関数で入出力ピンの設定を行うわけですが、第1引数のbuttonPinで設定を行うピンを指定します。このbuttonPinのピン番号はグローバル変数などで整数値が定義されています。
void setup() { pinMode(buttonPin, INPUT); }
次の第2引数では第1引数で指定した入出力端子について、入力端子として使うか出力ピンとして使うかを指定しています。このリストの場合“INPUT”となっていますので、この端子は入力端子として設定されることになります。
この入力端子に、図1に示した回路図のようにタクトスイッチとプルアップ抵抗を接続すると、指定した入力端子からタクトスイッチが押下されているか否かを電圧のハイとローでマイコン側のプログラムで読み取ることができます。
リスト2はマイコン内部でプルアップ抵抗を接続する設定を行うコードです。第2引数を“INPUT_PULLUP”に変更することでこの設定が可能になります。
void setup() { pinMode(buttonPin, INPUT_PULLUP); // プルアップ抵抗設定 }
図3はマイコンの入力端子にプルアップ抵抗を接続しない回路図になっています。本来ならタクトスイッチが押下されていない場合に入力端子の電位が不定になりますが、リスト2を実行しておくことでマイコン内部にプルアップ抵抗が設定されるため、マイコン外部にプルアップ抵抗を接続する必要がなくなるのです。
今回はプルアップ抵抗について語ってみました。いかがでしたでしょうか。抵抗1本の話でしたが、デジタル入力を安定させるために重要な役割を果たします。たかが抵抗1本されど抵抗1本。次回も楽しんでいただけるコンテンツを用意しております。お楽しみに。
Copyright © ITmedia, Inc. All Rights Reserved.