■追記(2016/01/27)■
ついに電池切れました。前回充電したのは12/22だったので、35日ほど動いたことになります。プログラムを改善したのはこの1/10のことだったので、かなり改造が効いている様子です。ついでに、明暗の制御を少し改良しました。■続き■
前回の「Energiaでお風呂時計」、動くことは動くんですが・・・「無印の化粧品ボックス+ジップロック+ブレッドボード」という見た目があまりにも悲惨なので「100均の瓶+ユニバーサルボード」ですっきり仕上げてみました。最初、透明な蓋の弁当箱を探したんですが、吉祥寺の100均では見つからず。とりあえず「防水」「透明」「適当なサイズ」というところで食品保存用と思われるプラスチック+金属蓋の容器にしました。
蓋が金属だと影が出来てしまって動作が安定しないのではないか?という懸念はありましたが、いまいち透明度の低いジップロックのロスが想像以上に大きかったようで、「明暗判別」の値を2倍近くにしないと消灯してくれない状態でした。
ユニバーサル基板は、部品沼から出てきた20年物のSUNHAYATO製、150円の値札が貼ってありました。さすがにフラックスが劣化しているのか、ハンダの乗りが悪い悪い。
ボードのレイアウトは下からLED、センサー、CPUです。LEDが割と重いので、安定させるために&蓋の影にならず見やすい位置、センサーは蓋の影にならない場所に上下逆さまに、残ったところがCPU。
明暗センサーはブレイクアウトボードにヘッダピンをがっつりとハンダ付けしてしまったのでIC用の背の低いソケットには使えず、かといってヘッダソケットを使うとLEDよりも出っ張ってしまうのでアウト。ということでユニバーサルボードに直接ハンダ付けしました。100円を越える部品を直接ハンダ付けするのは心臓がドキドキしますw
セグメントの配線には電流制限用の抵抗100Ω☓7個入れました。1kΩでも1.5mAぐらい流れるのでスタティックなら十分明るいのですが、ダイナミック点灯だとさすがに暗くてダメ。試行錯誤の結果と手持ち抵抗により100Ωになりました。
■で、起動しない■
で、組み上がったところでGND/VCCがショートしていないか確認してから電池つないでも起動してくれません。電源電圧もI2Cのプルアップも正常。何せI2C以外はみんなDigital Outputという単純な回路なので、疑うところは「CPUがちゃんと動いていない」ということぐらい。ごく簡単なLチカプログラムを動かしてみても信号が出てきません。
となるとリセットが原因です。
ブレッドボード上では何も配線しなくても動いていたのですが・・・2553で前にもあったなー。というわけで、47kΩでプルアップしたところ、動作するようになりました。推奨回路ではコンデンサでGNDとつなぐようにも書いてあるのですが(電源を入れた時にしばらくGND近くを保って、リセットさせるため)、まぁ動いているから省略w
■起動したけど■
…なんだこの表示はorz
よくみると、
- 中央が点灯すべきところで下が点灯している
- 下が点灯すべきところでドット点灯している
ということで、3本の配線が間違ってました。せっかくワイヤの長さを揃えてきれいに配線したのに台無しですorz
なお、ユニバーサル基板と電池ボックス(単4☓3本)の固定には輪ゴムを利用しました。
■プログラム■
前のバージョンとほとんど変わっていません。変えたのは、前記の通り明暗を判定する値を大きくしたことと、明暗によってLEDの明るさを決める関数の演算式、それに秒表示の時のゼロサプラスをやめたこと、の3点です。■ユニバーサル基板■
昔はブレッドボードがなかったので、抵抗の値を試行錯誤で決めるのも面倒でした。今回、アホな配線ミスはありましたが、ブレッドボードで決まった通りに配線するだけなので、昔と比べれば大分ラクになりました。
でも、私は基本的にソフト屋なので、何の痛みも伴わないundoに慣れきっています。ユニバーサル基板で配線しながら考えていたのは「基板設計する方がラクだな」ということでした。配線ミスの修正を含めて、ユニバーサル基板の作成にかかったのは3時間ほどでした。このぐらいの基板設計なら2時間ぐらいで終わりますし、届いた基板へのハンダ付けも1時間かかりません。
昔は自分で1日かけてエッチングするか、数万円だして業者に頼むしかなかったんですが、今はカード決済で送料込み2400円ですからねぇ・・・。
基板を起こせば2枚目以降はあっという間に作れますし。まぁ、大抵の場合は需要ないのでそのまま未使用基板が増えていくだけなんですけどもw
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。