電子工作11 甘酒と納豆用恒温器の製作

 

概要

  今回は、前の電子工作10の甘酒恒温器を更に改良し、同じ醗酵食品の納豆の醗酵にも適するように改良した。すなわち、目標は以下のようである。

 

1)納豆の醗酵温度域(40°C前後)も選択できるようにする。

2)サーミスタからの入力線の外れを検知し、動作を停止できるようにする。

 

回路をほんの一部、プログラムはかなり大きく変えた。12F675のGPIO.2(PIN5)に、甘酒と納豆モードをスイッチで切替えのための入力線を加えた。プログラムに関しては、甘酒と納豆モードの切替えを判別するための機能、更に、サーミスタからの入力線が何らかの理由で外れた場合に、システムを停止させる機能を加えた。

 恒温器の本体として、今回は、蓋付きのダンボール箱(無地良品製、ダンボールふた式・中・ベージュタイプ“X”、サイズ16X25X35cm、¥473)を使ってみることにした。ただ、そのままでは60W電球(17mm)でも熱が逃げて60°Cに達しないので(外気温15°C位で)、箱の外側に厚さ0.5cmの発泡スチロール製シート(ダイソーカラーボードNo.4)をはって断熱した。

 

        

                                   甘酒と納豆恒温器の全体図


 


                                       恒温器の内部


                              

                                 簡単に取り外しできるランプヒ−タ部分


 


回路

  今回の回路は、電子工作10のものとほぼ同じであるが、次のような変更を加えた。

1)       入力ポートGPIO.2 (Pin5)に、甘酒(55ー60°C)と納豆(40°C前後)の加熱を切替えるスイッチを設けた。すなわち、スイッチがOFF (Vdd)の時は5V ("H")が、ON (Gnd)の時は0V ("L")がこのピンに加わる。これをプログラムの中で検出し、判別する。

2) 内部の空気攪袢の為のファンをDC12Vの大き目(直径55 mm)のものに変え、風量と耐久性に配慮した。

3) したがって、PIC用電源5Vとファン用電源12Vは、ACアダプタ(DC12V)と三端子レギュレータ(5V)を組み合わせてつく

った。

 

最初、スイッチONの時、緑のLEDが点灯するように回路を組んだが、誤動作することが分かった。つまり、納豆モード(GPIO.2への入力"H")で動作している時に、甘酒モード(入力"L")に変えると、時として(10回に1回位の割合で)、モード変換が起らずに、納豆モードが続くことがあった。プログラムを変えたりしたが、なかなか直らない。試しに緑のLEDを除いてみた(これが有ると、ピンへの入力電圧は"L"で、1.87Vほど)。すると入力電圧は"L"で、0V になり、以後、誤動作がなくなった。PICでは、2V以下が"L"とみなされと思っていたのが間違いで、実際は、0.8Vであることが分かった。

この問題の解決で、最初につくったプログラム(ThN675.BAS)には何の問題もないことが分かった。


                                

 


                          甘酒と納豆モードを切替えるスイッチを付けた


 

 


プログラム

甘酒に加えて、納豆の加温も出来るようにしたので、両者の切替えをスイッチの状態を読込み分岐させる部分が加わった。IF GPIO.2=0 からI=350 の部分で、550(甘酒)、350(納豆)は器内温度のON/OFFコントロールの判別に使う係数である。さらに、サーミスタにつながるケーブルが何らかの理由外れた場合には(GPIO.0 (Pin7)の入力値が0Vになる)、プログラムが停止するようにした。“サーミスタケーブル外れチェック”の部分がそれである。したがって、Lampを連続してON/OFF制御中は、毎回必ず、従来からの“異常高温チェック”と今回の“ケーブル外れチェック”をすることになる。 下にプログラムのフローチャートを示す。

 


 

 


'****************** プログラミング備忘録 ********************

'ThN675.bas - modified on 2006.1.25 11:10 pm

