Arduino-接続スイッチ
プッシュボタンまたはスイッチは、回路内の2つの開いた端子を接続します。この例では、ピン8に接続されている押しボタンスイッチを押すと、ピン2のLEDがオンになります。
プルダウン抵抗
プルダウン抵抗は、外部デバイスが切断されているか、ハイインピーダンスの場合に、Arduinoへの入力が期待されるロジックレベルに安定するように電子ロジック回路で使用されます。入力ピンには何も接続されていないため、論理ゼロであるとは限りません。プルダウン抵抗は、グランドとデバイスの適切なピンの間に接続されています。
次の図に、デジタル回路のプルダウン抵抗の例を示します。押しボタンスイッチは、供給電圧とマイクロコントローラピンの間に接続されています。このような回路では、スイッチが閉じているとき、マイクロコントローラーの入力は論理的に高い値になりますが、スイッチが開いているとき、プルダウン抵抗は入力電圧をグランド(論理的なゼロ値)に引き下げ、入力での未定義の状態。
プルダウン抵抗は、論理回路のインピーダンスよりも大きな抵抗を持っている必要があります。そうしないと、電圧が引き下げられすぎて、スイッチの位置に関係なく、ピンの入力電圧が一定の論理ロー値のままになります。
必要なコンポーネント
次のコンポーネントが必要になります-
- 1×ArduinoUNOボード
- 1×330オームの抵抗器
- 1×4.7Kオーム抵抗(プルダウン)
- 1×LED
手順
回路図に従って、下の画像に示すように接続します。
スケッチ
コンピューターでArduinoIDEソフトウェアを開きます。Arduino言語でコーディングすると、回路が制御されます。[新規]をクリックして、新しいスケッチファイルを開きます。
Arduinoコード
// constants won't change. They're used here to
// set pin numbers:
const int buttonPin = 8; // the number of the pushbutton pin
const int ledPin = 2; // the number of the LED pin
// variables will change:
int buttonState = 0; // variable for reading the pushbutton status
void setup() {
// initialize the LED pin as an output:
pinMode(ledPin, OUTPUT);
// initialize the pushbutton pin as an input:
pinMode(buttonPin, INPUT);
}
void loop() {
// read the state of the pushbutton value:
buttonState = digitalRead(buttonPin);
// check if the pushbutton is pressed.
// if it is, the buttonState is HIGH:
if (buttonState == HIGH) {
// turn LED on:
digitalWrite(ledPin, HIGH);
} else {
// turn LED off:
digitalWrite(ledPin, LOW);
}
}
注意すべきコード
スイッチが開いているとき(押しボタンが押されていないとき)、押しボタンの2つの端子間に接続がないため、ピンは(プルダウン抵抗を介して)グランドに接続され、LOWを読み取ります。スイッチが閉じている(押しボタンが押されている)と、2つの端子が接続され、ピンが5ボルトに接続されるため、HIGHが読み取られます。
結果
LEDは押しボタンを押すと点灯し、離すと消灯します。