Arduino

LED付きボタンを使ってみた

過去にプッシュ式のスイッチとしてタクトスイッチをご紹介しました。タクトスイッチはオン/オフを切り替える用途に使うのであれば、性能的に問題はありません。しかし、スイッチが今どの状態なのかが目でわかるとより良い場面もあります。

そこで今回は、LEDが付いたボタンの使い方についてご紹介します。

LED付きボタンとは

LED付きボタンとはその名の通り、LEDが付いたプッシュ式のボタンです。通電するとボタンの背面にあるLEDが点灯して光ります。

今回は秋月電子でSwitronic lndustrial Corp.社の「ST-12-303FC-G」を購入して使っています。色は緑に限らず、赤色、黄色、紫色など多色あり、1個あたり150円で購入できます。

LED付きボタンには下図のようにスイッチの制御とLEDの制御でピンが分かれています。スイッチの制御はタクトスイッチと同様に4つのピンの内、2つのピンを使いますのでどちらかの組み合わせを使ってください。LEDの制御は電流の向きに注意してください。

LED付きボタンで圧電ブザーを制御する

LED付きボタンを押すと圧電ブザーがなると同時にLEDが光り、再度ボタンを押すと圧電ブザーが鳴りやむと同時にLEDが消灯する回路を作成しました。

作成した回路

作成した回路は下図になります。

使用した装置及び部品は下表をご覧ください。

Arduinoマイコン搭載の小型コンピュータ
ブレッドボード抵抗・ジャンパー線などを使って回路を作る基板
圧電ブザーブザーを鳴らす電子部品
ジャンパー線電気を中継する線
トランジスタ半導体のキャリアの運動によるスイッチング動作と増幅動作をもつ素子
抵抗1kΩ電圧を下げる端子(トランジスタ用)
抵抗200Ω 電圧を下げる端子(LED用)
抵抗512Ω 電圧を下げる端子(プルダウンスイッチ用)
LED付きボタンLEDが付いたボタン

LEDの抵抗値

LEDの順方向電圧はデータシートを見ると20mAに対して最大2.4Vになっています。

そのため、R = (5V – 2.4V) / 20mA = 130Ωとなりますが、手持ちにある抵抗で200Ωが一番近かったので採用しました。

プログラムコード

プログラムコードは以下のようになります。

const int LED_PIN = 4;//LEDのピン
const int BUZZER_PIN = 5;//圧電ブザーのピン
const int SWITCH_PIN = 6;//スイッチのピン

int states = -1;//ボタン押下の状態管理変数
int value = 0;//現在のスイッチの状態
int old_value = 0;//前回のスイッチの状態

void setup() {
  // put your setup code here, to run once:
 pinMode(BUZZER_PIN,OUTPUT);
 pinMode(SWITCH_PIN,INPUT);
 pinMode(LED_PIN,OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:

 value = digitalRead(SWITCH_PIN);

 //スイッチが押下されたかどうか
 if(value == HIGH && old_value == LOW)
 {
  states = states * -1;
 }
 else
 {
  //処理なし
 }
 old_value = value;

 //スイッチが押された場合
 if(states > 0)
 {
  digitalWrite(BUZZER_PIN,HIGH);
  digitalWrite(LED_PIN,HIGH);
 }
 else
 {
  digitalWrite(BUZZER_PIN,LOW);
  digitalWrite(LED_PIN,LOW);  
 }

}

実行結果

実行結果は以下の動画をご覧ください。

まとめ

今回はLED付きボタンの使い方についてご紹介しました。ボタンのLEDの点灯/消灯で今、どういった状態にあるのかを見た目で判断できるのは場面によってはとても有用です。

今後も活躍することはありそうな部品ですので、ぜひ使い方を理解してほしいものです。