Arduino - Sensor de Temperatura - Servo Motor
Este tutorial mostra como usar um Arduino e um sensor de temperatura DS18B20 para controlar um servo motor. Mais especificamente, o Arduino é programado para medir a temperatura continuamente usando o sensor DS18B20. O servo motor é então ajustado de acordo com as seguintes regras:
- Se a temperatura ultrapassar um limite predefinido, o Arduino girará o servo motor para 90 graus.
- Se a temperatura cair abaixo do limite, o Arduino girará o servo motor de volta para 0 graus.
Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables STEM V3 Starter Kit (Arduino included) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
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.
Buy Note: For controlling multiple servo motors, use the PCA9685 16 Channel PWM Servo Driver Module to save MCU pins and simplify wiring.
Sobre o Servo Motor e o Sensor de Temperatura
Se você ainda não conhece o servo motor e o sensor de temperatura (pinagem, como funcionam, como programar...), aprenda sobre eles nos seguintes tutoriais:
Diagrama de Ligação
- Diagrama de ligação com protoboard

This image is created using Fritzing. Click to enlarge image
- Diagrama de ligação com adaptador (recomendado)

This image is created using Fritzing. Click to enlarge image
Recomendamos comprar um sensor DS18B20 que já vem com um adaptador de ligação para facilitar a conexão. O adaptador tem um resistor embutido, eliminando a necessidade de um resistor separado na ligação.
Código Arduino - Sensor de Temperatura Aciona o Servo Motor
Passos Rápidos
- Faça a ligação entre o Arduino, o sensor de temperatura e o servo motor conforme o diagrama acima
- Conecte o Arduino ao PC usando o cabo USB
- Abra o Arduino IDE e selecione a placa e a porta corretas
- Vá até o ícone Libraries na barra esquerda do Arduino IDE.
- Pesquise “DallasTemperature” e encontre a biblioteca DallasTemperature de Miles Burton.
- Clique no botão Install para instalar a biblioteca DallasTemperature.

- Será solicitado que você instale a dependência da biblioteca
- Clique no botão Install All para instalar a biblioteca OneWire.

- Copie o código acima e abra-o no Arduino IDE
- Clique no botão Upload no Arduino IDE para carregar o código no Arduino
- Altere a temperatura ao redor do sensor de temperatura
- Observe a mudança do servo motor
- Veja o resultado no Serial Monitor. Ele fica assim:
Código Arduino - Sensor de Temperatura Aciona o Servo Motor com Tolerância
Durante o funcionamento, a temperatura pode oscilar acima ou abaixo do limite, fazendo com que o servo motor seja ajustado de forma rápida e constante. Isso pode causar vibração em vez de uma rotação suave até o ângulo desejado. Para reduzir esse problema, é possível adicionar uma tolerância ao limite. O código a seguir mostra como implementar essa solução:
O código acima define um limite de 20°C e uma tolerância de 0,5°C. As seguintes condições se aplicam:
- Se a temperatura estiver abaixo de 19,5°C, o ângulo do servo motor é ajustado para 0°.
- Se a temperatura estiver acima de 20,5°C, o ângulo do servo motor é ajustado para 90°.
- Se a temperatura estiver entre 19,5°C e 20,5°C, nenhum ajuste é feito no ângulo do servo motor.