スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

電子アクセサリのようなものシリーズ「サファイアダイス」作ってみた

先日試作した電子アクセサリのようなものシリーズ「ルビーダイス」の製作において得られた反省点をふまえ、家族からリクエストがあった青色LEDを使用した「サファイアダイス」を製作してみました。



[変更点]

1.青色LEDのVfに対応するため、電源電圧を上げる
青色LEDのVfは3V~3.6V程度であることが多く、今回使用する青色チップLEDはVf=2.8~2.9Vなので電源として電圧が3VのCR1220やCR2032ひとつでは不十分です。
しかし、昇圧回路を組み込むにはスペースが不十分であることから、薄型16mmのリチウム電池CR2016を2枚重ねて直列で使用、電源電圧6Vとします。組み込むフレームには電池に合わせて丸型の大きめのものを使いました。
PIC10F322のVddの最大定格は本来5.5Vなので、シリコンダイオードなどで0.5V程度降圧すべきですが、実際の使用では問題がなかったので今回は省略してしまいました。
電流制限抵抗には330Ωを使いました。(6-3)[V]/(330+330)[Ω]=0.004[A] 1セグメントにおよそ4mA、LED一つあたり2mAを流す計算になります。ただしD1だけは330Ωを直列に一つ追加し、(6-3)[V]/(330+330+330)[Ω]=0.003[A]、3mA流しています(ちょうど良い値のチップ抵抗がなかったもんで)。

2.消費電力を減らすため、PICをスリープさせる
前回の回路ではRA3ピンをI/Oとして使い、プログラムは走らせたままでボタンの入力をチェックしていましたが、その分何も表示していないときにも電池をそれなりに消費してしまいます。
スリープ機能を使うとき、スリープからの復帰方法をどうするか考えなければなりませんが、PICの場合は外部割込み線であるINT入力のエッジを使う方法があります。しかし、10F322のINT入力はRA2と同じピンが割り当てられているので今回は使うことが出来ません。→勘違いでした。IOCを使えば、入力に割り当てたピンの状態変化割り込みを使うことで、どのI/Oピンでもスリープからの復帰が可能、でした
そこで、RA3をMCLRとして使い、ボタンを押すとハードウェアリセットして再起動することでスリープを脱するようにします。→IOCを使えばわざわざリセットする必要もなかったわけですね…お恥ずかしい

[9/18追記]
コメントでご指摘をいただきました。
スリープからの復帰はINT入力ピンでなくてもIOC(interrupt on change:入力ピンの状態変化をトリガーとする割り込み)を使えば可能です。IOCの仕様について勘違いをしていました。

[回路図]
サファイアダイス回路図
「ルビーダイス」の回路との違いは制限抵抗の値と電源電圧くらいですが、大人の都合でLEDの極性が逆になってしまいました。また、LEDを実際の基板上の配置に合わせて書きました。


[部品等]
前回のルビーダイスと同様です。
異なる点は、チップLEDが青色タイプになり、電流制限抵抗が330Ωになったこと、丸型のアクセサリフレームを使ったこと、CR2032用のバッテリーホルダーを使ったことくらいです。


[製作]
まず、フレームに合わせて基板をカットします。今回使うフレームは直径30mmの円形なので、基板に直接あてて細いマーカーでラインを引きます。
基板をフレームにあわせてカット(1)
今回ははさみで切りました。少し曲がりますが妥協。
基板をフレームにあわせてカット(2)
基板をフレームにあわせてカット(3)
基板をフレームにあわせてカット(4)

電池ホルダーの位置を合わせます。電池を挿入しやすいように、入れる側を少し広めに開けておく必要があります。
電池ホルダーを位置あわせ
電池ホルダーの爪が通る2mmφの穴を開けます。
電池ホルダー固定用穴
電池ホルダーの爪を折り曲げて固定します。
電池ホルダーの爪を曲げて固定

