自信のない作業をやってるときは,間違いを早々にツっコんで頂いたほうがいいので,まめに更新します(笑。いろいろ調達して温度センサー部は一応動きました。とりあえず最新版の回路図。PWMコントロールの部分は部材は調達したけど,まだ作業してません。まずは温度センサーってことで。
センサーは予定どおりMCP9700を使いまして,ニクロム線ヒーター×2に加えて,環境温度というか外気温を測定するセンサーを追加しておきました。まだ具体的には考えてなくて漠然とした最終形のイメージですけど,外気温を見てヒーターのターゲット温度を自動的に決めさせようかな,と突然思いついたので追加しました。本当は湿度計も付けたほうが良いのかも知れませんが,AnalogInはまだ余ってるんで追々考えます。でも湿度センサーってちょっとお高いんですよね……。
あと,一応LCDも買いました。ヒーターコントローラに付けるかどうかは微妙ですけど,テストしてるときには便利~なので。
誤差は何か大きくて,本当はちゃんと較正すべきっぽいんですけど,前もちょっと書いたように,レンズを痛めるほどの温度上昇や夜露を防げないほどの温度下降がなければニーズは満たせるんで,とりあえず2~3度の誤差は良いかなと思ってます。
ソースは下な感じ。表示が一部崩れてるんですがブログ側の問題なので気にしないでください<直せよ。
センサーの温度は,公開されてるライブラリをそのまま使ってラクさせてもらいました。感謝感謝。
#include "mbed.h"
#include "TextLCD.h"
#include "LinearTempSensor.h"
//Serial pc(USBTX, USBRX);
TextLCD lcd(p24, p26, p27, p28, p29, p30, TextLCD::LCD16x2); // LCD(RS, E, DB4, DB5, DB6, DB7)
LinearTempSensor sensor[]={p18,p19,p20}; // sensor([0]=ambient, [1][2]=heater
int main()
{
float Vout[3], Tav[3];
int i,j;
lcd.cls(); // clear LCD
lcd.writeCommand (0x40); // create Celsius symbol and write to CGRAM
wait(0.000040f);
lcd.writeData((int)0x08);
lcd.writeData((int)0x14);
lcd.writeData((int)0x08);
lcd.writeData((int)0x06);
lcd.writeData((int)0x09);
lcd.writeData((int)0x08);
lcd.writeData((int)0x09);
lcd.writeData((int)0x06);
wait(0.000040f);
lcd.locate(0,0); // print fixed char to LCD
lcd.printf("1:");
lcd.locate(8,0);
lcd.printf("2:");
lcd.locate(0,1);
lcd.printf("0:");
lcd.locate(6,0);
lcd.putc(0x00);
lcd.locate(14,0);
lcd.putc(0x00);
lcd.locate(6,1);
lcd.putc(0x00);
for (i=0; i<500; i++)
{
for (j=0; j<3 ;j++)
{
Vout[j] = sensor[j].Sense(); // read sensor
Tav[j] = sensor[j].GetAverageTemp(); // calculate average temperature from 10 samples
}
lcd.locate(2,0); // print temperature to LCD
lcd.printf("%2.1f", Tav[1]);
lcd.locate(10,0);
lcd.printf("%2.1f", Tav[2]);
lcd.locate(2,1);
lcd.printf("%2.1f", Tav[0]);
//pc.printf("%f,%f %f,%f %f,%f\n", Tav[0],Vout[0], Tav[1],Vout[1], Tav[2],Vout[2]); //Debug
wait(0.1);
}
}
で,このセンサーを3芯のステレオミニジャックで接続できるようにして,2個をニクロム線に固定。だいたい3mぐらい伸ばすので,ノイズが載らないか心配ですが,これはもう少し作業が進んでからテストします。
えっ? しし座流星群ですか? 見に行ってません。


コメントする