Version 3 (modified by 16 years ago) ( diff ) | ,
---|
MAX6675 SPI接続K型熱電対温度計
K型熱電対を使用した温度計モジュール。SPIでつなぎます。 校正不要。0℃~1023℃、0.25℃刻み。 ライターの火の温度とか測れちゃいます!
Arduinoなら、そのままデジタル8番~13番の位置に差し込めば動きます。
熱電対は比較的熱容量が小さいので、温度変化の検出が早いです。 常温程度の温度をモニタしていても、案外面白いです。
特徴
概要:
- K型熱電対(ミニチュアコネクタ使用)
- SPI接続(読み出しのみ)
いい点:
- 校正不要
- 0℃~1023℃の広範囲を測定
- Arduinoなら、いきなり差し込んで動く。
悪い点:
- 0.25℃刻みなのがちょっと粗い。
- 0℃以下を測定できない。
用途
- ハンダごてのコテ先温度計
- なんちゃってリフロー
- 恒温槽
- 各種実験
キット販売検討中
キットとして販売することを検討中です。 チップ部品が2個あるのがもしかしたら問題。 SOICは1.27mmピッチだからなんとかなるでしょう。 1005のチップコンデンサは、人によってはキツイかもしれません。 虫眼鏡、ピンセット、細いハンダごて、細いハンダ、フラックスが必須です。
内容物:
- ボード
- Maxim MAX6675(SOIC 8ピン)
- チップコンデンサ(1005サイズ)
- K型熱電対専用レセプタクル基板直付け用(ミニチュア)
- ピンヘッダ6ピン
- K型熱電対(安物なので高温だと被覆が燃えます)
- K型熱電対専用プラグ(ミニチュア、黄色)
3,000円くらいかなあ。MAX6675が高いんです。
回路図とパターン図は、そのうち掲載します。 オープンソースだなんてほどのことはありません。
差し上げます(完成品)
ハンダ付け済みの完成品を2個用意しました。抽選で差し上げます。 こんなマニアックな物、欲しい人いるでしょうか。 もしも、欲しい方がいらっしゃいましたら、以下の内容をメールでお送りください。 当選した方には、こちらからご連絡差し上げ、お送り先のご住所などをおたずねします。
MAX6675ボードがすごく欲しい! ハンドル名:(何かてきとうにお名前を決めてください) 使い途:(もらったら何に使うか書いてください) キットの価格を評価してください(××、×、△、○、○○の5段階) 1,000円: 1,500円: 2,000円: 2,500円: 3,000円: 3,500円: 4,000円: 4,500円: 5,000円:
1,000円は、間違いなく無理なんですけど、いちおう。
もしかしたら、ハンドル名と使い途を公表させていただくかもしれません。
なるべく、面白いand/or有意義な使い途の方に差し上げたいと思います。
メールの宛先は、「sales@
」の後にこのドメイン名。
メールの件名は、「MAX6675」にしてください。
締め切りは2009年3月21日(ぐらい)でお願いします。
MAX6675.pde
#include "SPI.h" #define VCC 8 #define GND 9 #define SLAVE 10 void setup() { pinMode(GND, OUTPUT); pinMode(VCC, OUTPUT); digitalWrite(GND, LOW); digitalWrite(VCC, HIGH); Serial.begin(9600); SPI_Master.begin(SLAVE); } void loop() { int value; delay(500); SPI_Master.enable(SLAVE); value = SPI_Master.read() << 8; value |= SPI_Master.read(); SPI_Master.disable(); if ((value & 0x0004) != 0) Serial.println("Error"); else Serial.println((value >> 3) * 0.25); }
SPI.cpp
#include "SPI.h" boolean SPI_Master_Class::initialized_ = false; int SPI_Master_Class::enabled_ = -1; void SPI_Master_Class::begin(int slaveselecter) { if (!initialized_) { initialized_ = true; enabled_ = -1; pinMode(SS, OUTPUT); // Must be set as OUTPUT before SPE is asserted. pinMode(MOSI, OUTPUT); pinMode(MISO, INPUT); digitalWrite(MISO, HIGH); // Pull-up pinMode(SCK, OUTPUT); SPCR = (1<<SPE)|(1<<MSTR); // SPE: SPI Enable; MSTR: Master byte garbage; garbage = SPSR; garbage = SPDR; } if (slaveselecter != SS) pinMode(slaveselecter, OUTPUT); digitalWrite(slaveselecter, HIGH); // Disable } void SPI_Master_Class::enable(int slaveselecter) { disable(); digitalWrite(slaveselecter, LOW); enabled_ = slaveselecter; } void SPI_Master_Class::disable() { if (enabled_ >= 0) { digitalWrite(enabled_, HIGH); enabled_ = -1; } } byte SPI_Master_Class::write_and_read(byte data) const { SPDR = data; while (!(SPSR & (1<<SPIF))) ; return SPDR; } void SPI_Master_Class::write(byte data) const { write_and_read(data); } byte SPI_Master_Class::read() const { return write_and_read(0x00); } SPI_Master_Class SPI_Master;
SPI.h
#ifndef __SPI_H__ #define __SPI_H__ #include "WProgram.h" class SPI_Master_Class { public: static void begin(int slaveselecter); void enable(int slaveselecter); void disable(); byte write_and_read(byte data) const; void write(byte data) const; byte read() const; private: static boolean initialized_; static const int SS = 10; static const int MOSI = 11; static const int MISO = 12; static const int SCK = 13; static int enabled_; }; extern SPI_Master_Class SPI_Master; #endif //__SPI_H__
Attachments (3)
- 1.JPG (60.3 KB ) - added by 16 years ago.
- 2.JPG (76.1 KB ) - added by 16 years ago.
- 3.png (3.7 KB ) - added by 12 years ago.
Download all attachments as: .zip