楽々PIC

水田除草と言うブログを書いていますが、PIC関連の記事が意外に人気で驚いています。 PICを使った電子工作に興味を持つ方が多いことを知って、一緒にPICを学ぶブログを作りたいと思いました。 「楽々PIC」は教材と言うよりも少し実用性?のある楽しい道具を作りながら学ぶブログを目指します。

RRP1320-1

ディジタル温度センサー4

ディジタル温度センサー3」で紹介した割り込み処理からフックで実行されるプログラムの内、DS18B20+ にコマンドを送信(書き込み)する部分と、温度データを読み出している部分のアセンブラソースを紹介します。 クロック周波数8MHzでの実施例です。 実行サイクル数やNOPコマンドで時間調整している為、クロック周波数が異なる場合には調整が必要です。

下図がコマンドを送信(書き込み)する部分です。

write2

先の書き込みスロットを終了する為に 1.5usec 間 1-Wire-バスを解放した後で、書き込みスロットの先頭で 1.5usec 間バスに Low を出力します。 その後送信データに従ってバスに High または Low を出力して割り込み処理を抜けます。 最初の 1.5usec は次の割り込みまでのタイマー設定を行う間に確保されます。 2つ目の 1.5usec は送信データのシフトとNOP命令で確保しています。

下図は、温度データを読み出している部分のアセンブラソースです。

read2

先のスロットを終了させる為に 1.5usec 間 1-Wire バスを解放した後で、1.5usec 間バスに Low を出力し、さらに 9.5usec 経過した時点でバスを読み出して割り込み処理を抜けます。 クロック周波数が8MHzでは10usec程度の待ち時間は割り込みを抜けずにNOPで処理する方が安定するし、他の(低位)割り込み処理にも不具合は予想されないと思います。

関連記事のインデックスは右記事の末尾にあります。 → ディジタル温度センサー


楽々PIC」は楽しい道具を作りながら学ぶブログを目指します。





ディジタル温度センサー3

DS18B20+ で温度測定をする為に「ディジタル温度センサー2」で紹介したように1秒間を超える手続き(ポート入出力)が必要です。 この間も温度制御や赤外線リモコン受信を並行して進める為に、可能な限り割り込み処理で必要な手続きを進める必要があります。

1-Wire バス・プロトコルは少々面倒な部分がありますが、今回の目的を実現する分には予め決まっているタイミングで以下4種類の処理を組み合わせて淡々と進めるだけで、複雑な分岐処理はありません。

1. ポートに Low を出力
2. ポートに High を出力
3. ポートを入力ポートに設定
4. ポートの値をサンプリング

RRP1320-1-04-2 の温度センサーを DS18B20 に置き換える為、他の処理(例: 赤外線リモコン受信)よりもシビアなタイミング管理が必要な 1-Wire バス・プロトコル用に、高位割り込みに設定した TIMER3 割り込みを使うことにしました。
DS18B20 は RB0 に接続し、RB0 について先の4種類の処理を行います。 クロックは内臓 8MHz のままです。

タイミングがシビアなので、割り込み発生の都度分岐するのではなくて、割り込み直後に前述4種類の内(予め決められた)いずれか一つの処理を行い、次のタイミング(割り込み)に備えて TIMER3 を設定し、次回割り込み時に実行するプログラムを指定(予約)することにしました。

TIMER3 割り込みの都度指定されたプログラムを実行する為に、フック( HOOK )を使っています。 データ・メモリーとプログラム・メモリーが分かれている PIC の場合はフックと呼べないかも知れませんが、TIMER3 割り込み処理の先頭で所定のデータ・メモリー( 3byte )を参照して指定(予約)されたアドレスにジャンプします。

下図は、TIMER3 割り込みを処理する高位割り込みプログラムのアセンブラ・ソースです。

inthigh-0

割り込みフラグをクリアして直ぐに、データ・メモリーに指定(予約)されたアドレスにジャンプしています。(10~13行目)