前回と同様、銅箔テープをマイナスの電極にします。
銅箔テープを電極にする
なお、電池の挿入と取り出しを容易にするため、電池ホルダーの上部1/3をカットしてしまいます。
銅箔テープを電極にする
※ここで注意※
今回はCR2016を二枚重ねて直列として使いますが、重ねたCR2016のうち基板側になるほうのプラス極が電池ホルダーの側面の金属部分に接触してしまうとショートしてしまうことになるので、電池の側面に接触する可能性がある部分を絶縁しておく必要があります。
電池ホルダーを基板の穴に取り付ける前に、細く切ったセロテープやビニールテープで巻くか、手ごろなサイズの熱収縮チューブがあれば差し込んで収縮させておきます。(実はこのことにはホルダーを取り付けた後で気づいたので、難儀しました)

前回同様、配線を進めていきます。
はんだづけ
ICSP用の配線を引き出します。
ICSP配線を引き出す
プログラムを書き込み、動作を確認します。
プログラムを書き込む
基板が完成しました。画像はCR2016が2枚重ねて入っている様子です。前述のとおり、電池ホルダーの絶縁に気をつけてください。
基板完成

フレームに入れて、レジンを流す準備のために位置決めをします。今回は100円玉1枚の厚みで浮かすとちょうど良い位置になりました。
レジンを流し込む準備
レジンを慎重に流し込み、紫外線ランプで硬化させます。
基板の裏側にも染み出してきますので、十分注意してください。裏側から紫外線をあてて硬化させるのも忘れずに。
レジンを硬化させる

完成したものに、カニカンと呼ばれるタイプのキーホルダーをつけてみました。
左側が前回製作した「ルビーダイス」です。100円硬貨との比較で大きさを把握してください。
表側
裏側の様子です。CR2032のホルダーに厚みがあるので、フレームの深さよりも後ろに出っ張ってしまいました。
裏側の様子

[反省点など]
反省点というか今後の展望としては…
 ・電池が厚みがあり、少しフレームをはみ出してしまう(やはり昇圧回路方式にしなくてはいけないのかも)
 ・レジンに着色して、よりアクセサリーらしくしよう
 ・空いたスペースに装飾を入れて、よりアクセサリーらしくしよう
 ・やっぱり専用基板作りたい(配線がめんどい)
といったところでしょうか。もし、専用基板を作って量産のめどが立ったら、どっかのイベントで配布なんてことも考えておりますが、いつになるかは…


[ソースコードと操作の説明]
ボタンを押して離すとLEDのダイスの目が高速でカウントを始め、しばらくするとゆっくりになって1から6までのいずれかの目を表示して停止した後、数回点滅して出目の確定を知らせます。
確定した出目を数秒間表示した後、6・5・4・3・2・1の目を順にカウントダウン表示するデモ表示を行った後に、スリープ(省電力待機)します。
どの状態からでもボタンを押すとハードウェアリセットされるので、すぐにダイスの目のカウントが始まります。(今回は自動デモモードは搭載されていません)

なお、このソースコード並びに製作記事を参考にされたことによる全ての事象について、私は一切の責任は負いません。[At Own Your Risk]

ソースコードの表示にはGitHub:Gistを利用しています。
・2015/9/18
スリープからの復帰について勘違いしていた点を追記しました。
スポンサーサイト

テーマ : 電子工作
ジャンル : 趣味・実用

コメントの投稿

非公開コメント

No title

おや、INTピンの割り込みではなくInterrupt On Changeならすべてのピンで使えませんか?

IOC

雷更新世さん、お返事遅れましてすみません。
ご指摘ありがとうございます。
確かにIOCでもSLEEPから回復できるみたいです。
次回からはそれでやってみます!
最近の記事
プロフィール

Bonezine

Author:Bonezine
狭い視野で浅はかな発想と奇異な日常を語ります。本気にしちゃだめだよ。

最近のコメント
月別アーカイブ
カテゴリー
最近のトラックバック
ブログ内検索
RSSフィード
リンク
ブロとも申請フォーム

この人とブロともになる

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。