60歳からの電子工作ノート

生涯学習として取り組んでいます。

新ペルチェ制御用ボードの試作(ソフトウェア 1)

  全体のフローとタッチキー入力が主な内容です。

 

 

全体の処理

図1. 全体のフロー

図2. 割り込み一覧

図3. 処理タイミング

抵抗膜式タッチパネルのタッチ位置計測

CPUのI/O ポート、バッファIC、ADコンバータを使用してタッチ位置を得ます。

図4. タッチ位置検出の構成図

・X位置の測定

X+,X-に電圧を印加するため、SW0とSW1をONにします。またSW2とSW3をOFFにします。Xの位置を得るため、Y+からAN004として読み出します。

図5. X位置測定時の動作

・Y位置の測定

Y+,Y-に電圧を印加するため、SW2とSW3をONにします。またSW0とSW1をOFFにします。Yの位置を得るため、X+端子からAN003として読み出します。

図6. Y位置測定時の動作

・Z1,Z2 の測定

Y+,X-に電圧を印加するため、SW0とSW3をONにします。SW1とSW2をOFFにします。

Z1を得るため、X+端子からAN003として読み出します。Z2を得るため、Y-端子からAN002として読み出します。

図7. Z1,Z2測定時の動作

 

タッチキーの入力判定処理

10msec毎にタッチ判定を行います。キー入力が確定すると、キー入力処理(100msec毎に実行)に知らせるフラグをセットします。次の手順で行います。

1) 電圧印加とA/D変換

各端子(X+,X-,Y+,Y-)に電圧を印加し、X,Y,Z1,Z2のAD変換値を得ます。

図5. タッチパネルへの電圧印加とA/D変換

2)タッチ圧の計算

 タッチ圧 Rzは次式で得ます。

 Rz = Rx\times\dfrac{X}{4096}\times\left(\dfrac{Z_2}{Z_1} - 1\right)

 XはX軸測定値、RxはタッチスクリーンのXプレート(フィルム側)の抵抗値 約 270[Ω]。

 資料1*1  参照。

3) タッチされたキーの特定

タッチ圧が40[Ω]を超えていたら「タッチ無し」とします。タッチ圧が40[Ω]を以下ならば「タッチ有」とし、位置(X,Y)から押されたキーを判定します。位置データは、読み出したA/D値(12bit)の上位8biを使用します。(例: X測定時、読み出したA/D値(上位8bit)が 0x40~0x5Fの範囲であり、かつY測定時、A/D値(上位8bit)が0x20~0x38であれば、STOP/RUNがタッチされたと判断。)

図6. タッチキーの位置と判定用データ

4) キーの入力判定

  タッチ状態が4回継続後、非タッチにればキー入力されたとします(キー入力確定)。100msec毎に処理されるキー入力処理に知らせるフラグをセットします。▼(Down)と ▲(Up)は、250msec以上、タッチ状態が継続すれば、キーが長押しされているとします。

図7. 一度押しの判定タイミング(最短)

図8. 長押しの判定

図9. 一つのキーに対する一度押し、長押しの判定

キー入力処理

 入力判定(10msec毎に実施)結果は、キー入力処理(100msec毎)で表示変更のための処理が行われます。

図10. キー入力処理内容 (100msec毎)

図11. キー入力処理

表示処理

PV,SV等のパラメータと値を表示します。100msec毎に実施します。

図12. 表示処理

パラメータの保存

E2データフラッシュのブロック0 (0x0010 0000~0x0010 3FFF)へ、PIDパラメータを保存しています。SV,P,I,D,MR,Hys は単精度浮動小数点データ(4byte)、heat_cool, pid_typeは 1byteのデータとして保存されます。(pid_typeは未使用)

CRC-8(x^{8} + x^{5} + x^{4} + 1 )(初期値 0xff)が付きます。CPU内蔵のCRC演算器はパソコンとの通信時に使用し競合する可能性があるため、ここでは使用していません。

図13. PIDパラメータの保存


熱電対による温度計測

熱電対の断線検出用の抵抗を追加しました。

参考資料:資料2*2、資料3*3
資料4*4 

図14. 熱電対入力部の回路

図15. バーンアウトの実験結果

PID 制御

資料5*5と同じです。

ただし、MVの出力ポートはMTIOC4A,4C を使用しています。

アラーム出力

基板上に4つのLEDが付いています。次の意味があります。

ALM_1  : ROM-CRCエラー

ALM_2  : E2 データフラッシュエラー (CRCエラーまたは書き込み失敗)

ALM_3  : 熱電対の断線エラー

ALM_4  : パソコンとの通信エラー

*1:資料1「I2C通信とSPI通信(I2C通信とSPI通信(温湿度表示器の試作)」  https://vabc.hatenadiary.jp/entry/2022/11/22/111325

*2:資料2「ペルチェ制御用ボードの試作(熱電対による温度測定)」 https://vabc.hatenadiary.jp/entry/2022/01/22/165620

*3:資料3「 熱電対・変換器間の導線による温度測定誤差と対策」 https://www.m-system.co.jp/mstoday/plan/mame/2012-2013/1210/index.html

*4:資料4「A Basic Guide to Thermocouple Measurements」SBAA274–September 2018

*5:資料5「ペルチェ制御用ボードの試作(PID制御のプログラム)」https://vabc.hatenadiary.jp/entry/2022/02/15/163249