下図はジャンプ先の一例で、リセットパルスの後でデバイスの存在パルスをサンプリングするプログラムです。 ディジタル温度センサー2 に示したタイミング図の内、リセット・パルスの丸囲みSに相当するタイミングで実行されます。

inthigh-2

44行目でサンプリングを行い、結果を dsstf < 1 > に反映させるとすぐに次の割り込みタイミングを規定する為に(予め準備された) TIMER3 を設定しています。(46,47行目)

続いて、次の割り込み時に次々回の割り込みタイミングを規定する TIMER3 の設定値を準備し、次回割り込み時のフックアドレスを指定(予約)します。 続く書き込み(送信)処理に必要なワークの準備を済ませて、最初の図の15行目にジャンプしています。
67行目に RETFIE  FAST と書いても良いのですが、フックを使うと解り難いソースになる為、少しでも読みやすくする工夫のつもりです。

関連記事のインデックスは右記事の末尾にあります。 → ディジタル温度センサー


楽々PIC」は楽しい道具を作りながら学ぶブログを目指します。




燻煙器 補助ヒーター

燻煙器用の補助ヒーターを組み立てて、温度上昇試験を行いました。 15Ωのセメント抵抗を、2直4並列に接続したもの2回路を DC12V で使い、合計で 38.4W のヒーターです。 試作した燻煙器の内部温度を、周囲温度 +25.6 まで高めて飽和しました。 燻煙器の温度抵抗は 0.67℃/W と前回の 0.69 より小さな値になりました。 燻煙器を構成する杉板に反りや縮みが見られますから、燻煙器の温度抵抗が変化していると思われます。 杉板の他に、もっと安定した材料を検討する必要がありそうです。 同時に自己責任で使う分はともかく、他の誰かが使う場面を考えれば、万一に備えて内壁だけでも防火対策が必要そうです。

DSC00244

上図のヒーターですが、前回DC5Vでの実験時に室温で通電し、セメント抵抗の表面温度が火傷しない程度になるように抵抗値を選んでいます。だつもりでしたが、今回の2本直列1本当たりDC6Vで測定すると周囲温度+70℃位になっています。 表面温度が高すぎる場合は放熱板を付けたり、間欠通電、あるいは抵抗値を選び直す必要がありそうです。 また、現状ではセメント抵抗の数が多くて手間がかかります。

もう少し工夫して数を減らす必要がありますが、クーラーボックスの内部温度を制御してイースト発酵に使うような場合には安価で手軽な方法だと思います。

燻煙器の試作実験は、スモークウッドの発熱だけで制御目標温度を超えた場合の放熱機構の評価に移る予定です。


楽々PIC」は楽しい道具を作りながら学ぶブログを目指します。



燻煙器 熱抵抗

 燻煙器の温度上昇試験の結果は、燻煙器内部に設置した 8.3W のヒーターで周囲温度 +5.7℃ で飽和しました。 このことから、試作した燻煙器の熱抵抗は約 0.69℃/W と考えています。(考え方が間違っていたら教えて下さい。)

熱抵抗は、三端子レギュレーターに付けるヒートシンクの選択に欠かせないなど、電子工作にもなじみ深いものですね。 燻煙器の木箱も電子工作の一部と拡大解釈しています。

DSC00243


この燻煙器で周囲温度 +50℃ の内部温度を実現するためには 50/0.69 ≒ 72W のヒーターが必要そうです。 スモークウッドの発熱量は定かではありませんが、炭素 1kmol  の燃焼熱 393.5MJ ( 109.3kWh ) から単純に計算すると 250g で 4時間 燃焼するスモークウッドの発熱量は 569W のヒーター相当と考えています。

実際にはスモークウッドの含水率や気化熱、不完全燃焼分で何割か低い値になると思います。

大した根拠もなく半分と考えると 250g で 285W ですから、この燻煙器では概ね 66g のスモークウッドで足りそうです。

