全体表示

[ リスト ]

噴霧機基板のデジタル化も、
詳細部分の作りこんでいくことになりました
 
まずはタイマーの時間調整です
 
PICを使用してタイマー動作させています
タイマーボタンを押すと、ONタイマー(8時間経過後、電源ON)
もう七度押すとOFFタイマー(8時間経過後、電源OFF)
 
仕組みはこうです
 
タイマー使用の有無に関わらず、プログラムはループしています
電源スイッチやタイマースイッチ、
風量スイッチに液面センサーなどのON / OFF状態を確認して、
プログラムの先頭に戻る
という動作を繰り返しています
 
風量の 大/中/小 とタイマーの 無し/ONタイマー/OFFタイマーの組み合わせで
9パターンのプログラムループを作りました
 
タイマーボタンが押されると、
○タイマー無し ループから
○ONタイマー ループにジャンプします
 
プログラムの途中には更に小さなループ(時間制御ループ)があって、
その小さなループを決められた回数通ると、
タイマー終了となって、次の動作(ONタイマーなら電源ON,OFFタイマーなら電源OFF)
となります
 
時間制御ループは
NOP命令(”何もしない”というプログラム命令)が基本となっています
いくつかのNOP命令を組み合わせて(ここも複数回のループ)0.1秒を作ります
この0.1秒を250回ループさせると25秒になります
この25秒を144回ループさせると1時間になります
この1時間を8回ループサセルト8時間になります
 
これで8時間タイマーの出来上がりです
と、ここまでは利論値です
途中で各部スイッチやセンサーの状態確認プログラムがありますので
誤差が生じてしまいます
 
こんなときに便利なのがMPLABに用意されているストップウオッチです
 
イメージ 1
 
プログラム途中に作ったブレイクポイントから次のブレイクポイントまでの所要時間を計測できます
イメージ 2
 
実測(シュミレーションですが・・・)しながら、
ループの回数を変えたり、
NOPの個数を変えたりしながら誤差を修正していきます
 
イメージ 3
 
最終的に、25.00秒のところを実測地で25.000045秒にしまで追い込みました
8時間で約13秒のズレです
タイマーとしては優秀なほうでは無いでしょうか
 
出来上がったプログラムをPICに書き込みます
イメージ 4
 
イメージ 5
 
書き込みの済んだPICをテスト基板に載せて
実測します
イメージ 6
イメージ 7
 
実際に基板に組み込んで実測したところ、
誤差は8時間で15秒
まずまずの結果です
 
なにしろアナログ基板のときは、コンデンサーの放電で制御していたので
温度による影響をまともに受けましたし
コンデンサーの良し悪しや劣化にも影響を受けて
誤差が1時間程度になっていました
 
さすがデジタル
 

この記事に

閉じる コメント(0)

コメント投稿

顔アイコン

顔アイコン・表示画像の選択

名前パスワードブログ
絵文字
×
  • オリジナル
  • SoftBank1
  • SoftBank2
  • SoftBank3
  • SoftBank4
  • docomo1
  • docomo2
  • au1
  • au2
  • au3
  • au4
投稿

開く トラックバック(0)


.


みんなの更新記事