ステートマシンを使い、マルチタスク処理を実現する方法を 時計にタイマー機能をつける
しった哲さん。哲二さんから出された例題を、仕事の合間に
見直しながら、1週間を過ごしました。今日は、どんな話が
出てくるのかと思いながら、愛犬ロボと歩いていると、道の
街路樹は、徐々に色を変えているのがわかります。日々の糧
のために、仕事をこなしている自分を、客観的に見る時間が
ないことに気がつきました。啓二さんの部屋に差し込む夕日
が入る時刻が、だんだん早くなっているなと思いつつ、今日
も部屋のノブを回します。
哲 :こんちは。日暮れが早くなってきたよな。 啓二:ああ、そうだな。もう、半年近く、ここに通っているよな。 哲 :もう、そんなになるか。そろそろ、時計を完成させたい。 啓二:半田付けは、残しているが、これまでやってきた内容で、 充分できるさ。 哲 :ひとつ要望があるんだ。タイマー機能をつけるのは、いいが 指定時刻でオン、次の指定時刻でオフという機能だけだ。 指定時刻でオフ、次の指定時刻でオンという処理もほしい。 ソフトウエアならば、ピンをもうひとつ利用して、反転した 値を出力すればいい。でも、ピンに余裕がないから、どうした ものかと思ってさ。 啓二:そんなの、簡単。1個トランジスタをつけてしまえば、解決だ。 哲 :すぐにできそうだな。 啓二:うん。こんな回路で、充分だ。 哲 :トランジスタって、ICがあるので、使わないと思って いたんだが、そうでもないんだ。 啓二:そうだ。トランジスタは、胡椒みたいで、プロが使うと、 思いがけない効果を発揮するのさ。俺たちと同年代か上 のハードウエア技術者は、こんな使い方を簡単にやって のけるが、最近の若いのは、パニックになってしまう。 哲 :そうだよな。この前なんか、こういうAPIがないから 実現できませんと平気でいいやがるの。ないなら、自作 してしまえばいいのにさ。まったく、もう。 啓二:与えられることに慣れ過ぎて、作り出すと能力が衰えて いるか、訓練されていないためだな。そうだ、タイマー 動作中に、LEDが光っているようにもしておくか。 哲 :タイマー動作中には、LEDを点滅する仕様だから不要 だと思うけれどなあ。 啓二:出力が2つあるんだ。どちらが、ON状態になっているか 見分けがつくなら、それでいいが。 哲 :あっと、そういうことか。確かに、どちらが導通かは、 表示してくれないと、不便だな。テプラで、わかるよう に印をつけても、本当にいいかは、わからないものな。 よし、タイマー動作中オンかオフのどちらかを表示する LEDをつけよう。 啓二:じゃあ、こんな回路だな。 LEDを、78kがHを出力したならば、消灯する。 Lを出力したら点灯する。 哲 :これで、動作がわかるわけか。タイマー期間中に点灯 するとON出力で、消灯するとOFF出力か。 こうしてみると、ICに頼らないでも、結構いろいろ と出来るんだなあ。 啓二:そうだなあ。でも、応用できるには、それなりトランジスタ の原理を理解していないと、難しい。やはり、基本は大事だ。 哲 :じゃあ、トランジスタについて、少し教えてくれよ。 啓二:まず、トランジスタには、2種類ある。 バイポーラ型とFET型の2種類だ。 バイポーラ型は、電流入力で出力電流を制御する。 FET型は、電圧入力で出力電流を制御する。 哲 :へえ、動作の仕方で2種類あるんだ。 啓二:動作原理は、FET型の方が簡単なんだ。チャネルという 電流の流れ道の径を、電圧で変化させるんだ。 ホースに水を流して、途中を足で踏んづけて、水の勢いを 変えて遊んだことがあるだろう。あの原理だ。 哲 :FETって、案外簡単な動作なんだな。 啓二:今、理科離れが問題になっているだろう。あれは、子供よりも 先生側の問題なんだ。難しい内容を、身近にある簡単なものに 置き換えて説明できない。高校時代を考えてみろよ。 何故、こいつが先生できるんだっていうのが多いだろう。 哲 :確かになあ。文系で、偏差値も高くなく、遊んでいた奴ばかり が、今、先生で偉そうな顔しているもんな。 啓二:文系、理系は、さておき、難しいことを、難しく説明する ことは、誰にもできる。が、先生は、難しいことを、易しく 説明できるような力量がないと駄目だな。 哲 :そういう、お前は、大学や専門学校では、どうなんだ。 啓二:教え方が、うまいかどうかはわからない。が、毎回、楽しめる 小物を持参してみせている。そうしないと、興味がないから、 すぐに飽きられるなあ。 哲 :やっぱり、米村デンジロウみたいなことをするのか。 啓二:たまに、やることはある。でも、同じことは、絶対しない。 2番煎じなら、やらない方がいいから。 哲 :どんなときに、学生に見せるものが、ひらめくんだ。 啓二:そうだな。散歩しているときか、料理しているときかなあ。 脱線はこのくらいで、バイポーラ型だ。 日本では、4種類に、型番をつけて、売られている。 2SAxxx、2SBxxx、2SCxxx、2SDxxxとね。 哲 :2Sってなんだ。整理、整頓か。 啓二:ああ、半導体の接合面の数だ。Sは、semiconductorで、 半導体の意味。2は、接合面が2個で、3本足になる。 A、BはPNP型、C、DはNPN型だ。 哲 :よく、そんなにスラスラ出てくるなあ。でも、同じ型で 2種類必要になるのは、何故なんだ。 啓二:もっともな疑問だな。AとCは、高周波用、CとDは、 低周波用と分類されている。プロは、そんなことを気に していないで、5種類くらいのトランジスタの使い方を マスターしていて、用途に応じて使い分けている。 哲 :ふーん。そう言えば、中学校の技術で、トランジスタ ラジオを作ったなあ。 啓二:多分、6石スーパーだ。今でも、売られているぞ。 100円ショップの方が安いけれど。 哲 :そうなんだよな。でも、作っているとき、怪しげで、 ちょっと興味が湧いたな。お前みたいに、持続しないで 終わったけど。真空管のアンプならば、作ってみたい。 ポワっと、灯りがついて、いい雰囲気がでるしなあ。 啓二:あれならば、奥さんも、許してくれるってか。 真空管は、メンテナンスが大変なんだ。フィラメント が切れると、交換だしなあ。 哲 :でも、それが、味なのかも知れないし。瑞希に、言って みようかな。買っていいかって。 啓二:キットで、2万くらいかな。それなりの音を出してくれる キットは、7万程度かな。小遣い節約で、1年コースだな。 哲 :2万くらいなら、買うぞ。愛の冬休みの工作だとか、何とか 言って、交渉してみる。 啓二:子供にかこつけたら、自宅で半田付けだぞ。 哲 :そうか。そうだよな。でも、愛を連れてくればいいんだ。 家には、道具がないからとか言えばいい。よし、この手だ。 啓二:そうだ、タイマーの出力で、給餌を作るんだったなあ。 AC100Vを制御しないと駄目だな。 哲 :そうだ。AC100Vをオン、オフするって難しいのか。 啓二:いや、難しくはないよ。リレーを使うか、トライアックを 使ってしまえば、いい。回路は、こんなんだ。 哲 :どうかで見たような回路だな。そうだ、この前やった仕事 で見たぞ。確か、時間が来たら、照明をオンオフする仕様 だった。それで、マイコンをはさむから、シリアルで命令 を送ってくれとか何とか言っていたな。 啓二:それじゃ、話が早い。マイコンの制御出力を、真ん中にある フォトダイアックに入れて、AC100V側のトライアック をオンオフするんだ。一度オンさせると、制御出力に、Lを 与えるまで、AC100Vをコネクタに出し続ける。 哲 :この前の仕事では、業者がキットを使っていたな。知らないか。 啓二:ああ、知っているよ。¥350くらいだったと記憶している。 2個買っても、¥700だな。 哲 :そんな程度か。ならば、キットを使うようにするよ。 啓二:その方がいいな。じゃあ、インターネットで手配しろよ。 秋月電子通商のホームページで、代引き指定で発注する。 哲 :うん、やっておく。 啓二:78kのピン割当てをかくと、こんなんだな。 よし、続きは、また来週だ。