-
大気圧をキャラクタLCDに表示しました
無事、大気圧をキャラクタLCDに表示できるようになりました。 このために、AVRのハードTWI機能をつかったI2Cのコーディング、負電圧生成で5V用LCDを3.3Vで使う、cコードのファイル分割、ということをしました。c言語のオブジェクト指向風記述をしようとしましたが、抽象化が中途半端なところで諦めました。 レジスタから読んだデータをシフトしてuint32_tに代入するときに、予めキャストをしていなかったせいで、シフトでデータが消えているというバグをつぶすのに時間がかかりました。あとはsprintfで%ul,%d,%uの... -
水気耕栽培してたものの最後はこんなんでした(9月の話)
すでにブログに書いたと思っていたけれど、書いていなかったので、いまさらですが、自作装置での水気耕栽培の結果を書きます。 自作の水気耕栽培装置を作って夏場にベランダでバジル・大葉などの葉物を育てていたのですが、最終的に、シーズンも終わりかけたのと、モサモサしすぎて葉が窓に当たるようになってきたので、栽培を終了しました。 7月31日の写真がこれ。そこそこもさもさ。 9月に停止して、久しぶりに蓋を開けてみたら、根がスポンジ状になっていました。おそろしや。 最後まで夏場で3日に一回、涼しい... -
5V単電源用のHD44780互換LCDキャラクタ液晶モジュールDMC16117Aを3.3Vで使う
課題: AVRで3.3V I2C動作の大気圧モジュールの値を読んで、LCDキャラクタ液晶に値を表示させたいが、5V用の液晶しか手元にない。昔のI2C仕様書にのっていたようなI2Cの5V-3.3Vレベル変換回路をNチャネルFET2個で組むにしても、その回路をつくる手間に加え、5Vから3.3Vを作る手間は別に生じる。3.3Vレギュレータはあと一本なので使わずとっておきたいし、前みたいに青色LEDをかわりに使うのもすでにやったので、ホビーという意味では別の方法を使いたい。 解決策: LCDの仕様書を見ると、コントローラの電圧範囲は4.... -
LPS331使用 高精度大気圧モジュールのI2CでのONE_SHOT測定テスト
I2C通信chkに引き続き、大気圧ONE_SHOT測定のテストをしました。装置をactiveにして、one_shotの命令をし、測定が終わったかをSTATUS_REGで確認し、終わっていたらば大気圧を読みに行く、という流れです。 こちらも無事読み取りができました。 = 0x3f32b6 / 4096 とグーグル先生に聞いたら、1011.17 mbarだそうです。 コードはこちら。エラー処理はしてません。 #include <avr/io.h> #include <util/delay.h> #include <util/twi.h> #define SLA_R 0b10111001 #define SLA_W 0b10111000 #define...