내 DS18B20이 읽는 중입니다. 올바른 온도로 되돌리려면 어떻게해야합니까?


10

저는 집에 난방 제어 시스템을 만들고 있지만 온도 센서에 예상보다 높은 수치가 표시됩니다.

DS18B20이 연결된 릴레이 모듈, HD47780 디스플레이 및 Tiny RTC 모듈에 연결된 5V Arduino Mini Pro 클론이 있습니다.

DS18B20은 DQ 라인에서 기생 전력을 사용하지 않고 Tiny RTC 모듈에 적용된 5v Vcc에서 전력을 공급받으며 (Onewire 라이브러리가이 작동 모드를 지원하는지 확실하지 않기 때문에) DS18B20 데이터 시트 에 Vcc가 3.0V 및 5.5V. 나는 미니 프로의 5.2V에서 조절 된 전력을 측정했다.

DS의 온도를 기존 실내 온도 조절기 (바이 메탈릭), 두 개의 센서가있는 RS 데스크탑 온도 모니터, 작은 '열 습도계'바이메탈 냉장고 온도계 (온도의 상반기)와 비교하고 있습니다 범위) . DS의 판독 값은 다른 센서의 판독 값보다 항상 1-2도 정도 높습니다.

† 실제는 아니지만 비슷한 것.

다양한 포럼 읽기이 센서는 매우 정확하지만 주변 부품으로 인해 국부적으로 가열 될 수 있으므로 센서를 20cm 케이블로 옮기고 나머지 전자 장치에서 멀리 떨어 뜨려 놓았습니다. 이것은 아무런 차이가 없었습니다.

그런 다음 Vcc 전압이 너무 높은 경우 DS가 자체 가열 될 수 있음을 읽었으므로 1.7v 강하가있는 빨간색 LED를 추가하고 DS를 통해 3.5V로 새 전압을 측정했지만 다시 기다렸다가 온도가 한 번 더 안정화 되더라도 아무런 차이가 없었습니다.

누구든지 DS가 읽기가 높은 이유와이를 방지하기 위해 내가 할 수있는 일을 제안 할 수 있습니까?


방 온도 조절 장치가 1-2도 낮게 읽지 않는다고 얼마나 확신 하십니까? 세 번째 온도계를 가져 와서 오프셋이 실제로 어디에서 오는지 비교해야합니다 . RS 온도계는 두 센서에 대해 동일한 판독 전자 장치를 사용하기 때문에 두 개의 고유 한 교정 기준으로는 유용하지 않을 수 있습니다.
코너 울프

답변:


9

다양한 센서 노드에 50 대 정도의 DS18B20 센서를 배치했습니다. 나는 그들로부터 반환 된 독서에 대해 조금 배웠습니다. 이 중 일부를 원인이 아닌 것으로 분리했지만 문제가 있음을 확인하는 것이 좋습니다.

당신이 섭씨 또는 화씨를 사용하고 있는지 잘 모르겠으므로 문제의 정도가 명확하지 않습니다.

국소 가열

Arduino를 "핫"칩으로 생각하지는 않지만 DS18B20을 Arduino 및 LCD가있는 인클로저에 배치하면 판독 값이 예상보다 2-3 ° C 높아졌습니다.

인클로저 외부로 옮기면이 문제가 해결되었습니다.

높은 Vcc / 자주 전환으로 가열

칩에 높은 Vcc를 공급하고 빈번한 변환을 수행하면 (즉, 가능한 자주) 칩이 예열됩니다. 이 수치가 1-2 ° C 증가하는 것을 보았습니다.

높은 Vcc만으로는 문제를 보지 못했지만 대부분의 DS18B20을 기생 모드로 작동하고 10 초마다 최대 한 번 변환합니다. 활성 모드에서 작동되는 장비는 일반적으로 사용하지 않을 때는 전원을 끕니다.

OneWire와 DallasTemperature는 기생 모드를 지원합니다.

모든 온도 센서가 동일한 것은 아닙니다

DS18B20으로 게임을 시작하기 전에 여러 온도 센서가있었습니다. 거의 예외없이, 이것들은 읽히지 않습니다. 대부분 서미스터를 기반으로하며 교정이 불량합니다. DS18B20이 과도하게 판독되었다고 생각했지만, 좋은 열전대와 미터를 사용할 때 그것들이 올바른지 확인할 수있었습니다.

DS18B20을 신뢰하는 법을 배우는 것이 었습니다.

와이어를 따라 전도되는 열

와이어에 센서가있는 경우 와이어는 놀라운 양의 열을 전도합니다. 파이프를 따라 배선을 실행할 때 문제가 될 수 있습니다.

가짜 DS18B20

이 센서는 매우 인기가 있으며 이로 인해 가짜가 나타나는 것 같습니다. 과 독하고 타이밍이 만료 된 스테인레스 스틸 방수 센서 배치가 있습니다. 그들은 OneWire 라이브러리와 함께 작업했지만 DS2482 OneWire 마스터는 작동하지 않았습니다. 나는 일반적인 TO-92 케이스가 가짜라고 들었습니다.


보드 소프트웨어의 위대한 지혜로이 질문에 대답 할 수 없으므로 여기에 의견을 추가하겠습니다. github.com/PaulStoffregen/OneWire/issues/91 에서 어려운 방법을 찾았으므로 3.3V 칩을 사용하는 경우 4.7k 저항을 2.7k 저항으로 교체해야합니다. 그렇지 않으면 일부 센서가 잘못된 값을 반환합니다.
마크 멀린

2

제 경우에는 uC와 센서 사이의 배선이 너무 짧아 열을 전달하고있었습니다. 다른 온도 센서가 동일한 거리에서 정확한 온도를보고했기 때문에 처음에는 그렇지 않을 것이라고 생각했습니다. 보드와 짜잔의 다른 위치로 옮겼습니다!


1

아마도 센서를 교정하고 싶을 수도 있습니다.

끓는 물 (해수면을 가정)에 담그면 무엇을 읽습니까? 102.5 섭씨? 그러면 -2.5C의 고온 교정이 제공됩니다.

분명히 측정 할 것으로 예상되는 온도를 교정하는 것이 좋습니다. 즉, 일부 측정 장치를 신뢰하고 (평균화합니까?)이를 교정합니다.


1

3.3V 버스에서 DS18B20을 사용할 때 안정된 5.0V 버스로 전환 할 때 몇도 C의 오프셋을 보았으며 더 합리적인 값을 얻었습니다. (기생충의 유무에 따라 테스트)


흥미롭고 감사하며 일부 사람들이보고 한 것과 반대입니다. 이것이 또 다른 가짜 DS18B20 문제인지 궁금합니다.
Mark Booth

0

실험을했습니다. DS18B20이 Arduino Pro Micro와 1cm 미만의 짧은 케이블로 연결된 경우 판독 치는 환경보다 5도 더 높습니다. arduino 보드에서> 10cm 길이의 케이블에서 저항이 어디에 장착되어 있든지 (arduino 근처 또는 DS18B20 근처) 측정 값은 양호합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.