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.