디지털 온도센서 DS18B20
  • 디지털 온도센서 DS18B20

디지털 온도센서 DS18B20

공유
판매가
1,500
구매혜택
할인 : 적립 마일리지 :
배송비
3,200원 / 주문시결제(선결제) 조건별배송 지역별추가배송비
방문 수령지 : 서울특별시 구로구 공원로 41 (현대파크빌) 811호
상품코드
1000000158
디지털 온도센서 DS18B20
0
총 상품금액
총 할인금액
총 합계금액

상품상세정보

아두이노와 로봇컨트롤러에 많이 사용하는 디지털 온도센서 DS18B20 입니다. 

 

 

 

IMG_20200714_194015_081546.jpg
IMG_20200714_194021_081546.jpg

상상보드에서는 엔트리 블록코딩으로 사용이 가능하고 아두이노 스케치에서 사용 가능합니다. 

 

블로거님들 자료 입니다.

https://blog.naver.com/machiavelian/221559540272

https://webnautes.tistory.com/631
 

 

온도센서의 종류는 많이 있습니다.

CDS처럼 아날로그로 읽어서 온도 값으로 계산하는 센서부터 다양한 디지털 데이터로 온도 값을 전달하는 방식이 있습니다.

온도센서를 선택함에 있어 가격과 온도센서의 측정 범위, 정밀도, 오차를 검토하여 선택하게 됩니다.

이번에 사용하는 DS18B20은 디지털 온도 센서이며 스펙은 다음과 같습니다.

- 허용 전압 입력 : 3.0-5.5V

- 측정 온도 범위 : -55° C to+125° C

- 정밀도 : ±0.5° C ( -10° C to +85° C 범위 내)

-

아날로그 센서의 경우 측정 과정에서 전원 노이즈로 인하여 오차가 발생하거나 정밀도가 1도 이상인 경우가 있어 이보다 정밀한 DS18B20 모듈을 사용합니다.

#define DS18S20_PIN 8 // 연결포트 define OneWire ds(DS18S20_PIN); // 온도센서 포트 설정 ‘DS18S20 ‘ 대신 ‘8’ 을 적어도 됩니다. 위의 define은 컴파일을 하면 DS18S20 ‘ 대신 ‘8’ 로 변경하여 컴파일 합니다. ///////////// setup() 함수는 기존 그대로 둡니다. void loop(){ float temperature = getTemp(); // 온도 값을 읽어서 temperature 변수를 만들고 저장합니다. Serial.println(temperature); // 온도 값을 시리얼로 출력 합니다. delay(500); } float getTemp(){ byte data[12]; byte addr[8]; if ( !ds.search(addr)) { //no more sensors on chain, reset search ds.reset_search(); return -1000; } if ( OneWire::crc8( addr, 7) != addr[7]) { Serial.println("CRC is not valid!"); return -1000; } if ( addr[0] != 0x10 && addr[0] != 0x28) { Serial.print("Device is not recognized"); return -1000; } ds.reset(); ds.select(addr); ds.write(0x44,1); // start conversion, with parasite power on at the end byte present = ds.reset(); ds.select(addr); ds.write(0xBE); // Read Scratchpad for (int i = 0; i < 9; i++) { // we need 9 bytes data[i] = ds.read(); } ds.reset_search(); byte MSB = data[1]; byte LSB = data[0]; float tempRead = ((MSB << 8) | LSB); //using two's compliment float TemperatureSum = tempRead / 16; return TemperatureSum; }

온도를 읽어오는 getTemp() 함수를 직접 코딩하였고 라이브러리를 통해 사용하는 방법도 있습니다.

검색하여 알아봅시다.

온도에 따라 LED 제어하기

void loop(){ float temperature = getTemp(); if(temperature < 25){ // 25도 보다 작으면 strip.setPixelColor(0, strip.Color(0,0,100)); // blue led 켜기 strip.show(); } else{ // 25도 보다 크면 strip.setPixelColor(0, strip.Color(100,0,0)); // red led 켜기 strip.show(); } Serial.println(temperature); delay(100); }

온도에 따라 LED 제어하기 2

void loop(){ float temperature = getTemp(); if(temperature < 25){ strip.setPixelColor(0, strip.Color(0,0,100)); strip.show(); } else{ uint8_t brightness = map(temperature, 25 , 40, 10, 255); // 온도 값을 10 ~ 255로 변환 strip.setPixelColor(0, strip.Color(brightness,0,0)); strip.show(); } Serial.println(temperature); delay(100); }

map 함수를 적용하여 25도에서 온도가 올라갈수록 빨간색을 더 밝게 하였습니다.

이처럼 센서 값에 따라 LED를 제어했지만 LED가 아닌 에어컨이나 히터를 제어하면 설정한 온도로 제어하는 시스템을 만들 수가 있습니다.

 

배송안내

1. 배송비 : 기본배송료는 10,000원 미만 구입 시 3,200원, 100,000원 이상 2,000원 입니다.

 (도서,산간,오지 일부지역은 배송비가 추가될 수 있습니다)  

2. 평균 배송일은 2~4 일입니다.(입금 확인 후) 설치 상품의 경우 다소 늦어질수 있습니다.[배송예정일은 주문시점(주문순서)에 따른 유동성이 발생하므로 평균 배송일과는 차이가 발생할 수 있습니다.] 

3. 오픈 초기라 배송기간기 길지만 열심히 노력하여 단축하도록 하겠습니다.

4. 제주도및 기타 섬지역은 항공료 3,000원이 추가 됩니다.

환불안내

 

제품 수령 후 7일(주말/공휴일 포함)이내 다음 사항의 경우 취소, 교환, 환불, AS 가능합니다.
[취소, 교환, 환불, AS 가능]
1. 수령한 제품의 불량, 파손, 오 배송 등으로 사용이 불가한 경우
2. 고객변심인 경우 제품 포장을 개봉하지 않고, 사용하지 않은 상태인 경우
3. 제품 불량으로 확인되어 수령일 기준 7일이내 (주말/공휴일 포함) 취소, 교환, 환불, AS를 요청하는 경우

 

 

[취소, 교환, 환불, AS 불가]
1.  제품 수령일 기준 7일 (주말, 공휴일 포함) 초과한 경우
2.  제품 및 포장을 파손, 훼손, 변형 시켜 재화의 가치를 하락시키거나, 사용자 과실로 인하여 제품 불량이 발생한 경우
    (복사가 가능한 1회성 제품 (예: 서적,USB 모듈 및 키트 ), 전선, 주문제작 상품, 수동소자, 소켓, LED제품, 전자모듈, 해외구매 상품은 절대 교환, 취소, AS 불가) 
3. 사전 확인없이 반품, 교환, AS 반품 보내는 경우


 

이미지 확대보기디지털 온도센서 DS18B20

디지털 온도센서 DS18B20
  • 디지털 온도센서 DS18B20
닫기

비밀번호 인증

글 작성시 설정한 비밀번호를 입력해 주세요.

닫기

장바구니 담기

상품이 장바구니에 담겼습니다.
바로 확인하시겠습니까?

찜 리스트 담기

상품이 찜 리스트에 담겼습니다.
바로 확인하시겠습니까?

quick
menu

최근 본 상품
0/2
상단으로 이동