digitalWrite()
とdigitalRead()
の違いを、キースイッチをArduinoに接続した場合を例にして詳しく説明します。
ArduinoIDEのdigitalWrite()とdigitalRead()の違い
1. digitalWrite()とdigitalRead()の基本的な違い
digitalWrite()
: ピンにHIGH
またはLOW
の電圧を出力します。例えば、LEDを制御する際に使用します。digitalRead()
: ピンの電圧レベルを入力として読み取ります。例えば、ボタンやキースイッチの状態を検出する際に使用します。
2. キースイッチの接続例
- キースイッチの接続方法:
- キースイッチの一方の端子はArduinoのデジタルピンに接続します(例:ピン2)。
- もう一方の端子はGNDに接続します。
- キースイッチが押されると、デジタルピンがGNDに接続され、
LOW
の状態が検出されます。
3. digitalRead()のサンプルコード:キースイッチの状態を読み取る
キースイッチが押されたかどうかを入力として検出するために、digitalRead()
を使用します。
const int switchPin = 2; // キースイッチが接続されたデジタルピン番号
const int ledPin = 13; // LEDが接続されたデジタルピン番号
void setup() {
pinMode(switchPin, INPUT_PULLUP); // キースイッチピンを入力モードに設定し、内部プルアップを有効にする
pinMode(ledPin, OUTPUT); // LEDピンを出力モードに設定
}
void loop() {
int switchState = digitalRead(switchPin); // キースイッチの状態を読み取る
if (switchState == LOW) { // スイッチが押されたとき(GNDに接続された状態)
digitalWrite(ledPin, HIGH); // LEDを点灯
} else {
digitalWrite(ledPin, LOW); // LEDを消灯
}
}
説明
digitalRead()
を使って、キースイッチの状態を検出します。キースイッチが押されるとピンがGNDに接続されるため、LOW
が読み取れます。押されている場合はLEDを点灯し、押されていない場合はLEDを消灯します。- プルアップ抵抗:
INPUT_PULLUP
を使うことで、キースイッチが押されていない状態でピンがHIGH
に保持されます。外部のプルアップ抵抗が不要になります。
4. digitalWrite()のサンプルコード:キースイッチを使って信号を出力する
digitalWrite()
を使用して、キースイッチが押された際に、外部デバイス(ここではLED)に信号を出力します。
const int switchPin = 2; // キースイッチが接続されたデジタルピン番号
const int outputPin = 13; // 外部デバイス(例: LED)が接続されたデジタルピン番号
void setup() {
pinMode(switchPin, INPUT_PULLUP); // キースイッチピンを入力モードに設定し、内部プルアップを有効にする
pinMode(outputPin, OUTPUT); // 外部デバイス用ピンを出力モードに設定
}
void loop() {
int switchState = digitalRead(switchPin); // キースイッチの状態を読み取る
if (switchState == LOW) { // スイッチが押された場合
digitalWrite(outputPin, HIGH); // 外部デバイス(LED)に信号を送る
} else {
digitalWrite(outputPin, LOW); // 外部デバイスを停止
}
}
説明
digitalWrite()
は、キースイッチが押されたときに外部デバイス(LED)に対して信号を出力します。HIGH
でLEDが点灯し、LOW
でLEDが消灯します。
5. digitalWrite()とdigitalRead()の使い分け
digitalRead()
- 役割: ピンに入力される信号(キースイッチなどの外部入力デバイスの状態)を読み取る。
- 使用シチュエーション: ボタンやキースイッチ、センサーなどの状態を検出する場面で使用されます。
digitalWrite()
- 役割: ピンに信号を出力して、LEDやモーター、リレーなどの外部デバイスを制御する。
- 使用シチュエーション: 外部デバイスをON/OFFする場合や、キースイッチを押した際に他のデバイスを動作させたい場合に使用します。
6. まとめ:キースイッチ接続時のdigitalWrite()とdigitalRead()の使い方の違い
digitalRead()
: キースイッチの状態を検出するために使います。キースイッチが押されたかどうかを知るために、LOW
またはHIGH
の状態を読み取ります。digitalWrite()
: 外部デバイスに信号を出力するために使います。キースイッチが押された際にLEDを点灯させる、モーターを動かすなどのアクションを行います。
これら2つの関数は異なる目的で使用されますが、組み合わせて使うことで、キースイッチをトリガーとして外部デバイスを制御するような複雑な回路を簡単に構築できます。
コメント