計算に間違いがあれば、スモークウッドの量を加減して対応することになりますが、補助ヒーターとしては 72W の半分で 36W あれば良しとします。 入手しやすいヒーター(セメント抵抗)を選んで補助ヒーターは 38.4W にしてみる予定です。

スモークウッドも補助ヒーターも間違いがあれば数を加減すれば良いのですが、内部温度を高めた時に食材から出る水分の影響で、どの程度杉板が変形するのか・・・そっちの方が心配です。

関連記事のインデックスはこちら → 燻煙器 


楽々PIC」は楽しい道具を作りながら学ぶブログを目指します。



燻煙器

 ここ数日は杉板を使って燻煙器を組み立てています。 RRP1320-1-04 を使って温度制御機能付きの燻煙器に仕上げたいと思います。

何年か前にホームセンターで燻煙器とスモークウッドのセットを買って、ベーコン作りに挑戦したことがあります。 2週間程冷蔵庫で塩漬けして、流水で塩抜き、風乾の代わりにペーパータオルに水分を吸わせてから庭で燻煙しました。 2週間の仕込み期間は期待感を味わいながら冷蔵庫に入れて水を流すだけでそれほど手間はかからないのですが、60~70度に保ちながらの燻煙は付きっきりの作業になってしいました。 慣れないこともありますが、風が吹くと温度が下がるので傘などを並べて風をさえぎり、右往左往していました。 結果は塩抜きが不足で塩っ辛いベーコンながらも美味しく頂くことができました。 残念がら、2度目はないまま今日に至っています。

発色剤など余分な物を加えず自分で作ったベーコンは魅力的ですが、手間を考えるとシンドイと言うのが正直な感想です。 出来れば漏れ出る煙を抑えてレンジフードの下でも使えるようにしたいと思います。 RRP1320-1 は温度管理を自動化した燻煙器を作ってもう一度ベーコン作りにチャレンジしたいと言う個人的な目的で作り始めました。 RRP1320-1-04 はその制御装置の試作品です。 燻煙器と食材、制御装置を組み合わせて制御系を構成し、制御性能を評価出来ると思います。

燻煙器は下図のように内寸法で幅 30cm 高さ 40cm 程度の木製です。 8W程度と極小さなヒーター(セメント抵抗)で温度上昇試験を行います。 周囲温度に対して内部温度をどの程度高められるのかを確認して次のステップに進みます。

杉板で6面を囲った内部にアルミ製の隔壁を設けました。(下図奥側の壁) 隔壁の奥に簡単な冷却機構を設け、スモークウッドの発熱で温度が上がり過ぎるようなら自動的に冷やすことで食材が煮えないようにコントロールしたいと考えています。

DSC00237


生の木を板にしてもらったので、数日間の乾燥の間にそったり縮んだりして無様な外観になってしまいましたが、この試作の反省点を元に工夫を重ねるつもりです。 目下のところ燻煙時の湿気と保存中の乾燥で杉板がどの程度変形するのか、割れたりしないかが最大の関心事です。


以下は関連記事のインデックスにします。

燻煙器 熱抵抗 
 燻煙器の温度上昇試験の結果は、燻煙器内部に設置した 8.3W のヒーターで周囲温度 +5.7℃ で飽和しました。 このことから、試作した燻煙器の熱抵抗は約 0.69℃/W と考えています。


楽々PIC」は楽しい道具を作りながら学ぶブログを目指します。



ダウンロードコーナー
記事検索
アンケートに御協力下さい


アーカイブ
楽々PIC 宛てBlogMail


--- ご了承下さい ---

注意して記事を書いていますが、記事及びリンク先の情報による不利益について、一切責任を負い(負え)ません。
QRコード
QRコード
アクセスカウンター

    Atsuhiro Imai

    バナーを作成


    プロフィール

    jyosou_robot

    • ライブドアブログ