'Title: Amazake+Natto Heater using 12F675

 

'Cable disconnect" & "High temp" checks were placed within Loop1 routine.

'Experienced that Ama/Natto mode switching didn't work correctly: Natto

'mode switching (ON/OFF at about 40C) sometimes continues even after the mode

'S/W in Natto mode is turned to Amazake mode when Red-LED was off.

'This problem was found to have been due to too high "L" level voltage (1.87V)

'added to GPIO.2. So Green LED was removed and the "L" level voltage dropped

'to 0V. After that the occurring of the error stopped.

'Ama/Natto mode change by S/W is feasible even while program is operating..

 

'The first program didn't work. The reason was to have defined "I" as "byte".

'It should have been defined as "word". This was the key point!

 

'************** プログラムの概要 *******************

'This program executes the following processes.

'(1) Select Amazake or Natto mode by checking the input from GPIO.2 (Pin 5).

'(2) Provide the step numbers to the Amazake and Natto modes.

'(3) Carry out “Cable disconnect check” by examining the level of Vin.

'(4) Carry out “Abnormally high temp check” by examining the level of Vin.

'(5) Then, the lamp heater control routine starts

‘(6) Return to (1)..

 

'************** PIC12F675のピン結合 *****************

'Pin 1: Vdd (from 5.10V of 3-pin regulator. used as +Ref for ADC)

'Pin 8: Vss (used as -Ref for ADC)

'Pin 7: GPIO.0: input - connected to (10K-thermistor + 10K-VR(0-5V))

                       'between Vdd and Vss

'Pin 6: GPIO.1: output - connected to +pole of SSR (Solid State Relay)

                        'via 330 ohm (exp'ly decided)

'Pin 5: GPIO.2: input to distinguish between Amazake ("L") and Natto ("H")

'modes, connected to Vdd via 10 K.                       

'Pin 4: MCLR - connected to Vdd via 4.7K (external reset)

 

'*************** ここからがプログラム本体 ***************

ADCON0=%10000011  '=131 (decimal)

'bit7=1(right justified), bit6=0 (Vdd used as volt reference for ADC),

'bit5-4=00 (unimplemented), bit3-2=00 (channel 0-An0),

'bit1=1(starts right away), bit0=1 (on operation)

 

ANSEL=%00010001   '=17 (decimal), sets Fosc/8 and GPIO.0 as ADC input

'bit7=0 (unimplemented), bit6-4=001 (Fosc/8?),

'bit3-2-1=000 (Digtal I/O pins), bit0=1(Analog input)

 

TRISIO=%00001101  'GPIO.0 (thermistor), GPIO.2 (Ama/Natto mode selection),

                   'and GPIO.3 (Reset) are inputs.

CMCON=7          'turns off comparator function

 

Define ADC_BITS 10       '10-bit ADC used

Define ADC_CLOCK 3      'Internal clock used

Define ADC_SAMPLEUS 50  'Sample timing

 

Vin var word       'Vin - voltage input from thermistor+VR for box temp

I var word         'I - two threshold step values for Amazake and Natto

                  'Note I is larger than a byte (256), e.g. 350, 550, so

                  'use "Word"(16-bit,65535 max). Otherwise doesn't work!!! 

Lampht var GPIO.1  'Lampht - Lamp heater

 

Start: 

        '******* 甘酒か納豆モードの選択 ********  

Loop1:  If GPIO.2=0 Then  'Check Ama/Natto mode select S/W ("0"="L" Amazake).

        I=550            'Step number for Amazake (55 - 60C)

        Goto LampON     

        Endif           'Otherwise go to the next step

        I=350            'Step number for Natto (about 40C)

       

