最近は、RXマイコンが多くて、R8Cはご無沙汰だった。
R8Cは、ちょっとしたデバイスの試験なら、気軽にできる。
以前に、オーブントースターを温度制御したくて、買っておいた、
k熱電対センサーと、モジュールを使って、温度を表示してみた。
MAX6675/Kタイプ 熱電対
MAX6675は、アンプとA/Dコンバーターが一体になった
ICで、出力はSPI、電源も3V~5Vまで使え、0.25℃
の分解能、0℃~1024℃まで計測でき、便利なICだ。
プログラムは、ICからデータを読み出して、表示するだけの物
だが、チップ・テンプレート・クラスに新たに、「MAX6675.hpp」
を追加した。
MAX6675 は、初期化の必要も無く、単にデータを読み出すだけの
ものだ。
サンプルでは、以下のように定義した。
※MAX6675 の SPI は、出力(MOSI)は使わないので「NULL_PORT」と
している。
// P1_0(20): typedef device::PORT<device::PORT1, device::bitpos::B0> SPI_SCK; // P1_1(19): typedef device::PORT<device::PORT1, device::bitpos::B1> MAX_CS; // P1_2(18): typedef device::PORT<device::PORT1, device::bitpos::B2> SPI_SDI; typedef device::spi_io<SPI_SCK, device::NULL_PORT, SPI_SDI> SPI; SPI spi_; typedef chip::MAX6675<SPI, MAX_CS> MAX6675; MAX6675 max6675_(spi_);
初期化は、以下のようにすれば良い。
// SPI 開始 spi_.start(); // MAX6675 開始 max6675_.start();
温度表示:
auto v = max6675_.get_temp(); utils::format("%6.3f\n") % v;
※当然ながら、RXマイコンでも同じように使える。
GitHub にサンプルプロジェクトを追加した。
MAX6675サンプル