아두이노 DS1820 (디지털 온도 센서) 다루기
Arduino와 함께 DS1820 디지털 온도 센서를 사용하는 방법을 보여 드리겠습니다. 그러면 주변 환경이나 공기의 온도, 물과 같은 액체, 땅의 온도를 측정할 수 있습니다.
온도 측정 응용이 나와 있는데 모두 유용한 방법입니다. ^^
- 욕조 온도 측정
- 실내 높이마다 다른 온도 측정
- 모터 동작할 때 표면 온도 측정
DS18B20 은 Maxim IC의 1-Wire 디지털 온도 센서입니다. -55℃ 에서 125℃ (+/- 0.5)까지 9 ~ 12 비트 정밀도로 섭씨로 출력을 볼 수 있습니다. 각 센서에는 고유한 64비트 일련번호가 새겨져 있어 하나의 데이터 버스에서 많은 수의 센서를 사용할 수 있습니다.
특징은 아래와 같습니다.
- 고유한 1-Wire® 인터페이스는 통신을 위해 하나의 포트 핀만 필요합니다.
- 각 장치에는 온보드 ROM에 저장된 고유한 64비트 직렬 코드가 있습니다.
- 멀티 드롭 기능은 분산된 온도 감지 애플리케이션을 단순화합니다.
- 외부 부품이 필요하지 않음
- 데이터 라인에서 전원을 공급받을 수 있습니다.
- 전원 공급 범위는 3.0V ~ 5.5V입니다.
- –55℃ ~ + 125 ℃ (–67 ℉ ~ +257℉) ± 0.5℃ 온도 측정 정확도 –10℃ ~ +85℃
- 온도계 분해능은 9 ~ 12 비트에서 사용자 선택 가능
- 750ms (최대) 내에 온도를 12 비트 디지털 워드로 변환
- 사용자 정의 가능한 비 휘발성 (NV) 경보 설정
- 알람 검색 명령은 온도가 프로그래밍된 한계 (온도 알람 조건)를 벗어난 장치를 식별하고 해결합니다.
- 응용 분야에는 자동 온도 조절 제어, 산업 시스템, 소비재, 온도계 또는 열에 민감한 모든 시스템이 포함됩니다.
온도계를 만들려면 다음이 필요합니다. Arduino 보드 ( UNO , DUE , Micro 등). DS18B20 센서 A 방수 또는 하지 하나 4.7K * 저항 브레드 보드 모든 것을 함께 연결하는 점퍼. * 일부 매장에서는 4.7k 저항으로 센서를 판매합니다.
시작하기 전에 Arduino 보드에서 센서를 사용하려면 / Progam Files (x86) / Arduino / Libraries (기본값)에서 다음 라이브러리를 다운로드하고 압축을 풉니다.
이 방법은 구식이라 직접 라이브러리를 설치합니다. 아래 이미지 두 개를 참고하여 1-wire 버스와 Dallas Temperature Sensor 라이브러리를 설치합니다.
IDE의 직렬 모니터에서 DS18B20의 데이터를 인쇄하려면 회로도를 따라 회로를 구축해야 합니다. 먼저 브레드 보드에 센서를 연결하고 다음 순서로 점퍼를 사용하여 핀을 Arduino에 연결합니다. 핀 1에서 GND; 핀 2를 모든 디지털 핀에 연결합니다 (이 경우 핀 2). 핀 3 ~ + 5V 또는 + 3.3V, 끝에 풀업 저항을 놓습니다.
소스코드입니다.
/********************************************************************/
// First we include the libraries
#include <OneWire.h>
#include <DallasTemperature.h>
/********************************************************************/
// Data wire is plugged into pin 2 on the Arduino
#define ONE_WIRE_BUS 2
/********************************************************************/
// Setup a oneWire instance to communicate with any OneWire devices
// (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);
/********************************************************************/
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);
/********************************************************************/
void setup(void)
{
// start serial port
Serial.begin(9600);
Serial.println("Dallas Temperature IC Control Library Demo");
// Start up the library
sensors.begin();
}
void loop(void)
{
// call sensors.requestTemperatures() to issue a global temperature
// request to all devices on the bus
/********************************************************************/
Serial.print(" Requesting temperatures...");
sensors.requestTemperatures(); // Send the command to get temperature readings
Serial.println("DONE");
/********************************************************************/
Serial.print("Temperature is: ");
Serial.print(sensors.getTempCByIndex(0)); // Why "byIndex"?
// You can have more than one DS18B20 on the same bus.
// 0 refers to the first IC on the wire
delay(1000);
}
참고 자료
DS18B20 (Digital Temperature Sensor) and Arduino
Arduino Uno에서 DS18B20 1-Wire 온도 센서 사용하기
Interfacing DS18B20 1-Wire Digital Temperature Sensor with Arduino
'개발자 > Arduino' 카테고리의 다른 글
미세먼지 측정기 센서와 커넥터 연결 - Harness (0) | 2021.05.13 |
---|---|
How to prevent SSD1306 allocation failed error (0) | 2021.04.30 |
미세먼지 측정기 오늘 잘 돌아가는 코드 (0) | 2021.04.30 |
Nano 33 IoT 보드에서 5V 출력 사용하는 방법 (4) | 2021.04.23 |
아두이노 나노 PCB 사이즈 (0) | 2021.04.14 |
Adafruit APDS-9960 Proximity, Light, RGB, and Gesture Sensor (0) | 2021.04.08 |
Beginning Arduino Nano 33 IoT , Agus Kurniawan (0) | 2021.04.07 |
Arduino Nano 업로드할 때 오류 avrdude : stk500_recv( ) 해결 (0) | 2021.04.01 |
더욱 좋은 정보를 제공하겠습니다.~ ^^