時限人工呼吸器の作り方
部屋の換気が必要ですか?この記事では、ボートのキャビン内の湿った空気を排出するために、リレーで作動するGPSタイミングのファンをどのように作成したかを説明します。 PIC16F628Aで制御され、LCDを備えています。
部屋を換気する必要がありますか?この記事では、ボートのキャビン内の湿った空気を排出するために、リレーで作動するGPSタイミングのファンをどのように作成したかを説明します。 PIC16F628Aで制御され、LCDを備えています。
空気を流しましょう
換気がほとんどまたはまったくない小さな部屋では、空気が静止する傾向があります。空気が少し湿っている場合は、特定の場所にカビやカビが発生することは間違いありません。
カビや菌類は自然界に見られ、葉、木、その他の植物の残骸を分解するために必要です。ボートにはたくさんの木があるので、カビや菌類は確かにそこにあります。彼らの侵入を防ぐことはできませんが、カビやカビに対してできるだけ敵対的なボート内の環境を維持するために、いくつかの対策を講じることができます。
これに対処するには、少なくとも2つの方法があります。 1つの方法は、厳しいスケジュールで洗濯と掃除をすることです。さて、それはどれほど楽しいですか?私はオタクなので、代わりに何かをオタクにしました。それは、一定の時間に合わせて湿った空気を循環させて排出するファンです。
システムの設計
システムに次のことを実行させたい:
- 空気を循環させる
- 一定の間隔で自動的にオン/オフを切り替えます
- 車のバッテリーから実行
- バッテリーを充電するためのバッテリー充電器が含まれています
- 時間やその他の情報を表示するディスプレイが含まれています
このようなシステムを作成するには、次のパーツが必要です。
- 12vファン
- マイクロコントローラー
- 12vバッテリーと12vバッテリー充電器
- 2つのリレー、時間とネジ留め式端子を追跡するためのもの。
- 以下の部品リストによるその他の部品
ファンを1時間に5分間動かしてほしい。これはソフトウェアにハードコーディングされます。
セットアップは車のバッテリーから実行されます。私のファンの定格は12v4.5Aです。バッテリーが常にトップチャージされるように、バッテリー充電器に接続します。ファンの稼働中にバッテリー充電器が過負荷にならないようにするために、ファンの稼働中にシステムに充電器を「切断」させます。一方のリレーはファンを操作し、もう一方のリレーはバッテリー充電器を操作します。ファンが作動しているときはバッテリーは充電されておらず、ファンが作動していないときはバッテリーが充電されています。
時間を追跡するために、私はGPSモジュールを使用しています。このプロジェクトでは、Skylab SKM53シリーズモジュール(PDF)を使用します。このユニットは、UARTを介して毎秒複数のNMEAセンテンスを送信します。データシートでは、RXDとTXDの両方で10Kのプルアップ抵抗を使用することを推奨しています。これにより、シリアルデータの安定性が向上します。私はそれをしませんでした、そして私はどんな不安定性にも気づいていませんでした。運がいいかもしれません。データシートの同じページに、適切なデカップリングコンデンサを追加する必要があると記載されています。 10uFの電解と0.1uFのセラミック。回路をブレッドボードに載せたとき、私は0.1uFのセラミックのみを使用しました。
Skylabデータシート(PDF)のスクリーンショット。
時間を稼ぐために「RMC」文を使用しています。 RMC文の例は次のとおりです。
$ GPRMC、075747.000、A、2233.89990、N、11405.3368、E、3.9,357.8,260210 ,,, A * 6A
$ GPRMCの後の最初の数字は時間です。この例では、時刻は07:57:47です。その情報が必要になります。
次に必要なのは、GPSモジュールに有効な位置修正があるかどうかを示すプレフィックスです。上記の例では、3つのゼロの後の大文字のAです。
「A」は有効な修正を示し、「V」は無効な修正を示します。私のソフトウェアでは、有効な修正をチェックします。これらの文字では大文字と小文字が区別されます。
プロジェクトを構成するために、ブロック図を作成するのが好きです。このようにして、やりたいことを「視覚化」します。
上記のブロック図では、すべてを独自のブロックに分割しています。これは、回路図面や回路のトラブルシューティングが必要な場合にも役立ちます。
ハードウェア
概略図はブロック図に基づいています。回路内のコンポーネントとそれらの接続を反映するために、ブロック図のすべてのブロックを再現しました。
LM7805レギュレータのデータシートには、標準アプリケーションの場合、入力ピンに0.33uF、出力ピンに0.1uFが必要であると記載されています。では、なぜ私は異なる価値のあるキャップといくつかの余分なものを使用するのですか?入力と出力をスムージングするためにそれらを使用しています。少し多すぎるかもしれませんが、私はこのレギュレーター構成で非常に良い経験をしています。コンデンサを使用しない場合、レギュレータが発振し始める場合があります。 LM7805レギュレータは古いリニアレギュレータです。最新のスイッチングレギュレータを使用してみませんか?スイッチングレギュレータは、リニアレギュレータよりもはるかに効率的です。これは私が周りに置いていたものです。
リレーを1つ使用するだけで、部品とスペースを節約できたはずです。リレーが2つ欲しいです。 2つのリレーを使用する理由の1つは、充電器が切断されてからファンが始動するまでの時間を少し確保したいということです。
パーツリストをBOM.ULPからOpenOfficeCalcにインポートし、不要な列の一部を削除しました:
回路図に表示されていないのは私のヒューズです。ファンのプラス線に12v8A定格のヒューズがあり、バッテリー充電器のプラス線にも同じものがあります。
ソフトウェア
この記事の最後にあるダウンロードリンクからCソースをダウンロードできます。コードはよくコメントされていますが、ここでいくつかの追加のハイライトを行います。
私がプログラムを作るとき、私は特定の構造に従います。この図は構造を示しています:
コードは、必要なライブラリを含めることから始まり、その後に構成ビットが続きます。ソースコードに構成ビットを含めることは、優れたプログラミング手法と見なされます。そうすれば、自分が何をしたかを確認したり、他の人がトラブルシューティングを手伝ったりするのがはるかに簡単になります。さらに、数か月後にプロジェクトに取り掛かると、すぐにその部分がわかります。
構成ビットに問題がなければ、定義に移ります。ここでは、回路に接続した水晶の速度を定義します。マイクロコントローラのポートも定義されています。
次は変数です。すべての変数はここで宣言されます。
次に、関数のプロトタイプを作成します。ここに、プログラムが使用するすべての機能をリストします。一部のプログラマーはこれを時間の無駄だと考えていますが、私はそれが好きで、それを維持しています。メインプログラムループの後に関数を使用してプログラムを構成する場合は、実際に必要です。
次は関数です。ここで、コメントを開始することが非常に重要です。私は通常、各関数に数行あり、関数が一般的に何をするかを示しています。関数内のコード行にもコメントします。
1つの例は、このプロジェクトのUARTポートを初期化する関数です。
// UARTポートを初期化する機能 void uart_init(void) {{ TXSTAbits.BRGH =0; //高ボー選択ビット、1 =高、0 =低 TXSTAbits.SYNC =0; // USARTモード選択ビット、1 =同期モード、0 =非同期モード TXSTAbits.TX9 =0; // 9ビット選択ビット、1 =9ビット伝送、0 =8ビット伝送 RCSTAbits.CREN =1; //連続受信イネーブルビット、1 =連続受信を有効にする / * 16MHz水晶を使用してSPBRGを計算します 16MHz 16000000/9600 =1666.6666 1666.6666 / 64 =26.0416 26.0416-1 =25.0416 25.041 =25 * / SPBRG =25; // 9600-n-8-1 PIE1bits.RCIE =1; // USART受信割り込みイネーブルビット、1 =イネーブル RCSTAbits.SPEN =1; //シリアルポートイネーブルビット、1 =シリアルポートイネーブル TXSTAbits.TXEN =1; //イネーブルビットを送信、1 =eanbleを送信 戻る; }
関数の機能を説明する最初のコメント行が表示されます。次に、すべてのコード行にコメントが付けられるので、何が起こっているのかがわかります。
すべての機能が整ったら、メインプログラムの時間です。メインプログラムは、永久に実行されるループに入る前に、いくつかのステートメントで始まります。
jc_lettheairflow.c.zip
結論
この記事では、空気を吹き付けて循環させるファンを使って、ボート内の環境をカビや菌類に対してできるだけ敵対的にするように努めました。ファンはキャビンから出るパイプに接続されています。私はGPSモジュールを使用して時間を追跡し、2つのリレーを使用してファンのオン/オフを切り替えました。バッテリーが充電されたままになるように、別のリレーを使用してバッテリー充電器のオンとオフを切り替えました。
この回路を次のレベルに引き上げて日付を表示するのは読者に任せます。
なぜGPSモジュールを使用するのですか?マイクロコントローラーを単純なタイマーとして使用することもできました。それから私は時間を設定するために、ある種のインターフェースを作らなければなりませんでした。または、リアルタイムに関係なく実行できれば幸いです。 1時間ごとに5分間実行されます。 GPSを使用すると、プログラムで1時間ごとに5分実行するように設定できます。
写真
このプロジェクトを試してみてください。 BOMを取得します。
産業機器