LampON: High Lampht     'Lampht -> ON (turn on)

       

        '****** サーミスタケーブル外れチェック ******

        'When R-LED is on, the program goes to Halt if thermistor cable to

        'GPIO.0 (pin 7) is disconnected (proved!)

 

        ADCIN 0, Vin  'Read Vin from GPIO.0 (AN0).

        Pause 50          

        If Vin=0 Then  'Vin was found to become 0 V (actually measured) when

                      'the cable to GPIO.0 was disconnected.

        Goto Halt

        Endif

       

        '********** 異常高温のチェック *********

        ADCIN 0, Vin   'Read Vin from GPIO.0 (AN0).

        Pause 50       'Wait 0.05 sec (Delay but not polling is used).

        If Vin>625 Then  'This value was exp'ly found (0 - 1023 steps)

        Goto Halt       'Shut down the system.

        Endif

       

        '********* ランプヒータ制御ルーチン ********

        ADCIN 0, Vin   'Read Vin from GPIO.0 (AN0).

        Pause 50          

        If Vin>I Then    'This value was exp'ly found (0 - 1023 steps)       

        Goto LampOff   'Go to Lamp-off routine

        Endif

        Goto Loop1

       

LampOFF: Low Lampht   'Lampht -> OFF (turn off)

         Pause 10000   'Wait 10 sec.

Loop2:   ADCIN 0, Vin   'Read Vin from GPIO.0.

         Pause 50

         If Vin<I Then

         Goto Start    'Go to Start

         Endif

         Goto Loop2

        

Halt:    Low Lampht    'Turn OFF the lamp heater - shut down the system.        

         End          'End the operation.

‘********** プログラム本体はここまで ***************

 

‘********** 秋月のプログラマで焼く時の設定 *********          

'Note: AKI Programmer's configs. - FOSC: INTOSC (GP4:I/O), WDTE: Enable,

'PWRTE: Enable, MCLRE: MCLRpin (external SW), BODEN: Enable,

'CP/CPD: Not protected 

 

**** 上記プログラムのHex File(ThN675.HEX) の内容 ****

:020000040000FA

:100000005C280F39A00083161F088F3930389F00F5

:1000100083120310A00DA00D1F08C1392004013860

:100020009F000030A10032302B209F149F1816280B

:100030001E08A10083161E085728A301A200FF3046

:10004000A207031CA307031C57280330A100DF30BD

:100050002B201F28A101E83EA000A109FC30031CB1

:100060003428A00703183128A0076400A10F312805

:1000700020183A28A01C3E2800003E280800A200B4

:1000800003304728A20006304728A2000530A80008

:1000900023082102031D4E282208200204300318E1

:1000A0000130031902302805031DFF305728831340

:1000B000031383126400080083309F0083161130FD

:1000C0009F000D30850083120730990064000519E8

:1000D0006E282630B8000230B90072285E30B800B1

:1000E0000130B90085148316851000308312012079

:1000F000BA002108BB0032301D203A08A0003B089E

:10010000A100A30100304520031D8728C728003027

:100110000120BA002108BB0032301D203A08A0009F

:100120003B08A1000230A30071304220031D992832

:10013000C72800300120BA002108BB0032301D2042

:100140003A08A0003B08A1003908A3003808422063

:10015000031DAB28AC2866288510831685108312F2

:100160002730A30010301E2000300120BA002108E3

:10017000BB0032301D203A08A0003B08A10039081E

:10018000A30038083F20031DC6286628B428851020

:0A0190008316851063008312CA284D

:02400E00FC3F75

:00000001FF

:

 

 納豆をつくってみた

ネット上に載っている様々な自家製納豆づくりの情報をもとに、今回製作した恒温器を用い、納豆菌の代わりに市販の納豆を使って実際に納豆をつくってみた。

材料: 大豆(SAVINGS、国産250g入り)、市販のパック入り納豆(3パック¥100のもの)

容器: 蓋付きポリプロピレン製(1.5L、20X15X8(H)cm、電子工作10で使ったものと同じもの)

手順: 大豆約100gを一晩水に浸けた後、圧力釜で、箸先でちょっと押すとすぐ潰れてしまう程度に、20分位煮た。 予め熱

