Atividade 14: Termómetro
Digital
Objetivo: Construir um circuito eletrônico de medição de
temperaturas, onde um display de sete segmentos irá indicar as
temperaturas de 0 a 30.
Para este projeto utilize:
- Um buzzer se acionado para valores abaixo de 0 ou acima de
30;
- Temperaturas abaixo de 20 devem acionar um LED azul,
indicando frio;
- Acima de 20 irão acionar um LED vermelho, indicando calor;
O display deve indicar:
Valor entre 0° ou menos;
Valores entre 10° e 19°;
Valores entre 20° e 29°;
Valores entre 30° ou mais.
69
Circuito Elétrico
Utilize os seguintes componentes:
Arduino Uno Display Resistor 1K Ω
1 Unidade 1 Unidade 2 Unidades
Fio Jumper Protoboard Resistor 330 Ω
19 Unidades 1 Unidade 8 Unidades
LED NTC Buzzer
2 Unidades 1 Unidade 1 Unidade
70
Siga os seguintes passos:
- Interligue as fileiras do Protoboard, e conecte-as as
fileiras de alimentação do Arduino;
- Acople o NTC ao circuito, e conecte um jumper entre os
terminais e as fileiras negativa e positiva do Protoboard;
NTC não possui polaridade.
- Conecte um resistor entre uma das fileiras do NTC, e um
jumper entre o resistor e uma porta analógica do Arduino;
71
- Coloque um jumper entre o terminal positivo do buzzer e uma
porta digital do Arduino, e resistor de 1K ohms entre terminal
negativo do buzzer e a fileira negativa do Protoboard;
- Encaixe o display, e coloque jumpers entre os resistores de
330 Ω e 8 portas digitais do Arduino;
Siga uma ordem crescente ou decrescente de portas digitais, e conecte
o pino do meio de acordo com o tipo de display (Anodo ou Catodo).
- Encaixe o resistor entre o terminal negativo do LED e a
fileira negativa do Protoboard.
72
Atividade 14: Termômetro Digital
// Projeto Curto Circuito – Termômetro Digital
// Biblioteca NTC
#include <Thermistor.h>
// Pinos do Display
int A = 13;int B = 12;int C = 11;int D = 10;int E = 9;int F = 8;int G = 7;
int DP = 6;
Thermistor temp(0);
int buzzer = 5;
int LED2 = 4; // Azul
int LED = 3; // Vermelho
void setup() {
[Link](9600);
pinMode(LED, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(A, OUTPUT); pinMode(B, OUTPUT); pinMode(C, OUTPUT); pinMode(D, OUTPUT);
pinMode(E, OUTPUT); pinMode(F, OUTPUT); pinMode(G, OUTPUT); pinMode(DP, OUTPUT);
pinMode(buzzer, OUTPUT);
}
void loop() {
// Interpretação da leitura do sensor
int temperature = [Link]();
[Link]("Temperatura no Sensor: ");
[Link](temperature);
[Link]("*C");
delay(1000);
digitalWrite(buzzer, 0); // Desliga Buzzer
if ( temperature <= 0) { // Se a temperatura for menor ou igual a 0
digitalWrite(LED, 0); digitalWrite(LED2, 1);digitalWrite(buzzer, 1);
digitalWrite(A, 0);digitalWrite(B, 0);digitalWrite(C, 0);digitalWrite(D, 0);
digitalWrite(E, 0);digitalWrite(F, 0);digitalWrite(G, 1);digitalWrite(DP, 1);
}
if ( temperature > 0 && temperature <= 19) { // Se for entre 10 e 19
digitalWrite(LED, 0);digitalWrite(LED2, 1); digitalWrite(buzzer, 0);
digitalWrite(A, 1);digitalWrite(B, 0);digitalWrite(C, 0);digitalWrite(D, 1);
digitalWrite(E, 1);digitalWrite(F, 1);digitalWrite(G, 1);digitalWrite(DP, 1);
}
if ( temperature >= 20 && temperature <= 29) { // Se for entre 20 e 29
digitalWrite(LED, 1);digitalWrite(LED2, 0); digitalWrite(buzzer, 0);
digitalWrite(A, 0);digitalWrite(B, 0);digitalWrite(C, 1);digitalWrite(D, 0);
digitalWrite(E, 0);digitalWrite(F, 1);digitalWrite(G, 1);digitalWrite(DP, 1);
}
if ( temperature >= 30) { // Se a temperatura for maior ou igual a 30
digitalWrite(LED, 1);digitalWrite(LED2, 0); digitalWrite(buzzer, 1);
digitalWrite(A, 0);digitalWrite(B, 0);digitalWrite(C, 0);digitalWrite(D, 0);
digitalWrite(E, 1);digitalWrite(F, 1);digitalWrite(G, 1);digitalWrite(DP, 1);
}
}
Por tratar-se de um programa desenvolvido com uma
biblioteca específica, o simulador irá reproduzir apenas uma
forma similar de funcionamento desta atividade:
[Link]
115