注意:すべてのOSOYOO ARDUINO用製品はサードパーティー製品であり、ARDUINOと完全に互換性があります。

認可されたオンライン小売業者:

AMAZON
amzuk

内容

  1. 紹介
  2. 準備
  3. 押しボタンについて
  4. 接続
  5. スケッチのアップロード
  6. プログラムの実行結果
  7. 拡張の例

紹介

このレッスンでは、I/Oポートとボタンを使用してLEDをオン/オフする方法を説明します。ここでの「I/Oポート」とは、INPUTポートとOUTPUTポートを指します。Osoyoo BasicボードのINPUTポートを使用して外部デバイスの出力を読み取ります。ボード自体にLEDがあるため(Pin 13に接続されている)、このLEDを使用してこの実験を行うことができます。

準備

ハードウェア

ソフトウェア

Arduino IDE(バージョン1.6.4以上)

押しボタンについて

押しボタンは、電子デバイスを制御するために使用される一般的なコンポーネントです。回路を接続または切断するスイッチとして通常使用されます。ボタンは、さまざまなサイズと形状がありますが、ここで使用するものは12mmの中程度のサイズのボタンです。

このレッスンで使用する小さなボタンには4つの接続があり、やや混乱することがあります。

実際には、スイッチパッケージの中で、ピンBとCが接続されているように、AとDも接続されているため、電気的には2つの接続しかありません。

接続

スイッチの本体は正方形ですが、ピンはスイッチの反対側から突き出ています。これにより、ピンがブレッドボード上で正しい位置になるのは、スイッチが正しい向きにあるときだけです。

以下の回路を構築してください。

注意

LED回路では、一般的にLEDをオン/オフするためにボタンが直接接続されます。この接続は比較的単純です。しかし、時にはボタンを押さなくてもLEDが自動的に点灯することがあります。これは様々な干渉によって引き起こされます。外部の干渉を避けるために、プルダウン抵抗が使用されます。すなわち、1K-10KΩの抵抗をボタンポートとGNDの間に接続することです。この抵抗は、ボタンスイッチがオフの間、GNDに接続されたままで外部干渉を消費するために使用されます。

スケッチのアップロード

上記の操作が完了したら、USBケーブルを使ってOSOYOO Basicボードをコンピューターに接続してください。緑色の電源LED(PWRとラベルされています)が点灯するはずです。

コードプログラム

このリンクからスケッチをダウンロードするか、以下のコードをArduino IDEウィンドウにコピーしてください。

const int keyPin = 12; //the number of the key pin const int ledPin = 13;//the number of the led pin void setup() { pinMode(keyPin,INPUT);//initialize the key pin as input  pinMode(ledPin,OUTPUT);//initialize the led pin as output } void loop() { //read the state of the key value //and check if the kye is pressed //if it is,the state is HIGH  if(digitalRead(keyPin) ==HIGH ) { digitalWrite(ledPin,HIGH);//press the button to turn on the led } else { digitalWrite(ledPin,LOW);//release the button to turn off the led } }

コンパイルとアップロード

Arduino IDEを開き、OSOYOO Basicボードに対応するボードタイプとポートタイプを選択してください。

IDEに「アップロード」ボタンをクリックしてください。数秒待ち、ボードのRXとTXのLEDが点滅するはずです。アップロードが成功した場合、「アップロードが完了しました」というメッセージがステータスバーに表示されます。

実行結果

アップロードが完了すると数秒後に、ボタンスイッチが押されるとLEDが点灯し、スイッチが離されるとLEDが消灯します。

拡張例

上記の手順が完了した後、この方法でLEDを点灯させたい場合、手をボタンから離すことができず、不便です。通常のようにライトを制御するには、ライトをクリックしてから押し出す方法が必要です。プログラムを改善し、次のコードのプログラムを変更してアップロードすることで、この結果を実現できます。

回路は前述のものと同じです。このリンクからスケッチを取得するか、以下のコードを新しいArduino IDEウィンドウにコピーして、OSOYOO Basic Boardにアップロードしてください。プロジェクトに対応するボードとポートを選択することを忘れないでください!

#define LED 13 // Set D13 as the LED pin #define BUTTON 12 //Set D12 as the button pin //Let's say you have your push button on pin 12 int switchState = 0; // actual read value from pin12 int oldSwitchState = 0; // last read value from pin12 int lightsOn = 0; // is the switch on = 1 or off = 0 void setup() { pinMode(BUTTON, INPUT); // set the push button as input pinMode(LED, OUTPUT); // anything you want to control using a switch e.g. a Led } void loop() { switchState = digitalRead(BUTTON); // read the pushButton State if (switchState != oldSwitchState) // catch change { oldSwitchState = switchState; if (switchState == HIGH) { // toggle lightsOn = !lightsOn; } } if(lightsOn) { digitalWrite(LED, HIGH); // set the LED on } else { digitalWrite(LED, LOW); // set the LED off } }

プログラムがコンパイルされ、アップロードされた後、ボタンをクリックしてLEDを点灯し、その後このボタンを押すと、LEDが消灯するようになります。