湯で殺菌した容器に、パック入り納豆(全量の4分の1位)を入れ、湯を20mlほど加えてかき混ぜた。次いで、水切り

してある煮豆を加え、納豆菌が良く分散するように、スプーンでかき混ぜた。蓋をして、容器を恒温器に入れ、加熱を

開始した。この容器は、もともと即席ラーメンを電子レンジでつくるのに使うものなので、蓋と容器本体の間に3つの

蒸気抜き口が設けてあり、空気が出入りできるので、醗酵に適すと思われる。

食感: 一応糸を引き、独特の臭いもして納豆らしいが、市販品のようではない。柔らかい煮豆を食しているような感じである。

大豆が大きいこと、それに納豆菌として使った市販の納豆を溶いた水の量が多かったようである。

 

 

                  市販の納豆(パックの約4分の1)を20mlの湯に溶いたもの 


 


                       上記に煮豆を加え、良くかき混ぜたもの(このあと、24時間醗酵させた)


 


                      40°Cで約24時間醗酵させた後、4日間冷蔵庫で保管したもの


 

 


後日、納豆菌(商標“納豆素” 3g入り、大豆30kg処理用、¥630)を新宿京王デパート8Fの富澤商店で入手し、それを使って納豆をつくってみた。材料、容器、それに、手順は上記の場合とほぼ同じ。ただ、今回は型崩れしないように大豆をより慎重に扱い、また、米粒の大きさに相当する位の量の納豆菌(乾燥大豆100gに対して)を、容器中で、80°位の湯、約10mlに溶き、その容器にまだ熱い状態(70−80°C)の煮豆を加えて、慎重にかき混ぜた。そして、40°Cに設定した恒温器で24時間保温した。

 

                          納豆菌(商標“納豆素”)―さらさらした粉末


 


                   納豆菌を使ってつくったもの。24時間程度で良く醗酵がすすむことがわかる。


 


ポイント

1)     雑菌の繁殖を防ぐため、煮豆が熱い内(80°C位?)に納豆菌を混ぜる。

2)     混合用のスプーン、醗酵容器、布きんなど、すべて熱湯や蒸気で殺菌する。

3)     醗酵容器の上蓋の下に水滴を取るために、殺菌した布きん、または、クッキングペーパーをはさむ。

4)     醗酵容器内の煮豆は最大で3層まで。

5)     空気(酸素)の流通にも配慮する。

6)     煮豆の表面が傷まないように配慮する。

7)     小さい大豆を使う方が、良く糸をひく納豆ができるようである。

8)     24時間の醗酵終了後、冷蔵庫で2−3日熟成すると、本来の味やまろやかさが出るようである。

 

 余談

    醗酵用の恒温器づくりも今回で3台目、材料集め、電子回路づくり、それに、プログラムの作成に、大分要領が良くなってきた。経験とは不思議なもの。とにかく自分で作ってみると、いろんなことが勉強できる。もっとも、温度の自動制御とは言っても、スイッチをON/OFFするだけの超簡単なものだが。もう一つ、この恒温器を甘酒と納豆の醗酵に交互に使う場合には、お互いの菌が汚染しあう可能性があるので、滅菌する必要があると思われる。方法としては、恒温器の内部を長時間太陽に当てる、甘酒モード(60°C、または、VRを回して温度を上げて)で蓋を一部開け加熱する、自家製ビール醸造用の殺菌アルコールを使うなどが考えられる。小生の場合、納豆をつくった後に甘酒をつくる時、電子工作6で使った殺菌灯ナショナルGL-30を2時間ほど、位置を変えて照射した。効果のほどは定かではないが。

市販の納豆を使ってつくった納豆も、冷蔵庫で保存しながら、インスタントラーメンなどに混ぜて食し、結局、2週間ほどなくなった。今回の納豆菌でつくったものは、見栄え、味とも、すこぶる良好。

 

Menu Pageへ戻る    

Topへ戻る