帰宅後、昨日Arduino化したATmega328P(TQFP)のブレッドボードでPCA9685までi2cのラインを伸ばしてテスト。i2cのプルアップ抵抗はとりあえず10KΩで。普通に動作しました。LEDは白と青で電源も3.3VだしPWM動作ということで手抜きで抵抗なしの直付。
できれば、PCA9685をi2cバスに2つ入れてのテストをしたいかな。あとでやろう。
「Arduino」一覧
2012年今年のクリスマスリースイルミ(但しプロトタイプ)
今朝通勤途中で、大岳山の後ろに山が見えました。普段見えないですけど、冷え込みのせいかな。その山は山座からすると雲取山。東京都・埼玉県・山梨県の都県境で、東京都の最高峰。
さて本題。今年の玄関リースのイルミネーションのプロトタイプ版です。(久々にYoutubeにアップロードした気が。もしかして去年のイルミ以来?w)
今年は互い違いに設置する5個の青LEDと4個の白LED、そしてトップにはRGBマルチカラーLEDのデザイン。夜間と日中を検知する部分は昨年と同じ。日中の時間はdelay()ではなく、AVRマイコンのパワーダウンモードまで落としてsleepさせます。リング状のイルミネーションの部分は2パターン。ランダムPWM点灯と、青・白の互い違い点灯のパターンです。
もっと凝ったのは来年末作成へ。如何せん単三電池2本でシーズン内駆動予定なのです。昨年は5日おきに単三4本を取り替えていた。LED数を増やしつつ、電気を食わないハードとソフトにしていくのが工夫のしどころです。
やはり白色LEDは厳しいか
クリスマスイルミのハード部分のお話
前に作ってあったブレッドボードのプロトタイプ版に本番で使う青と白のLEDを挿してみた。
うー、白が点かないぞ。
TLC5940の電流制限用につけている抵抗は4.7KΩ。39060/4700=8.3mAしか電流流れてないじゃん。手持ちの抵抗の2.4KΩ(16mA)に変えたら点いた。3.3KΩ(11mA)でも大丈夫そう。
これで行ってみますか。というかココは半固定抵抗にして調整する予定だった。なるべく電池を持たせたいのだけども。
C基板のクリスマスイルミネーション基板設計
9個の通常LEDと1個のRGBフルカラーLEDで計12個のLEDをドライブする感じです。って、まだ何も作ってません。配線の確認のみ。TLC5940とArduino ProMiniの間は実際にはもっと詰められますね。
左側は3列分くらい削れますね。あと、右側もはんだブリッジでTLC5940とメスコネクタ間を繋げば更に2列削れるね。狭いところに線出し入れする必要も無くなる。実装する際は単なる平行移動なので、この5列を削っても元の図面を脳内で読み替えます。
実際の基板でちょっと寄せてみましたけど、右側はソケット同士のピンで繋げられました。そもそも、電源となる電池ボックスのサイズがC基板と同じくらいありますのでこのくらいで良いかな。。
TLC5940便利です。LEDを7個以上ドライブする際には。5本の信号およびクロック線とVCC,GNDだけの配線で済みますので。
水槽カメラ復帰
Arduino0022にてカメラ撮影&画像アップ・Pachubeへの水温アップの動作復帰、かつ自鯖DBへの水温アップロード機能を追加して動作を確認しました。
予想通り不安定だった要素はメモリとhttpセッション数。
1)ATmega328Pなのでメモリは2Kbyte。2)LANはWiznetのW5100なので4セッションまで。
メモリ対策はhttpで使う文字列定数をひたすらprogmemへ追い出すことで対応(便利なオブジェクトは無くsocketにhttpの電文を送信してるだけなのよ。)。AVRの場合、普通に文字列リテラルを宣言すると2KbyteしかないSRAM空間に配置されてしまうので。
LANの方は送信終わったらとっととセッションをぶった切るように。
以上の対策で10分置きの4サイクルくらい動作してるのを見届けたので仮OKにしておこう。
週末は、メモリとセッション対策を入れた上でArduino1.0.1化の予定です。