아두이노 - 온도 센서 - 서보 모터 | Arduino - Temperature Sensor - Servo Motor
이 튜토리얼은 아두이노와 DS18B20 온도 센서를 사용하여 서보 모터를 제어하는 방법을 소개합니다. 구체적으로는 아두이노가 DS18B20 센서를 사용하여 지속적으로 온도를 측정하도록 프로그램되어 있습니다. 그런 다음 다음 규칙에 따라 서보 모터가 조정됩니다:
- 온도가 사전에 정해진 임계값을 초과하면, 아두이노는 서보 모터를 90도로 회전시킬 것입니다.
- 온도가 임계값 아래로 떨어지면, 아두이노는 서보 모터를 다시 0도로 회전시킬 것입니다.
준비물
1 | × | Arduino Uno | Amazon | |
1 | × | USB 2.0 cable type A/B | 쿠팡 | Amazon | |
1 | × | DS18B20 Temperature Sensor (WITH Adapter) | 쿠팡 | Amazon | |
1 | × | DS18B20 Temperature Sensor (WITHOUT Adapter) | Amazon | |
1 | × | Servo Motor | Amazon | |
1 | × | Jumper Wires | Amazon | |
1 | × | (Optional) 9V Power Adapter for Arduino | Amazon | |
1 | × | (Recommended) Screw Terminal Block Shield for Arduino Uno | 쿠팡 | Amazon | |
1 | × | (Optional) Transparent Acrylic Enclosure For Arduino Uno | Amazon |
Buy Note: Many DS18B20 sensors available in the market are unreliable. We strongly recommend buying the sensor from the DIYables brand using the link provided above. We tested it, and it worked reliably.
서보 모터와 온도 센서에 대하여
서보 모터와 온도 센서(핀 배치, 작동 방식, 프로그래밍 방법 등)에 대해 모른다면, 다음 튜토리얼에서 배우십시오:
선연결
브레드보드와 배선도
이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
어댑터 포함 배선도 (권장)
이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
우리는 쉬운 연결을 위해 DS18B20 센서와 함께 제공되는 배선 어댑터 구매를 제안합니다. 어댑터에는 별도의 저항기가 필요 없게 하는 내장 저항기가 있습니다.
아두이노 코드 - 온도 센서가 서보 모터를 작동시킵니다
사용 방법
- 위의 다이어그램처럼 아두이노, 온도 센서 및 서보 모터 사이의 배선을 하세요.
- USB 케이블을 사용하여 아두이노를 PC에 연결하세요.
- 아두이노 IDE를 열고, 올바른 보드와 포트를 선택하세요.
- 아두이노 IDE의 왼쪽 바에 있는 Libraries 아이콘으로 이동하세요.
- “DallasTemperature”을 검색한 다음, Miles Burton에 의한 DallasTemperature 라이브러리를 찾으세요.
- DallasTemperature 라이브러리를 설치하려면 Install 버튼을 클릭하세요.
- 라이브러리 종속성을 설치하라는 요청을 받게 됩니다.
- OneWire 라이브러리를 설치하려면 Install All 버튼을 클릭하세요.
- 위의 코드를 복사하고 아두이노 IDE로 열기
- 아두이노 IDE에서 Upload 버튼을 클릭하여 아두이노로 코드 업로드
- 온도 센서 주변의 온도 변경
- 서보 모터의 변화를 관찰
- 시리얼 모니터에서 결과를 확인, 다음과 같이 보임:
아두이노 코드 - 온도 센서가 허용 오차를 가진 서보 모터를 작동시킵니다
작업 중에 온도가 임계값 위나 아래로 변동할 수 있으며, 이로 인해 서보 모터에 빠르고 지속적인 조정이 발생할 수 있습니다. 이것은 원하는 각도로의 부드러운 회전 대신에 진동을 초래할 수 있습니다. 이 문제를 완화하기 위해 임계값에 허용 오차를 포함시킬 수 있습니다. 다음 코드는 이 솔루션을 구현하는 방법을 보여줍니다:
위에 제시된 코드는 20°C의 기준치와 0.5°C의 허용 오차를 지정합니다. 다음 조건이 적용됩니다:
- 온도가 19.5°C 이하인 경우, 서보 모터 각도를 0°로 조정합니다.
- 온도가 20.5°C를 초과하는 경우, 서보 모터 각도를 90°로 조정합니다.
- 온도가 19.5°C와 20.5°C 사이인 경우, 서보 모터 각도의 조정이 이루어지지 않습니다.