電子工作84 – 振動センサ

Electronics Project 84 – Vibration Indicator

 

概要    Introduction

   夏場に扇風機をリモコンで遠隔操作している時、3段階ある速度のどれで回っているかを暗闇の中で知る必要に迫られてこの装置に作成した。小さい基板に載せた振動スイッチを扇風機の風の出る面に吊して風量による揺れ具合の変化をLEDの点滅状態から判断しようと試みた。結論から言うと実験不足で旨く動作させるまでに至らなかった。振動スイッチを揺らすとLEDが対応して点滅するので、プログラムを変えて後日いろいろな目的に応用出来そう。そこで、この試みをホームページに残すことにした。

 

This simple device can indicate by lighting up an LED that the shake switch is being shaken by some external force or vibration. Initially I wanted to determine the strength of wind flow from an electric fan, but I had to stop the experiment halfway. Anyway, I decided to leave a circuit diagram and its program here considering that the device may be applicable for some future projects by changing program.

 

回路図   Circuit Diagram

下図 (Fig. 1) で、振動スイッチに振動が加わると12F629のGP0(ピン7)から割込信号としてプログラムの中に読み込まれる。そして1回の振動割込みに対して50ms間LEDが点灯するようにプログラムしてある。ここで使われている振動スイッチは方向性がなく、どの方向からの振動にも同じようにスイッチが入り、振動が加わっていない時はOFFの状態を保つ。これは電池の持ちにプラスに働く。さらに、プログラムで割込を使ったこともあって、実際振動が加わってはいない時、つまり待機時の電池消費量は0.1から0.2uAと大変小さい。LEDが瞬間的に点灯する時で1.2mA程度。ボタン電池(CR-2032(225mAh)、CR-2025(160mAh))で充分持つはず。

 

The circuit (Fig. 1) is simple. An ON/OFF signal from Shake switch is read from GP0 (Pin7) of 12F629 as an interrupt signal into program, which then lights up the LED for a period of 50ms. Shake switch is non-directional (responding to vibration from any direction) and stays OFF (no connection) when it is not being shaken. This feature helps reduce the power consumption. In fact, the required power when the system is waiting is merely 0.1 - 0.2uA. When the LED is lighting up for 50ms, the power consumption is about 1.2mA. Accordingly, the use of a Lithium button cell (CR-2032 (225mAh) or CR-2025 (160mAh)) is sufficiently enough to drive the device.

 

(Fig.1)

 

(Photo 1) ボード上に組上げた回路で実験、右下の黒いチューブ状のものが振動スイッチ。

Device assembled on breadboard: the black cylindrical item shown in the lower right part is Shake switch.

 


結果とコメント

1)    振動SWを揺するとLEDが点滅する。プログラムを変えれば別の目的に使えそう。

2)    割込みを使ったこと、この振動SWの特性(通常は非導通)から消費電流が極端に低いのが良い。

3)    振動SWは無方向性と言うが、何か必ずしもそうでもないみたい。ゆっくりした動きには反応せず、ショックのような速い動きには良く反応する。

4)    費用は全部で500円ほど。


Results and Comments

1)      This device, which consumes little power or works with a button cell, can be used for some other applications by changing program.

2)      Shake switch (SW-18010P) well responds to a quick movement like a shock but less likely with a slow movement.

3)     The total cost is approximately 500 Yen.

 

プログラム       

   この簡単なプログラムでは、GP0(Pin7)に入ってくるH/L-パルス変化を割込み信号としてプログラムに取り込み、割込み1回に対しLEDを50ms間点灯させる。したがって、振動スイッチが振動を検知して導通を繰り返した回数だけ点灯を繰返す。@sleepコマンドの使用で電流消費が大変少ないのもこのプログラムの特徴。

 

Program

In the program, an ON/OFF signal from Shake switch causes an interrupt to the program, executing a routine to light up an LED for 50ms. When there is no ON/OFF signal, the program simply waits for an arrival of the next signal. Because assembler command @sleep is used, the system falls into deep sleep during the waiting period that contributes to further lowering the power consumption.

'****************************************************************

'FanWindflowSensor.bas  2015.7.29                                   

'Using 12F629 and PicBasic Pro V2.50A

'********Pin connection********

'Pin 1: Vdd (3V) coin battery

'Pin 8: Vss (GND)

'Pin 7: GPIO.0 - Vibration SW

'Pin 6: GPIO.1 - LED lamp

'Pin 4: GPIO.3 - Reset

'********Program************

VibrationSW var GPIO.0

LEDlamp var GPIO.1

TRISIO=%001001

CMCON=7  'Comparator disabled

WPU=%000001 'Weak Pull-up for GPIO.0

OPTION_REG.7=0  'Weak Pull-up enabled

IOC.0=1  'Detect input at GPIO.0

INTCON.3=1  'Enable port input-level change interrupt

SleepLoop:

LEDlamp=0  '?

INTCON.0=0  'Clear GPIF

@Sleep  'Assembler command

INTCON.0=0  'Clear GPIF

'*******Routine to turn on LED *******

High LEDlamp

Pause 50  '50 ms

Low LEDlamp

Goto SleepLoop

'*****End of Program******

'Note:

'melabs U2 Programmer's configurations for 12F629:

'Oscillator - INTOSC, WDTE - Distable, PWRTE - Disable, MCLR - Reset, BODEN - Disable, CD - Disable, CDP - Disable

'**************************************************

 

Menu Pageへ戻る

Topへ戻る