본문 바로가기
Study/Arduino

비접촉 온도센서(4-20mA 출력) Arudino에서 읽기

by Answer Choi 2018. 5. 4.
반응형


소스코드 다운로드


우선 사용한 온도센서는 Omega의 OS136-1 시리즈입니다.



그중에서도 4-20ma출력이 나오는 OS136A-1-MA 제품입니다.


왼쪽 위부터 제품과 브라켓, 그리고 아래는 레이저 포인터와 파워서플라이입니다.



그리고 센서를 위한 파워서플라이가 있는데, 플러그가 다릅니다.



이런 돼지코 변환 플러그를 사용하시면



일반 220V 플러그에서 사용 가능합니다.



온도센서에는 선이 4가닥이 있습니다.


전원 +(Red), 전원 -(Black), 센서 +(White), 센서 -(Green)


입니다.



전원선을 플러그에 연결해주시면 됩니다.


그리고 센서선은 테스트를 위해 UA20에 연결합니다.


UA20 연결방법은  RADIONODE의 UA20 사용방법 를 참고하세요.



가지고 있는 비접촉 온도센서를 이용하여 냉장고에서 꺼낸 캔커피의 온도를 측정하였습니다.


16.7℃가 나옵니다.



이제 OS136A-1_MA로 측정을 하였습니다.



UA20을 통하여 측정한 온도의 값은 17.62℃입니다.


센서의 스펙이 -18℃에서 202℃라서 스케일 설정시 


4mA는 -18℃, 20mA는 202℃로 설정해 주셔야 합니다.


이제 Arduino에 적용합니다.



전원(Red, Black)은 24V를 넣어주고, 센서-(Green)도 Gnd에 연결합니다.


센서+(White)는 250Ω을 Gnd와 사이에 연결해 줍니다.



시간이 좀 지나서 캔커피의 온도가 올라 19.5℃입니다.



OS136A-1-MA로 비슷한 위치에서 측정합니다.



21~22℃정도 나오네요.


아마도 Arduino의 ADC가 10bit라 정확도가 조금 떨어지는듯합니다.


이제 소스코드입니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int curSensor=0;
void setup() {
  Serial.begin(115200);
}
 
void loop() {
  // put your main code here, to run repeatedly:
  float sensorValue = analogRead(curSensor);
  float Result;
   Result = (((sensorValue-204.0))/(1024.0-204.0)*220)-18;  //204 is offset, 4mAmp is 0     
    Serial.print("Sensor Original:");
    Serial.println(sensorValue);        
    Serial.print("Sensor Output:");
    Serial.print(Result); 
    Serial.println(" ℃");    
    delay(500);        // delay in between reads for stability    
}
cs


저번에 했던 전류센서와 코드는 거의 같습니다.


차이점은 Line 10 부분인데 이 센서는 -18~202까지 220단계가 측정가능합니다.


그리고 -18℃부터 시작이므로 계산식이 조금 바뀌었습니다.


참고로  OS136-2-MA도 측정해 보았습니다.



OS136-2-MA는 149℃~538℃까지 측정가능합니다.


따라서 범위를 벗어나는 149℃미만의 값에서는 ADC값이 0으로 나타납니다.


주로 고온작업을 하는 곳에서 사용가능합니다.

반응형

'Study > Arduino' 카테고리의 다른 글

미세먼지 측정센서 PM2005  (0) 2018.05.10
PIR SENSOR(인체감지센서) Arduino로 코딩  (0) 2018.05.09
DFRobot Digital Vibration Sensor V2  (0) 2018.05.03
Arduino 1-Wire DS18B20 (온도센서 )  (0) 2018.04.04
Software Serial 사용하기  (0) 2018.03.28

인기글