Arduino

チルトスイッチとリードスイッチ

スイッチと言ったらどういったものを思い浮かべるでしょうか。一般的には、部屋の電気のスイッチであったり、テレビのスイッチなど、ボタンがついてそれを押すような構造をした部品を思い浮かべるかと思います。しかし、世の中には色々なスイッチがあり、例えば、転倒したらそれを検知するスイッチや磁石を近づけることにより通電して検知するスイッチなどあります。

今回は転倒を検知するチルトスイッチと磁石に反応して通電するリードスイッチについてご紹介します。

チルトスイッチ

チルトスイッチは内部に金属製のボールがあり、そのボールが下部の端子と接触しています。物体が転倒や傾斜すると金属製のボールと下部の端子が非接触となり、導通しなくなります。このように接触しているかどうかをスイッチとして利用しています。

ストーブなど火災が発生する危険性があるものにチルトスイッチは使われています。

作成した回路

今回はフレッドボードを傾けたら、LEDが点灯し元に戻したら消灯するという回路を作成しました。以下をご覧ください。

使用した装置及び部品は下表のとおりとなります。

Arduino小型コンピュータ搭載のマイコン
ブレッドボード抵抗・ジャンパー線などを使って回路を作る基板
抵抗10kΩ電圧を下げる端子
抵抗512Ω電圧を下げる端子
LED順方向に電圧を加えると発光する半導体
ジャンパー線電気を中継する線
チルトスイッチ転倒すると通電しなくなるスイッチ

実際の配線は下図をご参考ください。

プログラムコード

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

const int LED = 13;
const int SW = 12;

int sw_status = -1;
int value;
int old_value = 1;

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

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

 value = digitalRead(SW);

 if(old_value == HIGH && value == LOW)
 {
  sw_status = sw_status * -1;
  delay(100);
 }
 else
 {
  //処理なし
 }
 
 old_value = value;

 if(sw_status > 0)
 {
  digitalWrite(LED,HIGH);
  delay(100);
 }
 else
 {
  digitalWrite(LED,LOW);
  delay(100);
 }
}

実行結果

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

リードスイッチ

リードスイッチは磁気を検知して動作するスイッチです。リードスイッチ内部には離れた2枚の金属板があり、磁石を近づけることによりその金属板が接触して通電します。

ガソリンのような危険物のカサを調べたり、車輪に取り付けて回転数を求めることによって移動距離を算出しています。

作成した回路

ここでは磁石を近づけたらLEDが点灯し、もう一度近づけたら消灯する回路を作成しました。回路は以下の図をご覧ください。

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

Arduino小型コンピュータ搭載のマイコン
ブレッドボード抵抗・ジャンパー線などを使って回路を作る基板
抵抗10kΩ電圧を下げる端子
抵抗512Ω電圧を下げる端子
LED順方向に電圧を加えると発光する半導体
ジャンパー線電気を中継する線
リードスイッチ磁石を近づけると通電するスイッチ

実際の配線は下図をご参考ください。

プログラムコード

プログラムコードは以下の通りです。

const int LED = 13;
const int SW = 12;

int sw_status = -1;
int value;
int old_value = 0;

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

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

 value = digitalRead(SW);

 if(old_value == LOW && value == HIGH)
 {
  sw_status = sw_status * -1;
  delay(100);
 }
 else
 {
  //処理なし
 }
 
 old_value = value;

 if(sw_status > 0)
 {
  digitalWrite(LED,HIGH);
  delay(100);
 }
 else
 {
  digitalWrite(LED,LOW);
  delay(100);
 }
}

実行結果

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

まとめ

今回はチルトスイッチとリードスイッチについてご紹介しました。これらはボタンを使ったスイッチとは一線異なる代物ではありますが、ストーブの転倒を検知したり、ガソリンのカサを調べたりと危険な状況下で需要のあるスイッチとなります。

色々な電子工作をする中でどこかで必要になる可能性があるスイッチですので、どんなものなのかを知っておいてもよいと思います。

参考書籍

Arduino電子工作