【 아두이노 센서#13】 TC74 온도센서 활용하기 1
이번 시간은 I2C 통신 방식을 이용하는 TC74 온도 센서에 대해 다루어 보고자 한다. TMP36온도센서와 차이점은 직접적으로 섭씨온도 값을 얻어 낼수 있고 동일 회로에서 다수개의 TC74 온도센서를 활용 할 수 있다는 장점이 있다.
▶ 실습에 사용되는 온도센서 자료 ( TC74 )
《 DIP 타입 》
《 SMD 타입 》
[ TC74 상세 스팩 ]
[ TC74 고유 주소 파악하기 ]
위 제조사에서 제공하는 스팩을 보면 " Address Options : " 이라는 것이 있다.
만약 구입한 온도센서 모델이 아래 이미지 처럼 " TC74A0 " 라고 되어 있을 경우,
" A0 = 1001 000 " 이라고 되어 있는데, 이를 2진수 값으로 생각하고( 1001000 ),
10진 값으로 계산 해보면 ,
= 1x 2^6 + 1x 2^3
= 1 x 64 + 1 x 8
= 72 가 된다.
즉 10진값 '72' 가 이 센서의 고유 주소가 된다.
16진 값으로는 0x48 이 된다. 이주소를 기억했다가 프로그래밍의 해당부분에 입력하면 된다.
--------------------------------------------------
만약 구입한 온도센서 모델이 아래 이미지 처럼 " TC74A5 " 라고 되어 있을 경우,
위의 상세 스팩을 참고하면 " A0 = 1001 000 " 이라고 되어 있는데, 이를 2진 값으로 생각하고( 1001101 ),
10진 값으로 계산 해보면 ,
= (1 x 2^6) + (1 x 2^3) + (1 x 2^2) + (1 x 2^0)
= 1 x 64 + 1 x 8 + 1 x 4 + 1 x 1
= 77 이 된다.
즉 10진값 '77' 혹은 16진값으로 0x4D가 이 센서의 고유 주소가 된다.
I2C 통신을 위해서는 SDA핀과 SCL(SCLK)핀에 풀업 저항을 달아서 연결해야 통신이 제대로 이루어 진다. (풀업 저항 값으로는 4.7KΩ가 적당하며, 여의치 않을 경우 1KΩ~10KΩ 사이의 저항값 사용가능)
▶ 실습 목표 :
1. TC74 센서의 온도 값을 시리얼 모니터로 출력해 보자.
2. I2C 통신기능에 대해 익혀본다.
▶ 실습 회로도면 :
(이미지 클릭하면 확대 가능)
※ 일반적으로 TC74 를 구입할 때 주소를 구분해서 구매할 필요는 없으나,
하나의 시스템에서 여러개의 온도센서를 가지고 활용하려 할 때는 고유주소가 다른 센서를 사용해야 각각의 제어가 가능하니 참조하길 바란다.
▶ 프로그램 코드 및 설명 :
// I2C 온도 센서(TC74A0-5.0VAT) 이용하기
// I2C 온도 센서에서 값을 읽어 시리얼 포트로 출력하기
#include <Wire.h> //I2C 라이브러리 삽입
//I2C 센서 ID를 10진수로 저장한 temp_address 변수 선언
int temp_address=72; // 제조회사 제공 고정 값
void setup() {
Serial.begin(9600);
Wire.begin(); // I2C Wire 객체 시작
}
void loop() {
// I2C 센서의 주소와 통신을 개시하는 요청 전송
Wire.beginTransmission(temp_address);
// I2C 센서의 0번 레지스터를 읽겠다는 명령을 쓰기 모드에서 전송
Wire.write(0);
Wire.endTransmission(); // 전송 완료(0값 전송 종료)
// 지정된 주소의 I2C 센서에서 1바이트 값을 읽음
Wire.requestFrom(temp_address, 1);
while(Wire.available()==0); // 응답이 올 때까지 대기
int c=Wire.read(); // 온도를 읽어 변수 c에 저장
// 섭씨를 화씨로 변환(소수점 반올림)
int f=round(c*9.0/5.0 +32.0);
// 시리얼 포트로 섭씨온도와 화씨온도 출력
Serial.print(c);
Serial.print("C ");
Serial.print(f);
Serial.println("F");
delay(500);
}
※ 섭씨온도를 화씨온도로 변환 하는 식 [ (섭씨 x 9.0) / 5.0 + 32.0 ]
▶ 실행 결과 :
(영상은 고화질로 설정하고 전체화면으로 보세요)
▶ 아두이노 파일(다운) :
I2C 스캐너 프로그램 :
'아두이노 > 2. 아두이노센서' 카테고리의 다른 글
【 아두이노 센서#15】 TC74 센서 & 74HC595 응용회로 실습 (0) | 2018.12.26 |
---|---|
【 아두이노 센서#14】 TC74 온도센서값 RGB & LCD로 출력하기 (0) | 2018.12.21 |
【 아두이노 센서#12】 시프트레지스터 Bit(연산자)제어 실습 (0) | 2018.12.19 |
【 아두이노 센서#11】 시프트레지스터 2단 연결하기 나(Daisy Chain) (0) | 2018.12.17 |
【 아두이노 센서#10】 나이트 라이더 만들어보기 (0) | 2018.12.14 |