Posts スイッチの動作確認をしよう
Post
Cancel

スイッチの動作確認をしよう

この記事で使うソースコード

この記事ではスイッチを使い動作確認を行います。 100kinSATには入力用にタクトスイッチが用意されています。 スイッチを押すとLEDが点灯、離すと消灯するプログラムを作成します。

CanSatは競技開始後、自立走行で目標地点へ走行しなくてはなりません。 そのため競技中はスイッチによる入力機能は必要としませんが、実験段階で各モード(状態遷移)を切り替えたり、ロケットや気球に搭載するタイミングで待機状態をオンにしたりするときに役立ちます。

また、パラシュート放出を検出するためのフライトピンも原理的にはスイッチと同様となっています。

sw スイッチのオンオフでLEDを制御

ソースコードの説明


スイッチとLEDのピンの変数をグローバル変数として宣言しています。

1
2
static const uint8_t button = 35; // スイッチと接続しているピン(35番ピン)
static const uint8_t led = 2; // LEDと接続しているピン(2番ピン)

setup関数ではスイッチと接続しているピンを入力(INPUT)、LEDと接続しているピンを出力(OUTPUT)に設定しています。

1
2
3
4
5
void setup() {
  pinMode(button, INPUT); // スイッチを入力モードに設定
  pinMode(led, OUTPUT); // LEDを出力モードに設定
  digitalWrite(led, LOW); // LEDへの出力をLOWにする(消灯)
}

loop関数ではwhile命令を使用してスイッチが押されている間、LEDを点灯する処理を書いています。 whileの外ではLEDへの出力をLOWにして消灯しています。

digitalRead関数でスイッチの状態を知ることができます。 スイッチはプルアップ抵抗を接続しているため、押しているときにLOW、離しているときにHIGHとなります。

1
2
3
4
5
6
7
8
void loop() {

  while (!digitalRead(button)) { // スイッチが押されている間
    digitalWrite(led, HIGH); // LEDへの出力をHIGHにする(点灯)
  }

  digitalWrite(led, LOW); // LEDへの出力をLOWにする(消灯)
}
This post is licensed under CC BY 4.0 by the author.

ファイルの読み書きをしよう

スピーカーを鳴らしてみよう