I2C 온도 센서 LM75

I2C 온도 센서 LM75

I2C 온도 센서 LM75

LM75 I2C 온도 센서 온도계 I2C 버스

목차

    작동 원리

    El IC LM75는 실리콘 반도체 밴드갭 온도 센서.

    반도체에서는 금지된 밴드 더 빠르게 움직일 수 있는 상태가 없기 때문에 전기장이 증가해도 증가할 수 없는 것은 전자의 에너지 영역입니다. 이것 금지된 밴드 사이에 포함됩니다. 가전자대 (낮은 에너지) 그리고 드라이빙 밴드 (더 높은 에너지). 열 여기(우리가 관심 있는 목적에 따른 온도 증가)는 일부 전자가 드라이빙 밴드.

    이전 글에서 설명했듯이 전자 온도 측정, 금속의 경우 캐리어의 수는 온도에 의존하지 않지만(모든 전자는 항상 사용 가능) 이동도는 온도의 영향을 받습니다. 따라서 금속의 저항은 다음으로 인한 전자 속도의 감소로 인해 온도에 따라 증가합니다. 그들의 증가 열 교반 그리고 그것이 생성하는 전자의 산란.

    반도체의 경우 이 물질이 존재하기 때문에 금지된 밴드 캐리어 수는 온도에 따라 다릅니다(온도에 따라 다름). 페르미-디랙 분포) 온도에 따라 전도도가 증가합니다. 반도체에서는 온도가 증가하면 저항이 증가하지만 전도성도 (더) 증가합니다.

    실리콘 반도체 밴드갭 온도 센서LM75의 경우와 마찬가지로 이 원리에 따라 작동하여 온도가 실리콘 다이오드의 전압에 미치는 영향을 정량화하여 결정할 수 있습니다.

    LM75 하드웨어 구성 요소

    LM75에는 시그마-델타 변조에 의한 아날로그-디지털 변환기 온도의 숫자(디지털) 값을 얻는 역할을 하며, 이 값은 이후 버스를 통해 읽을 수 있는 레지스터 중 하나에 저장됩니다(100ms마다). I2C.

    LM75 I2C 온도 센서. 작동 블록의 단순화된 다이어그램

    LM75에는 측정된 온도를 포함하는 레지스터 외에도 최대 온도를 저장할 수 있는 레지스터와 측정된 온도가 이 두 번째 레지스터에 저장된 온도를 초과하는 경우 신호를 생성할 수 있는 비교기가 있습니다. 측정된 온도가 특정 수준 이하로 떨어질 때까지 경고가 다시 발생하지 않도록 세 번째 레지스터를 사용하면 온도 값을 저장할 수 있습니다. 히스테리시스.

    LM75 작동 구성은 경고가 생성되는 조건, 이 경고 신호를 실행하는 방법(중단 모드 또는 비교 모드) 및 장치 활성화(모드)가 결정되는 네 번째 레지스터에 저장됩니다. .정상 작동 또는 낮은 소비).

    LM75의 기술 사양 및 구현

    LM75가 측정할 수 있는 온도 범위는 −55°C에서 +125°C까지 다양하며 수치 분해능은 0.125°C입니다. 그러나 온도가 − 사이에서 가장 좋은 경우 정밀도는 ±2°C에 불과합니다. 25 °C ~ +100 °C 및 −3 °C ~ +55 °C 사이의 가장 극한 온도에서 ±125 °C의 정확도.

    LM75. I2C 온도 센서. 핀아웃

    회로에서 LM75의 구현(하드웨어)은 매우 간단하며 저항보다 더 많은 구성 요소가 필요하지 않습니다. 풀업버스 I2C 2,8V에서 5,5V 사이의 전압으로 전원을 공급받을 수 있습니다. 버스 I2C 일반적인 경우처럼 75개의 핀 A0, A1, A2를 하이 또는 로우 레벨로 구성하여 최대 XNUMX개의 LMXNUMX 온도계를 배열할 수 있습니다.

    LM75. I2C 온도 센서. 응용회로

    반면에 LM75를 프로브로 사용하는 것은 제공되는 패키지로 인해 불편합니다. TSSOP (TSSOP8) 또는 비서 (SO8) 일반적으로 주변 온도를 측정하거나 주변 환경에 배열된 구성 요소의 온도를 측정하는 데 사용됩니다. PCB LM75 온도계가 있는 곳.

    시작 시 LM75는 최대 +80°C의 온도를 감지하도록 구성됩니다. 히스테리시스 +75°C 및 비교기 작동 모드, 즉 온도 조절 장치의 작동을 에뮬레이트하는 모드: 최대 온도에 도달하고 온도가 온도 이하로 떨어질 경우에만 경고를 활성화합니다. 히스테리시스 공지를 재생성합니다.

    I75C 버스를 통해 마이크로컨트롤러에서 LM2 활용

    사용 덕분에 버스 I2C LM75의 작동은 매우 간단합니다. 버스에서 차지하는 주소에 액세스하여 구성을 저장하거나 읽고 측정된 온도 값을 얻으면 됩니다.

    주소 I2C LM75의 기본은 0B01001XXX이며 위에서 설명한 대로 하드웨어에 의해 핀 A0, A1 및 A2가 높음(값 XNUMX) 또는 낮음(값 XNUMX)으로 설정되는 마지막 세 개의 주소 비트로 보완됩니다.

    온도계로서의 LM75

    마지막으로 측정된 온도를 저장하는 레지스터(TEMP)는 주소 0x00에 있고, 구성 레지스터(CONF)는 주소 0x01에 있으며, 온도를 저장하는 레지스터는 다음과 같습니다. 히스테리시스 주소 0x02에 있고 최대 또는 과열(TOS)은 주소 0x03에 있습니다. 현재온도(TEMP)를 제외하고 모두 읽기, 쓰기 기능을 합니다.

    위해 개발된 일부 코드 예제 사용 아두 이노 (거의 보편적인 기준이 됨) LM75의 작동을 더욱 명확하게 할 수 있습니다. 가장 기본적인 유용한 예는 마지막으로 측정된 온도 기록을 읽어 LM75를 온도계로 사용하는 것입니다.

    이 프로세스는 장치로 작업할 때 일반적인 프로세스입니다. I2C:

    1. 라이브러리 추가 I2C 코드에 #include <Wire.h>
    2. 라이브러리 초기화 I2C 사용 Wire.begin();
    3. 다음을 사용하여 LM75 온도 센서에 액세스합니다. Wire.beginTransmission(DIRECCION_LM75)
    4. 다음을 사용하여 액세스한 레지스트리 주소를 보냅니다. Wire.write(REGISTRO)
    5. 릴리스 버스 I2CWire.endTransmission()
    6. LM75에 다시 액세스
    7. 다음을 사용하여 레지스트리 값을 요청합니다. Wire.requestFrom(DIRECCION,CANTIDAD)
    8. 다음을 사용하여 데이터가 수신되었는지 확인합니다. Wire.available()
    9. 요청된 값 읽기 Wire.read() (바이트가 구성하는 횟수만큼)
    10. 꼭 필요한 것은 아니지만 완료되면 버스 I2C

    장치 로그에서 정보를 얻거나 저장하기 위한 일반적인 프로토콜 외에도 다음을 사용합니다. 버스 I2C, LM75가 제공하는 데이터를 활용하려면 내부적으로 온도를 나타내는 형식을 고려해야 합니다.

    LM75 온도 기록에 저장된 값 얻기

    이전 예의 코드 22행에서는 LM75의 세 온도 레지스터에 저장된 정보를 로드하는 방법을 볼 수 있습니다. 16바이트(11비트)를 사용하며 그 중 최상위 XNUMX비트만 유효합니다. 온도를 정수로 읽으려면(부호는 2의 보수) 가장 중요한 바이트가 변수에 먼저 로드됩니다. int de 아두 이노 왼쪽으로 8비트 회전되어 가장 중요한 부분에 남게 됩니다. int. 그런 다음 두 번째 바이트를 읽고 변수에 추가합니다. int OR 연산으로

    LM75의 부하 온도 값 해석

    24행에서는 온도 값을 해석하는 방법을 볼 수 있습니다. 우선 32를 정수로 나누고(부호를 잃지 않고 관련 11비트를 회전) 온도를 나타내는 '단계' 수(도의 옥타브)인 8로 나누어야 합니다. 유형의 값을 얻으려면 float 해당 소수점으로. 컴파일러(포함) 이후 도구 모음 de 아두 이노) 정수 나누기를 32로 최적화하면 연산이 (상당히) 더 빠르지 않기 때문에 부호를 유지하고 비트를 "수동으로" 회전할 필요가 없습니다.

    I2C 버스로부터의 데이터 수신 확인

    이전 코드는 장치에서 요청한 데이터가 도착했는지 여부를 확인하지 않아도 문제 없이 작동합니다. 버스 I2C, 가장 정통적인(그리고 권장되는) 것은 데이터가 적절한 수에 도착할 때까지 기다리는 것입니다. 전송 속도와 오류 저항이 충분하기 때문에 기다리지 않고 간단히 데이터를 요청하고 읽는 코드를 찾는 것이 일반적입니다. 예제의 경우 주요 의도를 방해하지 않기 때문에 이런 방식으로 수행하는 것이 유용하지만 프로덕션 코드의 경우 통신 프로세스 목록의 일곱 번째 항목에 제안된 대로 수행하는 것이 좋습니다. I2C. 다음 예의 코드는 활용 단계에서 LM75를 사용하기 위해 권장되는 변경 사항을 강조합니다.

    LM75 작동 구성

    LM75의 가장 기본적인 구성은 경고를 발생시키는 최대 온도 설정과 히스테리시스에 따라 비활성화되고 반복될 수 있는 시기가 결정됩니다. 이러한 값을 구성하려면 해당 레지스터에 저장하기만 하면 됩니다.

    현재 온도 기록과 마찬가지로 최대(경보) 온도와 히스테리시스 11바이트를 사용하지만 처음과 달리 9비트(XNUMX/XNUMX도)가 아닌 XNUMX(XNUMX도)를 고려하므로 더 작은 값이 저장되더라도 이 해상도의 간격만 고려됩니다.

    이전 코드에서는 경고와 관련된 온도의 구성만 변경되었으므로 나머지 동작은 기본 구성에 해당합니다.

    이 기본 구성에는 관련된 두 가지 특성이 있습니다. 첫째, 경고 모드입니다. 기본적으로 최대 온도(또는 경고)에 도달하면 경고를 활성화하고 온도가 낮아질 때까지 비활성화하지 않는 "온도 조절기 모드"라고 합니다. 온도 히스테리시스. 대안은 "인터럽트 모드"로, 신호가 최대값을 초과하거나 해당 값보다 낮은 값에 도달할 때 신호가 활성화됩니다. 히스테리시스 일반적으로 현재 온도와 같은 기록을 읽어 재설정됩니다.

    두 번째 특징은 경고 신호가 로우 레벨에서 활성화된다는 것, 즉 최대 경고 온도에 도달할 때까지 OS 핀이 하이 레벨에 있다는 것입니다. 경고 신호의 극성(활성화되는 레벨)을 구성할 수 있으므로 일부 간단한 설치에서는 이 신호(하드웨어)를 사용하여 LM75를 활용하는 것으로 충분합니다(예: 시스템이 작동 중일 때 팬을 연결하거나 연결 해제). 특정 온도에 도달합니다.

    경고 온도에 도달한 후 즉시 경고하지 않고 여러 사고 후에 경고하도록 LM75의 작동을 구성하는 것도 가능합니다. 이 동작은 온도 제한에서 작업하거나 온도가 매우 빠르게 변할 때 매우 유용합니다. LM75는 최대 온도를 XNUMX회, XNUMX회, XNUMX회 또는 XNUMX회 초과한 후 경고하도록 구성할 수 있습니다.

    구성 레지스터에는 LM75를 비활성화("끄기")하고 저소비 모드로 들어가는 비트도 있습니다. 이 모드는 이 비트를 다시 변경하거나 간단히 다음 레지스터를 읽을 때 종료됩니다.

    코멘트 남기기

    당신은 놓쳤을 수도 있습니다