Arduino Unoを使用したデジタル読み取りと書き込み

Digital Read and Write Using the Arduino Uno

Arduino UNOは、デジタルピンを使用して実際の世界と対話する機能を提供します。これらのピンを使用して、LED、モーター、リレーなどのデバイスを制御したり、センサー、ボタン、スイッチから入力を読み取ったりできます。このチュートリアルでは、デジタルピンのセットアップ、読み取りおよび書き込み操作を実行し、利用する方法を説明します if プロジェクトにおけるロジックベースの決定の声明。


あなたが必要とするもの

  1. USBケーブル付きArduino UNO
  2. LEDおよび220-OHM抵抗器(出力例用)
  3. プッシュボタンと10K-OHM抵抗器(入力例用)
  4. ブレッドボードとジャンパーワイヤ
  5. Arduino IDEがインストールされたコンピューター

ステップ1:デジタルピンのセットアップ

デジタルピンモード

Arduino Unoには14のデジタルピン(D0-D13)があります。これらのピンは次のように構成できます。

  • 入力: センサーまたはスイッチから信号を読み取ります。
  • 出力: LED、モーター、またはその他のアクチュエーターを制御する。

を使用します pinMode() のピンのモードを設定する機能 setup() 関数:

pinMode(pinNumber, mode);
  • pinNumber:構成するピン(例:2、3など)。
  • mode: どちらか INPUT, INPUT_PULLUP、 または OUTPUT.

ステップ2:デジタルピンへの書き込み

書くことでデバイスを制御できます HIGH または LOW を使用して出力ピンに digitalWrite() 関数:

digitalWrite(pinNumber, value);
  • value: どちらか HIGH (5V)または LOW (0V)。

例:LEDを点滅させます

ピン13に接続されたLEDを点滅する方法は次のとおりです。

#define ledPin 13 // LED connected to pin 13

void setup() {
  pinMode(ledPin, OUTPUT); // Set pin 13 as an output
}

void loop() {
  digitalWrite(ledPin, HIGH); // Turn the LED on
  delay(1000);               // Wait for 1 second
  digitalWrite(ledPin, LOW);  // Turn the LED off
  delay(1000);               // Wait for 1 second
}

ステップ3:デジタルピンからの読み取り

ピンの状態を読むには、を使用します digitalRead() 関数:

int state = digitalRead(pinNumber);
  • state:どちらかになります HIGH または LOW 入力信号に基づいています。

例:ボタンを押してください

プッシュボタンをプルダウン抵抗(10K-OHM)でピン2に接続します。押すと、ボタンが送信されます HIGH 信号。

#define buttonPin 2 // Button connected to pin 2
#define ledPin 13   // LED connected to pin 13

void setup() {
  pinMode(buttonPin, INPUT); // Set pin 2 as an input
  pinMode(ledPin, OUTPUT);   // Set pin 13 as an output
}

void loop() {
  int buttonState = digitalRead(buttonPin); // Read the button state

  if (buttonState == HIGH) {
    digitalWrite(ledPin, HIGH); // Turn on the LED if the button is pressed
  } else {
    digitalWrite(ledPin, LOW); // Turn off the LED otherwise
  }
}

ステップ4:使用 if デジタルピンを使用したステートメント

if ステートメントを使用すると、プログラムに条件付きロジックを作成できます。デジタル読み取りと書き込みを組み合わせて、入力に基づいてアクションを実行します。

例:[ボタン]を押すとLEDを切り替えます

このスケッチは、ボタンが押されるたびにLED状態を切り替えます。

#define buttonPin 2 // Button connected to pin 2
#define ledPin 13   // LED connected to pin 13

bool ledState = false; // Current state of the LED
bool lastButtonState = LOW; // Previous state of the button

void setup() {
  pinMode(buttonPin, INPUT);
  pinMode(ledPin, OUTPUT);
}

void loop() {
  bool currentButtonState = digitalRead(buttonPin);

  if (currentButtonState == HIGH && lastButtonState == LOW) {
    ledState = !ledState; // Toggle the LED state
    digitalWrite(ledPin, ledState ? HIGH : LOW);
  }

  lastButtonState = currentButtonState; // Update the button state
  delay(50); // Debounce delay
}

ステップ5:ロジック操作による高度な使用

複数を使用できます if 声明、 else if、および論理演算子(&&, ||、など)より複雑な動作を作成します。

例:マルチ入力制御

2つのボタンの状態に基づいてLEDを制御します。

#define button1 2 // Button 1 connected to pin 2
#define button2 3 // Button 2 connected to pin 3
#define ledPin 13 // LED connected to pin 13

void setup() {
  pinMode(button1, INPUT);
  pinMode(button2, INPUT);
  pinMode(ledPin, OUTPUT);
}

void loop() {
  bool button1State = digitalRead(button1);
  bool button2State = digitalRead(button2);

  if (button1State == HIGH && button2State == HIGH) {
    digitalWrite(ledPin, HIGH); // Turn on LED if both buttons are pressed
  } else {
    digitalWrite(ledPin, LOW); // Turn off LED otherwise
  }
}

トラブルシューティング

  • LEDは明るくありません:

    • LEDが正しく接続されていることを確認します(長い脚は正のピンに)。
    • 損傷を避けるために、220-OHM抵抗器を使用します。
  • ボタンが応答しません:

    • プルダウンまたはプルアップ抵抗器で適切な配線を確認してください。
    • ピンモードが設定されていることを確認します INPUT または INPUT_PULLUP.
  • 問題の問題:

    • 小さな遅延を使用するか、ソフトウェアデバウンスメカニズムを実装して、機械ボタンからの信号ノイズを処理します。

結論

Arduino UNOでデジタル読み取りおよび書き込み操作を実行する方法、PINモードの構成、および使用方法を学びました if 条件付きロジックのステートメント。これらの基本的なスキルにより、さまざまなハードウェアコンポーネントを制御し、インタラクティブで応答性の高いプロジェクトを作成できます。より複雑な動作のために複数の入力と出力を組み合わせてさらに実験してください!

コメントを残す

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.