Você está na página 1de 8

Sensor de Temperatura e Controle de Motor via PWM

Nomes dos alunos:


David Ramos dos Santos
Gabriel Muniz Oliveira
Heloisa Souza Oliveira
Maria Eduarda Azevedo
Bianca Martins Ribeiro dos Santos
Guilherme
Turma e professor:
3 Automação Industrial manhã - Grupo A
Microcontroladores - Ricardo
1ª parte da experiência: Sensor de Temperatura
Conforme exemplo visto na sala, nós deveríamos usar um sensor de
temperatura que iria ativar um sistema sonoro e luminoso quando a
temperatura ficar fora da faixa estipulada em sala. Nosso sketch (programa)
precisaria ser comentado, mostrando a temperatura na saída serial. No nosso
caso deveríamos manter a temperatura entre -19°C a 4°C (frigorífico). Depois
deveríamos construir esse circuito na prática em sala de aula.
Materiais Utilizados:
● Arduino Uno;
● 3 resistores 1k Ohm;
● Sensor de Temperatura TMP36;
● Piezo;
● Led RGB;
A montagem realizada foi a seguinte:

Neste circuito, quando o sensor de temperatura detecta uma temperatura fora


da faixa especificada do frigorífico (entre -19°C a 4°C), o led RGB muda para a
cor vermelha, e quando a temperatura se encontra dentro dessa faixa, o led
muda para a cor azul. Dentro do Tinkercad Utilizamos o seguinte código
comentado para essa experiência:
int celcius = 0; //declara a variavel celcius para armazenar a temperatura em celcius.
void setup()
{
//Inicia os pinos 4, 8, e 9 como saida (output).
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(4, OUTPUT);
//Inicia a saida serial
Serial.begin(9600);
}
void loop()
{
//imprime na saida serial o valor nominal em escala direto do sensor de temperatura.
Serial.print("\nValor em escala:");
Serial.println (analogRead(A0));
//Converte o valor nominal do sensor para escala celcius utilizando a função map, e
depois armazena esse valor na variavel celcius.
celcius=map(analogRead(A0), 20, 358, -40, 125);
//Imprime na tela o valor da temperatura ja convertido para a escala celcius, a partir
da variavel equivalente.
Serial.print("Valor em celcius:");
Serial.println(celcius);
//Condição, se a temperatura for menor que -19°C ou maior que 4°C muda a cor do
led para vermelho e liga o buzzer.
if (celcius > 4 || celcius < -19)
{
tone(4, 250, 500);
digitalWrite(8, HIGH);
digitalWrite(9, LOW);
}
//Se não, muda a cor do led para azul, e desliga o buzzer.
else{
noTone(4);
digitalWrite(8, LOW);
digitalWrite(9, HIGH);
}
}

Durante a montagem prática e concepção do circuito tudo funcionou como


esperado, tanto os conceitos quanto às habilidades necessárias para a
realização dessa experiência ou já haviam sido abordadas em outras matérias,
ou puderam ser rapidamente compreendidas e aplicadas nesta experiência.
2ª parte da experiência: Acionamento de Motor por PWM
Foi pedido que pesquisássemos um circuito na prática que tenha acionamento
por transistor (de preferência) ou relé, e simular o acionamento desse circuito
controlado pelo PWM gerado via Arduino. Depois deveríamos construir esse
circuito na prática em sala de aula.
Materiais Utilizados:
● Arduino Uno;
● 3 resistores de 100 Ohm;
● 1 motor CC;
● 3 Leds (Verde, Amarelo, e Vermelho);
● Potenciômetro;
● Fonte 5V;
● TIP120;
A montagem realizada foi a seguinte:

Neste circuito, a entrada analogica está recebendo sinal do potenciômetro, e o


microcontrolador está convertendo essa entrada analógica com gráfico linear,
em diversos pulsos digitais (formados por onda quadrada), gerando uma
frequência e um período, que são responsáveis por controlar diversos
componentes como Leds e motores, neste quesito está encaixado o
funcionamento do PWM (pulse weight module), que normalmente é utilizado
para alterar o período da onda. O tip120 serve para amplificar e proporcionar
um controle mais inteligente do motor.
Assim, este código lê a posição de um potenciômetro, mapeia esse valor para
um valor de PWM e controla a velocidade de um motor com base nesse PWM.
Ele também acende uma luz verde quando o motor está parado, uma luz
vermelha quando o motor está funcionando na velocidade máxima e faz as
luzes amarela e vermelha piscarem alternadamente quando o motor está em
uma velocidade intermediária. Dentro do Tinkercad Utilizamos o seguinte
código comentado para essa experiência:
#define pot A0 // Define o pino do potenciômetro como A0
#define motor 10 // Define o pino do motor como 10
#define verde 5 // Define o pino da luz verde como 5
#define amarelo 6 // Define o pino da luz amarela como 6
#define vermelho 7 // Define o pino da luz vermelha como 7

int pwm; // Variável para armazenar o valor de PWM


int maxPwm = 250; // Define o valor máximo do PWM
void setup() {
pinMode(motor, OUTPUT); // Configura o pino do motor como saída
pinMode(verde, OUTPUT); // Configura o pino da luz verde como saída
pinMode(amarelo, OUTPUT); // Configura o pino da luz amarela como saída
pinMode(vermelho, OUTPUT);// Configura o pino da luz vermelha como saída
}
void loop() {
pwm = map(analogRead(pot), 0, 1023, 0, maxPwm); // Lê o valor do potenciômetro e
mapeia para a faixa de 0 a maxPwm
analogWrite(motor, pwm); // Define a velocidade do motor com base no valor PWM
calculado
if (pwm == 0) {
digitalWrite(verde, HIGH); // Liga a luz verde
digitalWrite(amarelo, LOW); // Desliga a luz amarela
digitalWrite(vermelho, LOW); // Desliga a luz vermelha
} else if (pwm == maxPwm) {
digitalWrite(vermelho, HIGH); // Liga a luz vermelha
digitalWrite(verde, LOW); // Desliga a luz verde
digitalWrite(amarelo, LOW); // Desliga a luz amarela
} else {
digitalWrite(verde, LOW); // Desliga a luz verde
digitalWrite(amarelo, HIGH); // Liga a luz amarela
digitalWrite(vermelho, LOW); // Desliga a luz vermelha
delay(200);
digitalWrite(amarelo, LOW); // Desliga a luz amarela
digitalWrite(vermelho, HIGH); // Liga a luz vermelha
delay(200);
}
}

Durante a montagem prática e concepção do circuito tudo funcionou como


esperado, tanto os conceitos quanto às habilidades necessárias para a
realização dessa experiência ou já haviam sido abordadas em outras matérias,
ou puderam ser rapidamente compreendidas e aplicadas nesta experiência.
Conclusão:
Em resumo, estas duas partes da experiência de eletrônica com Arduino
demonstraram de forma bem-sucedida a aplicação prática de conceitos
teóricos adquiridos durante o curso. Na primeira parte, a criação de um sistema
de monitoramento de temperatura com alertas visuais e sonoros usando um
sensor de temperatura e um LED RGB destacou a capacidade de implementar
sensores e lógica condicional no Arduino. Na segunda parte, a utilização do
PWM para controlar a velocidade de um motor CC, juntamente com
indicadores visuais, exemplificou o controle preciso de dispositivos por meio do
Arduino.

Você também pode gostar