티스토리 뷰
개요
방수기능이 있는 DS18B230 온도센서를 구매하여 동작시켜봄
센서와 아두이노간 연결이 20m 이상일 필요가 있음
- 링크: https://blog.naver.com/chandong83/220871651966
- 특징
1. 1선 디지털 통신 2. 3.0V to 5.5V 입력 전압 3. -55℃ ~ +125℃ -67℉ ~ +257℉ 까지 표시 가능 4. -10℃ ~ +85℃ 에서는 ±0.5℃의 정확도를 가지고 있다. 5. 해상도(분해능)을 프로그래밍으로 조절이 가능하다. 9bit ~ 12bit |
온도센서 하나 다루기
1. 선연결
- 5V 전원과 Ground 연결
- 2번 핀에 Data 연결
- 2번 핀에 Pull-up 저항 4.7 킬로옴 연결 (= 대기중 High)
<이미지 출처: https://goo.gl/S3JEAU >
2. 라이브러리
- 두 개의 라이브러리가 필요함
- DallasTemperature 와 OneWire
- 아두이노 IDE 에서 스케치 >> 라이브러리 포함하기 >> 라이브러리 관리 에서 검색하여 설치 가능
|
|
3. 예제 실행해보기
- 아두이노 IDE 에서 파일 >> 예제 >> DallasTemperature >> Single 을 선택
- 업로드 한 다음 툴 >> 시리얼 모니터 (Ctrl+Shift+M) 을 선택하면 온도값이 올라오는 것을 확인 할 수 있다.
- 자세한 소스분석은 생략
- 소스의 #define ONE_WIRE_BUS 2 부분에서 2가 핀번호인 것만 알아둘 것
- Resolution 은 9 (설정을 변경하여 분해능을 9, 10, 11, 12 로 변경할 수 있음)
온도센서 2개 이상 연결하기
1. 선연결
- 5V 전원과 Ground 연결 - 각각의 온도센서에 연결해주면 됨
- 센서마다 각각의 핀을 할당하여 Data 연결 - 소스에서 간략 설명 예정
- 센서마다의 Data 핀에 각각의 Pull-up 저항 4.7 킬로옴 연결 (= 대기중 High)
* 아래는 센서 1개일때의 경우이지만 참고.
* 다른 방법: 여러 센서의 Data 선을 하나의 핀에 연결한 다음 각각의 센서의 address 를 알아내어 측정하는 방법도 있다.
- 파일 >> 예제 >> DallasTemperature >> Multiple
<이미지 출처: https://goo.gl/S3JEAU >
2. 라이브러리
- 온도센서 1개일때와 동일
3. 예제 실행해보기
- 아두이노 IDE 에서 파일 >> 예제 >> DallasTemperature >> Multibus_simple 을 선택
- 업로드 한 다음 툴 >> 시리얼 모니터 (Ctrl+Shift+M) 을 선택하면 온도값이 올라오는 것을 확인 할 수 있다.
- 자세한 소스분석은 생략
- 소스의 OneWire ds18x20[] = { 3, 7 }; 부분에서 3, 7 이 핀번호. 센서가 3개라면 남는 핀에 추가할 수 있음
- Resolution 은 12, 소스의 .setResolution(deviceAddress, 12); 부분에서 설정됨
참고
센서와 아두이노 사이의 거리
센서와 아두이노 사이의 거리가 길 필요가 있으서 UTP 케이블 20 m 로 연결하였는데 두 개의 온도센서가 이상없이 동작함
아두이노만으로 실행시키기
아두이노 프로그램을 PC에 연결하여 아두이노 IDE 에서 동작시키는 게 아니라
아두이노 만으로 동작시키려면, 아두이노용 아답터를 연결하여 주면 된다.
전원이 인가되면 마지막으로 업로드된 펌웨어가 실행된다.
Trouble Shooting
Q: OneWire.h: No such file or directory
A: OneWire 라이브러리도 설치해야함 2.3.4
Q. 온도값이 섭씨 -127.00, 화씨 -196.60 이 측정됨
A. 회로 연결이 잘못되어 있음
- 라이브러리의 DallasTemperature.h 에 define 된 값임
// Error Codes #define DEVICE_DISCONNECTED_C -127 #define DEVICE_DISCONNECTED_F -196.6 #define DEVICE_DISCONNECTED_RAW -7040 |
'embedded' 카테고리의 다른 글
Arduino Serial 로 hex 전송하기 (5) | 2018.09.04 |
---|---|
UART, TTL, RS232, RS422, RS485 간단 구분 (3) | 2018.08.24 |
아두이노를 이용한 온습도 센서 측정 (3) | 2018.08.10 |
현 시점 라즈베리파이 OS 설치 - 180730 (0) | 2018.07.30 |
banana pi quick start - 원격 접속 (0) | 2018.07.18 |
- Total
- Today
- Yesterday
- clean agile
- 잡학툰
- strange
- agile
- 인텔리제이
- OpenAI
- 노션
- bun
- 독서
- github
- 영화
- 체호프
- ChatGPT
- 엉클 밥
- websocket
- intellij
- golang
- 클린 애자일
- Bug
- 오블완
- 티스토리챌린지
- 독서후기
- notion
- API
- solid
- go
- 제이펍
- Gin
- folklore
- 2023
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |