って、シリコンが乾いたセンサーをポチャンと水槽に入れただけですがw。すでにpachubeには配信してたのでそんだけ。これで水槽水の電気伝導度と水温との相関がとれる。室温との比較でも反比例してるのは分かっては居たので。もし浸水して壊れても、LM61の替りはあるさ。秋月で4個200円だったのでシリコン乾かす時間がかかるくらい。
あと、Amazonで部品ケースを買ったので、引き出しに秋月通販袋に種類別にわけてあるパーツを移動します。
右片麻痺のIT好き。左手で生きてます。
って、シリコンが乾いたセンサーをポチャンと水槽に入れただけですがw。すでにpachubeには配信してたのでそんだけ。これで水槽水の電気伝導度と水温との相関がとれる。室温との比較でも反比例してるのは分かっては居たので。もし浸水して壊れても、LM61の替りはあるさ。秋月で4個200円だったのでシリコン乾かす時間がかかるくらい。
あと、Amazonで部品ケースを買ったので、引き出しに秋月通販袋に種類別にわけてあるパーツを移動します。
水槽の水温計(GEXのチャームで安売りしてた奴)はつけてるけど、時系列のデータが取れるものでは無いので別途センサーを設置することにした。
先週、事前に上記画像の様に実験して、XBeeのADCで行ける事は確認しておいた「LM61温度センサーによる水槽の水温測定」。LM61を選んだのは、LM35は電源に4V以上必要なので却下(XBeeは3.3Vなのです)。出力信号がLM60は6.25mV/℃でLM61は10mv/℃。ADCにかけるから1℃あたりの電圧幅がデカイ方が細かい温度が測定できるのでLM61を選択って事です。XBeeシリーズ2のADCは1.2V MAXの10ビット(vrefが効くかと思ったけど3.3Vで試して効かなかったし。どうもシリーズ2で使われてるマイコンの仕様らしい。)なので1ビットあたり0.001171875V(=1.171875mV)の分解能。つまり温度を0.1171875℃単位で測れると。実際はLM61のセンサーのリニアリティとか誤差とかありますけどね。LM61にはVCCとGND間に0.1μFのパスコンを設置。シグナルとGND間は処置せず放置した。
んで、本日、水槽に付けるための防水用にシリコンシーラントを買い出して来た。コニシの「バスボンドQ」とセメダインの「バスコークNクリア 水槽鏡まわり」とあったけど、後者を購入してきた。で、半分に割った太めのストローをガイドに以下のように包埋。
固まるまで時間がかかるので放置しつつ、mbedのプログラムを修正。pachubeのID 4に入れ込み。今までID 4を使っていたmbed付近のI2C温度センサーはID 9へ移動。このmbedの☆ボードオレンジにつけてるI2C温度計。場所が悪くてPCやLCDモニターの排熱の上昇気流をあびて高めの温度となってる。ま、さておき、今回作成したLM61のセンサーはかわききるまでは室温センサーとなってます(苦笑)。
ツレがLEDリースのブレッドボード部分が目立たないように目隠しの飾りをつけてくれた。ありがとん。ただ、照度センサーのCDS部分が埋もれてしまって、このままでは明日の昼間の判定が出来ずに夕方点かないままになってしまう。で、リードを切っていないCDSと交換して対策しました。多分大丈夫でしょう。駄目なら夜に電源入れなおせばOKだし。
「なんでも作っちゃう、かも。」さんとこのdotsduinoキットを販売委託先のスイッチサイエンスさんでお買い上げ。基板のバージョンは1.2dでした。
昨日届いていたのだけど、本日会社から帰宅後にはんだづけして組み上げ。ArduinoIDEでのboardは「Arduino Pro or Pro Mini (3.3V, 8 MHz) w/ ATmega328」でOKでした。ってかそれ以外にしてたら妙なエラーが出て困ったズラ。
やっぱ専用?に作られた基板は綺麗だし、ぴったりと8×8ドットLEDの裏にハマるし。シリアル接続用の6ピンヘッダは80度くらい曲げてみました。1個問題点があって、付属の単4アルカリ電池3本のボックスの終端についてる端子。そのままではグランドとVCCに刺さらんのだな。3端子の両端だったら良かったのに。こういう圧着?端子はどこで買うのが良いだろうか?
ツレの要望があったので、赤色LEDを2つ追加してみた。午前中にLED工作をして、リースに配線。動作確認はしなかったのだが・・・。
夕方点灯したのをみてみたら、赤が点くと青が点かない。楽して既存の青色LEDと並列に赤色を入れたのだが・・・。赤は低ボルトで光る為、それに引っ張られて並列につながってる青が点かなくなってしまった。手抜きをして、ちゃんとアノード側にそれぞれ抵抗を入れてる訳では無く、まとめて1個の抵抗(1KΩ)をカソード側に入れてたりするので(苦笑)。
手っ取り早く全てのLEDを光らせるには・・・。プログラムを書き換えました。ATmega168Pのpwmポートは6つあって、今のところ4つ使っているのでフル使用に変更。プログラムは汎用化(?)してあったので、追加の2ポートのpin番号の指定と、総LED数の指定でOK。
ってか、総LED数の指定なんかしたくないのだが、ArduinoのC環境にfor each無いし、uboundみたいな書き方がわからんかったので。sizeof(配列)/sizeof(配列の規定変数タイプ) ex(sizeof(array)/sizeof(int))で取れそうな気はしているが試してない。
後記。sizeof(array) / sizeof(array[0])で行けるみたいですね。
ついでなので、CDSの観測待ち時間をちょっと多めに変更して。更に、起動時に全てのLEDを1500ミリ秒置きに順に点けていって最後に全部消す処理を追加。まぁ、こんな感じで大丈夫でしょう。PWM使っているとはいえLED1個20mAとすると6個で120mAだもんなぁ。これもあってデジタルマルチメータを今夜発注しました。サンワは高かったのでマザーツールの奴。
ATmega168P x 1 (200円)
CDS x 1 (25円)
LED x 4 (40円)
セラコン x 4 (40円)
電解コン x 1 (10円)
抵抗 x 3 (3円)
ブレッドボード x 1 (150円)
電源レギュレータ x 1 (50円)
電池ボックス x 1 (50円)
電池スナップ x 1 (20円)
計 588円
あと、電線とピンヘッダくらい。
ブレッドボードを使わずに生基板や空中配線にしたり、レギュレータ使わずに電池直結にすればもちっとお安くなります。