555タイマのアプリケーションを考える前に

555 contestが2011年3月1日まで開催中だそうだ。折角なので何か作ろうと(主にシャワー中に)考えを膨らませているが、こんなすごい555ベースのロボットを見てしまっては、生半可な発想では駄目だなと感じて、考えがまとまらない。

とにかく、555タイマの復習から始めよう。

Monostable mode

Monostable modeはトリガの入力から一定時間のパルスを出力する(ワンショット)。パルスの長さtはV-7間のRと7-GND間のCの値で決まる。
Wikipediaにも、RとCからのtの求め方は書いてあるが、僕の場合は欲しいtが決まっていて、Rの値を求めたい場合が多い。Cはそれほど種類を持っているわけではないので、Rほど不定ではない。

$t = R * C * log_{e}{3} \; (t:sec, R:\Omega, C:F)$
$R = \frac{t}{C * log_{e}{3}} \approx \frac{t}{C} * 0.91$

Pythonで書くと下のようになる。


Astable mode

Astable modeは一定パルス長の矩形波を出力する。周期tはV-7間のR1、7-2間のR2、2-GND間のCの値で決まる。
この場合も、tとCからR1とR2の値を求めたい場合が多い。但しここでは、出力がHIGHになっている$t_{HIGH}$と出力がLOWになっている$t_{LOW}$を定め、duty比を決定しておく必要がある。

$t_{HIGH} = (R_1 + R_2) * C * log_{e}{2}$
$t_{LOW} = R_2 * C * log_{e}{2}$
$t = t_{HIGH} + t_{LOW}$
$f = \frac{1}{t} \; (f:Hz)$
$duty = \frac{t_{HIGH}}{t}$
$R_1 = \frac{t * (2 * duty - 1)}{C * log_{e}{2}} \approx \frac{t * (2 * duty - 1)}{C} * 1.44$
$R_2 = \frac{t * (1 - duty)}{C * log_{e}{2}} \approx \frac{t * (1 - duty)}{C} * 1.44$

これもPythonで書くと以下のようになる。


まとめ

以上の動作を、回路シミュレータPythonコード、実機で試してみた。


$ python timer555.py 
mode? ([a]stable or [m]onostable)> m
result? ([t]ime or [r]egister]> t
r1? c?> 1000 0.000010
R1: 1000, C: 0.000010
        Time: 0.010986(sec)

$ python timer555.py 
mode? ([a]stable or [m]onostable)> m
result? ([t]ime or [r]egister]> r
time? c?> 0.01 0.000010
Time: 0(sec), C: 0.000010
        R1: 910.239227
$ python timer555.py 
mode? ([a]stable or [m]onostable)> a
result? ([f]req or [r]egister]> f
r1? r2? c?> 10000 100000 0.000000100
R1: 10000, R2: 100000, C: 0.000000
        HIGH:0.007625 + LOW:0.006931 = TOTAL:0.014556(sec)
        Freq: 68.699764(Hz)
        Duty: 0.523810

$ python timer555.py 
mode? ([a]stable or [m]onostable)> a
result? ([f]req or [r]egister]> r
freq? duty? c?> 68.70 0.52 0.000000100
Freq: 68.700000(Hz), Duty: 0.520000, C: 0.000000
        R1: 8399.971126, R2: 100799.653512
        TOTAL: 0.014556(sec)

有効数字とかちゃんとしないといけないのに横着している。

LEDを点滅させたりして遊んでいるが、まだ、どんなアプリケーションを作るか決まっていない。時間も限られてきたし、555らしくミニマムでクールなものが良いと思っている。

シンプルであるほど理解は容易だが、驚かせるのは難しい。見せ方も必要だろう。