スイッチの状態の監視(デジタル読み取りシリアル)–Arduinoの基本

問題を排除するために楽器を試してください





このArduinoの基本では、外部プッシュボタンのオンまたはオフ状態をArduino内で読み取ったり監視したりできるコードを実装する方法について説明します。

デジタル読み取りシリアル

ここでは、例を通して、USB経由でArduinoとPC間でシリアル通信を実行することによってスイッチの状態を監視する方法を学びます。



Arduinoボードに加えて、次の基本的なアイテムが必要になります。

ハードウェア

モーメンタリスイッチ、ボタン、またはプッシュオンスイッチ



10k、1/4ワットオーム抵抗器

ブレッドボード
フックアップまたはジャンパーワイヤーリンク。

回路動作

操作は、次の手順で実行できます。

3本のジャンパーワイヤーを取り、Arduinoボードに接続します.2本のワイヤー(赤と黒)は、ブレッドボードの側面にある2つの長い垂直の列に接続され、ボードの供給コードになります。ボードに5VDCが必要です。

3番目のワイヤは、デジタルピン2をプッシュオンスイッチのリード線の1つに接続するために使用されます。

ボタンのこの特定のリード線は、プルダウン10k抵抗で負の電源レールまたはグランドにもリンクしています。スイッチのもう一方のフリーリードは、5ボルト電源のプラスにリンクされています。

上記の接続が行われると、スイッチは、プッシュが与えられると、回路内でトグルまたはデュアルアクションを実行します。

通常、スイッチが切断位置にあるとき、その2つのリード線は絶縁されたままであるため、プルダウン抵抗を介してグランドにリンクされているピンはLOWまたは論理0レベルになります。

押された状況では、スイッチは2つのリード線の瞬間的なブリッジングを実行し、リード線が+ 5ボルトにさらされ、HIGHまたはロジック1レベルになります。

デジタルI / Oピン配列を他のものから分離すると、LEDが動かなくなり、不安定な点滅が発生する可能性があります。これは、入力が何にもレンダリングされない、または「ハンギング」位置に保持されるという事実によるものです-つまり、高または低(+ 5Vまたは0V)のいずれの明確なロジックにも指定されていないため、スイッチ付きのプルダウン抵抗。

回路図

コードを理解する

以下のプログラムでは、セットアップ機能内で毎秒9600ビットのデータの速度でシリアル通信を開始します。これは、Arduinoボードと接続されたコンピューターの間で開始されます:Serial.begin(9600)

次のステップでは、デジタルピン2をトリガーします。これは、プッシュスイッチを入力として出力を担当するピンです。pinMode(2、INPUT)これで「セットアップ」が完了し、コードのメインループに入ります。 。

ここで押しボタンを押すと、5ボルトが回路を通過できるようになりますが、入力ピンは、押されていない状態のときに10キロオームの抵抗を介してグランドにリンクされます。

上記はデジタル入力と呼ばれるもので、スイッチがオン状態(Arduinoによって「1」またはLOGIC HIGHとして受け入れられる)またはオフ状態(視覚化される)のいずれかでのみ特定の状態になり得る状態を指しますArduinoによって「0」またはLOGICLOWとして)、間に他の未定義の状態はありません。

プログラムのメインループで実行する必要のある基本的なアクションは、プッシュボタンを介して送信された情報を所定の位置に保持するための変数を適用することです。

信号が「1」または「0」のいずれかの形式である場合に前述したように、ここではintデータ型を使用します。この変数にsensorValueという名前を付け、デジタルピン2で読み取られているすべてのものに対応するように修正できます。これらはすべて、1行のコードで実現可能になります。

int sensorValue = digitalRead(2)Arduinoが入力を読み取ったら、それを10進値の形式でコンピューターに出力します。

これは、コードの最後の行にあるコマンドSerial.println()を使用して実装できます:Serial.println(sensorValue)

この後、シリアルモニターがArduinoドメインで開始されると、プッシュボタンが開いた位置にあるときに「0」のチェーンが表示され、ボタンが閉じた状態になっている場合は「1」のチェーンが表示されます。

/*
DigitalReadSerial
Reads a digital input on pin 2, prints the result to the serial monitor
This example code is in the public domain.
*/
// digital pin 2 has a pushbutton attached to it. Give it a name:
int pushButton = 2

// the setup routine runs once when you press reset:
void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600)
// make the pushbutton's pin an input:
pinMode(pushButton, INPUT)
}
// the loop routine runs over and over again forever:
void loop() {
// read the input pin:
int buttonState = digitalRead(pushButton)
// print out the state of the button:
Serial.println(buttonState)
delay(1) // delay in between reads for stability
}




前:タイマー回路を備えたカスタマイズされた水流コントローラー 次へ:アナログからデジタルへの変換(アナログ読み取りシリアル)– Arduino Basics