測定した温度データを、PICマイコンを利用してパソコンに取り込む実験をしてみました。
今回は櫻木嘉典著「Excelを用いた計測制御入門」を参考にして、温度センサーLM35DZ、 PICマイコンは16F88を使用した回路です。
ブロックダイヤグラム
![](https://blogimg.goo.ne.jp/user_image/2a/d3/a14689538c842baa76da74066d8a8e63.jpg)
前回にクイックポジ感光基板を使って作っておいた基板に組み立てしています。
![](https://blogimg.goo.ne.jp/thumbnail/6a/50/e9e5bbcd3b19e3b73ecb9a7bacbd18ce_s.jpg)
PICのプログラムは、CCS-Cを使ってC言語で作られたものを、書籍付録のCD-ROMからインストールした後、MPLAB IDE でコンパイラしてPICマイコンに書き込みました。
プログラム抜粋
//メインループ
while(1)
{
i++; //インクリメント
output_low(Led_G); //Led点灯
set_adc_channel(0); //チャンネル0を選択
delay_us(50); //AD変換時間
volt = read_adc(); //AD変換結果読み込み
volt = (volt * 0.003);
volt = (volt / 5); //温度換算計算
volt = (volt * 100); //温度換算計算
printf("%4lu ondo =%2.1f [Degc]¥r¥n", i , volt);//データ書き込み
output_high(Led_G); //Led消灯
delay_ms(1000); //1s待ち
}
PIC 16F88 にプログラム書き込み中
![](https://blogimg.goo.ne.jp/thumbnail/1a/42/d7d6176e31553a4e42fd67098da71e96_s.jpg)
今回のターミナルソフトは、最近のパソコンに、「RS232C」 の端子が装備されていないことを考慮し、フリーソフトのRs232cを利用した上に、「RS232C」 と 「USB」の変換基板を併用しております。
データの取り込み状況はしたの図のようになります。
![](https://blogimg.goo.ne.jp/thumbnail/7c/52/605de5080484cc33c652257d62e6fee8_s.jpg)
更に、温度測定の精度を上げるために、A/D変換用の基準電圧を別に作成して処理をしております。また、パソコンに取り込むデータはA/D変換出力を温度に変換した後にパソコンに表示しております。
完成後の温度較正の作業状況は下の写真になります。
![](https://blogimg.goo.ne.jp/thumbnail/3e/2d/4944d7188ad2bfe2d53e7d2a2104e1d4_s.jpg)
パソコンに出力されたRs232cの画面
![](https://blogimg.goo.ne.jp/thumbnail/53/fd/d250054d28744eeb4f1790bcd796f25d_s.jpg)
次の課題は、この回路を発展させPICマイコンから計測データをパソコンのExcelに直接入力できるようにすることです。
今回は櫻木嘉典著「Excelを用いた計測制御入門」を参考にして、温度センサーLM35DZ、 PICマイコンは16F88を使用した回路です。
ブロックダイヤグラム
![](https://blogimg.goo.ne.jp/user_image/2a/d3/a14689538c842baa76da74066d8a8e63.jpg)
前回にクイックポジ感光基板を使って作っておいた基板に組み立てしています。
![](https://blogimg.goo.ne.jp/thumbnail/58/1c/816ed88b4bc3d7dbb40ebbc4a120ebda_s.jpg)
![](https://blogimg.goo.ne.jp/thumbnail/6a/50/e9e5bbcd3b19e3b73ecb9a7bacbd18ce_s.jpg)
PICのプログラムは、CCS-Cを使ってC言語で作られたものを、書籍付録のCD-ROMからインストールした後、MPLAB IDE でコンパイラしてPICマイコンに書き込みました。
プログラム抜粋
//メインループ
while(1)
{
i++; //インクリメント
output_low(Led_G); //Led点灯
set_adc_channel(0); //チャンネル0を選択
delay_us(50); //AD変換時間
volt = read_adc(); //AD変換結果読み込み
volt = (volt * 0.003);
volt = (volt / 5); //温度換算計算
volt = (volt * 100); //温度換算計算
printf("%4lu ondo =%2.1f [Degc]¥r¥n", i , volt);//データ書き込み
output_high(Led_G); //Led消灯
delay_ms(1000); //1s待ち
}
PIC 16F88 にプログラム書き込み中
![](https://blogimg.goo.ne.jp/thumbnail/1a/42/d7d6176e31553a4e42fd67098da71e96_s.jpg)
今回のターミナルソフトは、最近のパソコンに、「RS232C」 の端子が装備されていないことを考慮し、フリーソフトのRs232cを利用した上に、「RS232C」 と 「USB」の変換基板を併用しております。
データの取り込み状況はしたの図のようになります。
![](https://blogimg.goo.ne.jp/thumbnail/7c/52/605de5080484cc33c652257d62e6fee8_s.jpg)
更に、温度測定の精度を上げるために、A/D変換用の基準電圧を別に作成して処理をしております。また、パソコンに取り込むデータはA/D変換出力を温度に変換した後にパソコンに表示しております。
完成後の温度較正の作業状況は下の写真になります。
![](https://blogimg.goo.ne.jp/thumbnail/3e/2d/4944d7188ad2bfe2d53e7d2a2104e1d4_s.jpg)
パソコンに出力されたRs232cの画面
![](https://blogimg.goo.ne.jp/thumbnail/53/fd/d250054d28744eeb4f1790bcd796f25d_s.jpg)
次の課題は、この回路を発展させPICマイコンから計測データをパソコンのExcelに直接入力できるようにすることです。
※コメント投稿者のブログIDはブログ作成者のみに通知されます