- Thermocouple (열전대)
- Thermocouple amplifier (MAX31855, 왜 필요한지)
- Thermocouple with arduino (회로 연결 & 코딩)
Thermocouple (열전대)
열전대에 관한 간단한 내용들은 아래 글을 참고하면 좋을 것입니다.
2020/09/12 - [정리, 공부해요/전기, 전자, 통신] - 열전대(써모커플, Thermocouple) - 원리, 종류
Thermocouple amplifier (MAX31855, 왜 필요한지)
이번 포스팅에서는 열전대 값을 아두이노로 읽는 것을 정리 해볼까 합니다.
그 이후는 LCD 화면에 띠우고, Excel 파일로 실시간으로 데이터를 Kipping 하는 법 등등 지금 진행중인 실험 셋업의 완성까지 포스팅 하려 합니다.
열전대는 간단히, 열의 전도도가 다른 두 금속을 사용해 특정 지점의 온도를 전기 값으로 받아들이는 센서입니다.
하지만 열전대를 아두이노에 바로 쓰기에는 신호가 너무 미비하여 그를 증폭시켜줄 증폭기가 필요하다고 합니다.
대부분의 증폭기는 하나의 증폭기당 하나의 열전대를 달아 사용할 수 있습니다.
위의 사진은 몇가지의 열전대 증폭기를 비교해둔 것입니다.
열전대를 고를 때 측정가능한 온도범위를 보고 고르듯 (열전대의 종류는 위에서 언급한 링크에 정리해뒀습니다.)
증폭기 또한 그를 염두해 두어야 합니다.
비교적 저렴한 MAX6675 증폭기를 쓸 수 있지만, 0도 밑의 온도를 측정할 때는 좋지 않습니다.
저의 이번 프로젝트는 -180도 부터 시작하여 상온까지의 온도를 측정할 필요가 있기에 MAX31855를 사용하게 되었고,
그 증폭기에 (연구실에 있기도 하여) K-type 열전대를 연결하여 사용했습니다.
MAX6675와 MAX31855 입니다.
Thermocouple with arduino (회로 연결 & 코딩)
증폭기의 준비 & 축전지의 필요성
먼저 증폭기를 준비하겠습니다.
MAX31855를 구입하면, 커넥터들이 연결된 제품도 있겠지만,
저는 연결되지 않은 (비교적 저렴한) 제품을 구입했습니다.
간단히 납땜을 해주면 되는데,
한 가지 주의할 점이 있습니다.
관련 정보를 수집하며 몇몇 사이트/블로그에서 열전대와 증폭기의 사용에 노이즈 문제가 있었고,
(증폭기의 납땜 부분이 바닥, 혹은 어딘가 닿는 것만으로 생기는 작은 노이즈가 영향을 줄 수 있습니다.)
그를 잡아주기 위해 사진과 같이 0.01 ~ 0.1 uF Capacitor를 달아주어 그 문제를 해결했습니다.
핀의 의미
MAX6675와 MAX31855 둘 다 해당되는 내용입니다.
- CLK (clock): microcontroller(우노보드)로 들어가는 값으로, 데이터가 들어갈 때 필요한 시간 값입니다.
- DO (data out): microcontroller로 부터 나오는 값으로, 열전대로부터 읽은 값입니다.
- CS (chip select): microcontroller로 들어가는 값으로, 열전대로부터 데이터를 읽기 시작하는 신호를 주는 핀이라 합니다.
몇몇 포스팅에서 여러 열전대를 사용 할 때, DO나 CS 핀을 아두이노의 한 핀에서 여럿 뽑아내던데 (하나의 핀에서 여러 열전대로 연결하던데), CLK는 그게 가능하지만 다른 핀은,, 가능할지 모르겠네요 (다음 포스팅 때는 이 부분을 해보고 추가로 포스팅 하겠습니다.)
회로 연결
열전대 하나 연결하는 코드, 테스트
코드는 간단합니다.
라이브러리에 있는 코드를 사용하면 되는데,
우선 라이브러리에 필요한 내용을 넣어줄 필요가 있습니다.
아두이노 스케치 파일에서
스케치 ==> 라이브러리 포함하기 ==> 라이브러리 관리 클릭하시고
보라색 검색 창에 adafruit max31855를 검색하시면
초록색 박스 안의 저 라이브러리가 나옵니다.
저는 이미 다운로드를 한 상태이기에 설치 버튼이 비활성화 되어있지만,
활성화 되어 있는 설치를 누르고, 추가적으로 필요하다는 라이브러리를 다 같이 다운로드 해주시면 됩니다.
#include <SPI.h>
#include "Adafruit_MAX31855.h"
// Default connection is using software SPI, but comment and uncomment one of
// the two examples below to switch between software SPI and hardware SPI:
// Example creating a thermocouple instance with software SPI on any three
// digital IO pins.
#define MAXDO 3
#define MAXCS 4
#define MAXCLK 5
// initialize the Thermocouple
Adafruit_MAX31855 thermocouple(MAXCLK, MAXCS, MAXDO);
// Example creating a thermocouple instance with hardware SPI
// on a given CS pin.
//#define MAXCS 10
//Adafruit_MAX31855 thermocouple(MAXCS);
void setup() {
Serial.begin(9600);
while (!Serial) delay(1); // wait for Serial on Leonardo/Zero, etc
Serial.println("MAX31855 test");
// wait for MAX chip to stabilize
delay(500);
Serial.print("Initializing sensor...");
if (!thermocouple.begin()) {
Serial.println("ERROR.");
while (1) delay(10);
}
Serial.println("DONE.");
}
void loop() {
// basic readout test, just print the current temp
Serial.print("Internal Temp = ");
Serial.println(thermocouple.readInternal());
double c = thermocouple.readCelsius();
if (isnan(c)) {
Serial.println("Something wrong with thermocouple!");
} else {
Serial.print("C = ");
Serial.println(c);
}
//Serial.print("F = ");
//Serial.println(thermocouple.readFahrenheit());
delay(1000);
}
그리고 이 코드는 SerialThermocouple 예제 입니다.
열전대 둘 연결하는 코드
포스팅이 생각보다 길어져서
열전대 둘 연결하는 내용과
그를 LCD 화면에 바로바로 띠워주는 것은 따로 포스팅 하겠습니다 :)
마무리
써미스터, 다른 온도 측정 툴
2020/10/10 - [정리, 공부해요/아두이노] - Thermistor - arduino uno (써미스터 with 아두이노) - 온도 측정, 어떻게 할까
여러개의 열전대 연결 + LCD display 표시 + 액셀에 데이터 실시간 저장
2020/10/10 - [정리, 공부해요/아두이노] - Thermocouple 여러개, 아두이노 연결, LCD display 사용, 액셀에 데이터 실시간 정리 PLX DAQ
'서브 공부 > 아두이노 & 회로구성' 카테고리의 다른 글
Thermocouple 여러개, 아두이노 연결, LCD display 사용, 액셀에 데이터 실시간 정리 PLX DAQ (11) | 2020.10.04 |
---|---|
(저장용) Thermocouple amplifier 여러개 아두이노 연결 (0) | 2020.10.02 |
아두이노, 외부전원, Barrel jack, 전선 처리/활용 (0) | 2020.09.28 |
(저장용)아두이노 우노/메가 핀맵, 저항값 읽기, 부품 명칭, 나사 사이즈표 (0) | 2020.09.26 |
아두이노 우노보드, 사용 가능 in/output 최대 전력량 체크 + 고 전력 장치 제어 (Arduino uno) (0) | 2020.09.22 |
댓글