以前にもサボテンフレーム用ファンコントローラをPIC12F683を使用して作ったのですが(サボテン用フレームが30℃を超えたらファンが回るようにするぞ!を参照のこと)、今回もう一度作ります。
というのも新しいサボテンフレームのために、以前のファンコントロール回路を久しぶりに動かそうとしたのですが、マイコンを5Vで駆動しなければいけないところを、ファンの駆動電圧である12Vをかけてしまいぶっ壊したからです(マイコンだけでなく温度センサとMOSFETも壊れました)。
そんでもって、前回の自分で書いた記事を参考に、もう一度同じものをつくろうと思ったのですが、読み返してもさっぱりわからなかったため、今回、一からまとめ直します。
という訳で今回の投稿はほぼ自分用のメモです。
用意するソフトウェア
使用する部品とか
- 温度センサ/LM35DZ
- マイコン/PIC12F683
- NchパワーMOSFET/2SK2232
- 抵抗120Ω
- 積セラコンデンサ0.1μF * 2個
- 5VのACアダプタ
- 5Vのファン
工程
・mikroCでプログラムを書き、BuildしてHEXファイルを生成する。
↓
・PICkit3 ProgrammerでHEXファイルをPIC書き込む。
↓
・ファン回路に導入。
↓
サボテンうっとり。
↓
(゚д゚)ウマー
mikroCのコンフィギュアワードは以下のとおりです(重要)。
mikroCのプログラムは以下のとおりです。30℃から段階的にファンが強く回っていきます。
void main() { unsigned int ad1, ad2, ad3; unsigned int level; OSCCON = 0b01110000; // 8MHz internal clock ANSEL = 0b01011000; // AN3 and Fosc /16 ADCON0 = 0b10001101; // AD control CHS=11(AN3) CMCON0 = 0b00000111; // Comperator not select PWM1_Init(8000); // PWM initial 8KHz PWM1_Start(); // PWM start do { ad1 = Adc_Read(3); // Read AN3 Delay_ms(5); ad2 = Adc_Read(3); // Read AN3 Delay_ms(5); ad3 = Adc_Read(3); // Read AN3 level = (int)((ad1 + ad2 + ad3) / 3); // Avg. AN3 if(level < 50) { // -25 PWM1_Set_Duty(0); } else if(level > 61 && level < 70) { // 30-35 PWM1_Set_Duty(200); } else if(level > 71 && level < 80) { // 35-40 PWM1_Set_Duty(225); } else if(level > 81 && level < 90) { // 40-45 PWM1_Set_Duty(255); } else if(level > 91 && level < 100) { // 45-50 PWM1_Set_Duty(255); } else if(level > 101) { // 50- PWM1_Set_Duty(255); } } while(1); }
PICkit3とライターのつなぎ方は以下のとおりです。
回路図。
配線写真。
ファン駆動回路は以下のとおりです。
回路図。
表面。
裏面。半田が汚い。
ファンとつなげたところ。
ストーブで動作を確認。
サボテンフレームの側面にファンを取り付けるためにアクリルに穴を開けます。
四角く空きました。
アクリルの穴あけは気がゆるむとすぐ割れてしまいます。というわけで割れました。ビニールテープで補修。透明でわかりづらいです。
アクリルが透明なので、どういうことになっているのか写真ではまったくわかりませんが、アクリル板にファンがネジ止めされています。
フレームの側面にセットしたところ。アクリル板のフレーム側面へのセットは、アクリルにネジ止めしたイレクタージョイントでフレーム側のパイプに止めました(手で着脱可能です)。
奥のピンク色のタッパーが温度センサー部分です。
というわけで、ここまで苦労して作ったのですが、よくよく検索してみるとサーモスタットICなるものが100円未満で売っていることに気付きました。たとえばサーモスタットIC TC622EPA -40℃~85℃とか。こういうのを使えば、そもそもプログラミングなんて必要なかったですね。というわけで次回からはそうしたいと思います。
参考:
コメント