Buscar

Projeto de um Forno Microondas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 19 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 19 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 19 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

DEQ - Departamento de Eng. Qúımica
Projeto de Sistemas Microcontrolados – 6688/02
Prof. Rubens Zenko Sakiyama
Engenharia Elétrica
Projeto Final:
Sistema Embarcado de um Forno Microondas
João Vı́tor Alécio Pinheiro RA. 116040
Lucas Iglesias Araujo RA. 113004
Luan Seiti Yugawa Sano RA. 112999
Maringá, 7 de dezembro de 2021
Conteúdo
1 Introdução 2
2 Revisão da Literatura 3
2.1 LiquidCrystal.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2 Keypad.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3 Materiais e Métodos 8
4 Resultados 16
5 Conclusão 17
1 Introdução
Este documento descreve o funcionamento, operação e implementação de um sis-
tema embarcado de forno microondas. Para tal, será vista uma descrição dos componentes
utilizados e sua relação com o sistema, ou seja, qual função o componente desempenhará,
além de diagramas de blocos e fluxogramas para fins didáticos, assim, torna-se mais fácil
a compreensão do conteúdo deste artigo.
Primeiramente, deve se notar que o sistema descrito neste documento será simu-
lado no software de simulação TinkerCAD, baseado em web e dispońıvel em: <https://ww
w.tinkercad.com>. Para simulação neste software espećıfico, alguns componentes que in-
tegram um forno microondas foram substitúıdos, com devida indicação, pois o simulador
não os continha em sua coleção de dispositivos. Os componentes utilizados e as substi-
tuições realizadas serão vistas com mais profundidade no tópico Materiais e Métodos.
2
2 Revisão da Literatura
Neste tópico, serão vistas as literaturas fundamentais para funcionamento do
código do sistema. As informações aqui dispostas são retiradas das documentações das
bibliotecas mencionadas.
2.1 LiquidCrystal.h
Esta biblioteca permite controle de um display do tipo LCD (Liquid Crystal
Display) à partir de uma placa Arduino. Pode operar no modo de 4 bits ou de 8 bits.
Seus comandos são:
LiquidCrystal()
Cria uma variável de tipo LiquidCrystal, comando utilizado para configurar
os pinos do display LCD.
begin()
Inicializa a interface do LCD e especifica as dimensões da tela. Este comando
precisa ser utilizado antes de qualquer um abaixo dele, nesta lista.
clear()
Limpa a tela do LCD e posiciona o cursor na primeira coluna da primeira
linha, à esquerda.
home()
Posiciona o cursor na primeira coluna da primeira linha, à esquerda.
3
setCursor()
Escolhe um lugar espećıfico das colunas e linhas do display para posicionar
o cursor.
write()
Escreve um caractere no LCD.
print()
Escreve texto no LCD.
cursor()
Indica a posição do cursor utilizando um caractere de underscore ou under-
line ( ).
noCursor()
Não indica a posição do cursor.
blink()
Exibe o cursor piscando.
noBlink()
Desliga o cursor piscando.
display()
Liga o LCD, depois de ser desligado com o comando abaixo. O texto que
estava escrito no display permanece armazenado, mesmo depois de desligada
a tela.
noDisplay()
Desliga a tela do LCD.
4
scrollDisplayLeft()
Passa o conteúdo da tela do LCD um espaço para a esquerda.
scrollDisplayRight()
Passa o conteúdo da tela do LCD um espaço para a direita.
autoscroll()
O LCD passa o conteúdo de sua tela tantos espaços para a esquerda ou
direita, dependendo da forma de escrita do texto, automaticamente quando
necessário.
noAutoscroll()
Desabilita a função descrita acima.
leftToRight()
Escolhe a direção em que o texto será escrito. Desta forma, o texto será
escrito da maneira convencional, da esquerda para a direita.
rightToLeft()
Escolhe a direção em que o texto será escrito. Desta forma, o texto será
escrito da direita para a esquerda.
createChar()
Cria um caractere especial para poder ser exibido na tela do LCD. Pode-se
criar até 8 (oito) caracteres em uma matriz de 5x8 pixels.
5
2.2 Keypad.h
A biblioteca Keypad.h é uma biblioteca para uso de teclados em estilo matricial
em uma placa Arduino. Abaixo, estão dispostos seus comandos.
Keypad(makeKeymap(userKeymap), row[], col[], rows, cols)
Inicia um teclado numérico, onde row[] serão os pinos das linhas e col[] serão
os pinos das colunas. O número de pinos de linhas multiplicado pelo número
de linhas de colunas indica quantas teclas o teclado terá.
void begin(makeKeymap(userKeymap))
Inicializa um mapa de teclas interno equivalente ao mapa de teclas do esco-
lhido pelo usuário.
char waitForKey()
Este comando espera indefinidamente até que alguma tecla seja pressionada.
Bloqueia todo o funcionamento do código até que um tecla seja pressionada.
O tempo indefinido pelo qual este comando aguarda entrada do usuário é
infinito se não houverem entradas inseridas pelo teclado.
char getKey()
Recebe e retorna a tecla pressionada, se alguma for.
KeyState getState()
Retorna o estado atual de qualquer uma das teclas.
boolean keyStateChanged()
Informa quando uma tecla passa de um estado para outro, seja de ociosa
para pressionada ou o contrário.
6
setHoldTime(unsigned int time)
Seleciona o tempo, em milisegundos, que o usuário deverá manter a tecla
pressionada até que o sistema entenda a tecla em questão como em estado
de HOLD (segurada).
setDebounceTime(unsigned int time)
Seleciona o tempo que o teclado aguardará depois de um d́ıgito ser pressio-
nado até que possa receber outro d́ıgito.
addEventListener(keypadEvent)
Ativa um evento caso o teclado seja usado.
Comandos de múltiplas teclas pressionadas ao mesmo tempo
Com uma nova atualização, hoje a biblioteca Keypad.h permite que o
usuário aperte mais de uma tecla por vez. Como em cenário de simulação
é imposśıvel que isso ocorra, esta parte é considera leitura complementar.
Os comandos que envolvem múltiplas teclas pressionadas ao mesmo tempo
são:
Key key[LIST MAX]
bool getKeys()
bool isPressed(char keyChar)
int findInList(char keyChar)
7
3 Materiais e Métodos
Os materiais utilizados se resumem ao conjunto de simulador e peças, compo-
nentes e dispositivos empregados no sistema embarcado do forno microondas.
Desta forma, totaliza-se os componentes reais: magnetron, ventilador, sensor
da porta (switch), motor do prato, teclado matricial 4x3, placa Arduino, display LCD,
dois módulos relé para arduino, buzzer e cabeamento. Para os componentes simulados, a
explicação das substituições realizadas no ambiente simulado serão descritas em seguida.
O objetivo do sistema completo é esquentar comida, atuando como um forno
microondas, um eletrodoméstico já conhecido pela maioria dos brasileiros. O magnetron
é responsável por gerar as microondas e o ventilador por dispersá-las no ambiente interno
do forno. O motor do prato é responsável por girar o prato, para que a comida inserida no
forno esquente de uma maneira mais uniforme. O sensor da porta é um switch simples que
detecta quando a porta está fechada ou aberta. O buzzer apita para avisar o usuário do
sistema do estado da operação do forno, enquanto o display LCD exerce função de exibir
para o usuário os dados inseridos e o estado atual do forno microondas. O teclado matricial
é a forma de entrada de dados, ponte de comunicação entre usuário e sistema. Além de
tudo isso, há, ainda, a placa Arduino, que processará todos esses dados e controlará o
sistema.
A fim de cumprir estes objetivos, foi projetado um circuito (Figura 1) em que os
componentes principais: o motor, a lâmpada, o ventilador e o magnetron são alimentados
pela tensão de rede e seu funcionamento é controlado pelos relés 1 e 2. O relé 2 serve
para acionar apenas a lâmpada interna do forno, enquanto o relé 1 aciona os componentes
restantes, responsáveis, em conjunto, pelo aquecimento do alimento.
8
Figura 1: Diagrama de blocos do sistema.
O sinal de acionamento dos relés, por sua vez, provém do microcontrolador e
é determinado pelas entradas do usuário. Por exemplo, ao digitar 10 e CONFIRMAno
teclado matricial, é gerada uma temporização de 10 segundos em que os dois relés são
acionados. Durante este peŕıodo, o display LCD mostra a contagem até que ela chegue
até zero. No final do processo, os relés são desligados e o buzzer é acionado, alertando o
usuário que o alimento está pronto.
Outro ponto importante para o funcionamento do forno é a interrupção do pro-
9
cesso caso a porta seja aberta. Para isso foi implementado um sensor que retorna sinal 1
caso ela esteja fechada. Esse sinal é utilizado para controlar o fluxo do programa principal
a partir de uma interrupção externa.
Figura 2: Montagem do circuito no simulador.
10
A fim de simular o sistema embarcado no Tinkercad, a tensão de entrada de
127 V CA foi substituida por uma fonte CC de 5 V. Os motores CA também foram
substituidos por motores CC e o magnetron, por uma lâmpada. Outra substituição feita
foi utilizar um relé comum ao invés do módulo relé para Arduino, no entanto, ao pensar
no circuito real, considera-se a utilização do módulo com canal 5 V.
Ainda que sejam feitas essas modificações, a lógica de controle é a mesma, já
que o Arduino age apenas controlando o fluxo de corrente nestes componentes a partir
dos relés.
O controle das entradas e sáıdas do sistema foi realizado a partir do software
implementado no Arduino e seu código fonte foi anexado com este trabalho escrito. A
sua lógica de funcionamento está descrita pelo fluxograma a seguir (Figura 3).
11
Figura 3: Fluxograma do software embarcado.
12
A parte central do programa é o condicional switch-case na função loop. É
com esse processo que as teclas lidas pela função getKey() da biblioteca Keypad.h são
verificadas e as devidas decisões são tomadas.
Caso o botão pressionado seja um d́ıgito, o seu valor numérico é armazenado
em um array que representa a ordem em que os números são mostrados no display. Para
produzir um melhor efeito visual, os outros d́ıgitos são deslocados à esquerda e o novo
d́ıgito é inserido no final da sequência. A variável cursor pos, por sua vez, serve para
limitar a quantidade de números digitados em quatro.
default: //pressionado um numero: 0 1 2 3 4 5 6 7 8 9
if(cursor_pos <4){
tone(buzz_pin, 440, 100);
if(!(cursor_pos == 0 && key == ’0’ )){//nao permite digitar 00:00
//adiciona o numero no display e desloca os outros
tempo_array[3] = tempo_array[2];
tempo_array[2] = tempo_array[1];
tempo_array[1] = tempo_array[0];
tempo_array[0] = (int)key-48;
lcd.setCursor(5,0);
lcd.print(tempo_array[3]);
lcd.setCursor(6,0);
lcd.print(tempo_array[2]);
lcd.setCursor(8,0);
lcd.print(tempo_array[1]);
lcd.setCursor(9,0);
lcd.print(tempo_array[0]);
cursor_pos++;
}
13
Caso o botão CANCELA seja pressionado nesta etapa do programa, a array
tempo[ ] é zerada e o display mostrará 00:00.
//caso seja pressionado o botao CANCELA
tone(buzz_pin, 440, 100);
tempo =
tempo_array[0]+10*tempo_array[1]+60*tempo_array[2]+600*tempo_array[3];
if(tempo>0){
//zera o timer
tempo_array[0]=0;
tempo_array[1]=0;
tempo_array[2]=0;
tempo_array[3]=0;
mostra_timer(0);
cursor_pos = 0;
}
break;
Por final, caso o botão INICIA seja pressionado, os relés são acionados e é feita
uma temporização a partir da função delay(). Nota-se que a partir de condicionais if são
checadas se a porta está aberta ou o botão CANCELA é pressionado. Se isso acontecer,
o programa é desviado para o inicio da função loop() a partir da diretiva goto.
14
//caso seja pressionado o botao INICIA
case ’#’:
tone(A5, 440, 100);
porta = digitalRead(sensor_porta);
tempo = tempo_array[0]+10*tempo_array[1]+
60*tempo_array[2]+600*tempo_array[3];
tempo_aux = tempo;
if(porta==0 || tempo==0){ //verifica se o tempo e zero ou a porta esta
aberta
goto inicio;// volta para o inicio do loop
}
//liga os reles
digitalWrite(R1_pin,1);
digitalWrite(R2_pin,1);
//temporizacao
for(int i=0;i<tempo_aux;i++){
for(int k=0;k<200;k++){
delay(5);
//desliga caso a porta abra ou o botao CANCELA for pressionado
if(keypad.getKey()==’*’ || digitalRead(sensor_porta)==0){
digitalWrite(R1_pin,0);
digitalWrite(R2_pin,0);
goto inicio; //retorna ao inicio do loop
}
}
tempo--;
mostra_timer(tempo);
}
//quando o timer chega a zero os reles sao desligados e o buzzer apita
OBSERVAÇÃO: os códigos aqui inseridos são versões resumidas do programa original.
Para verificar a lógica de programação final e completa, verifique o arquivo em anexo.
15
4 Resultados
Os resultados obtidos são expressados principalmente na forma de um sistema
funcional em ambientes de simulação. De acordo com o fluxograma da Figura 2 é que
o sistema do forno microondas opera. A Figura 1 exibe o sistema embarcado do forno
microondas dentro do ambiente de simulação TinkerCAD. Há, ainda, na Figura 3 um
diagrama de blocos das conexões do sistema. As figuras 2 e 3 tem como função principal
a didática de explicar o funcionamento do sistema da maneira mais simples posśıvel.
O sistema embarcado de forno microondas é operacional, funcional e reage de
forma esperada, continuamente e confiavelmente.
Figura 4: Sistema embarcado em pleno funcionamento.
16
5 Conclusão
Neste documento, foram vistos os componentes utilizados para se fazer um sis-
tema embarcado de microondas, bem como o funcionamento do sistema e bibliotecas de
comandos que devem ser adicionadas ao Arduino para pleno funcionamento de dois com-
ponentes, teclado matricial e display LCD. A partir do resultados obtidos por simulação,
podemos afirmar que o projeto cumpriu o que foi proposto, realizando o controle do forno
microondas e seus acessórios.
17
Referências
LIQUIDCRYSTAL Library. Dispońıvel em: ⟨https://www.arduino.cc/en/Reference/
LiquidCrystal⟩. Acesso em: 29 nov. 2021.
Mark Stanley, A. Keypad Library for Arduino. 2009. Dispońıvel em: ⟨https:
//playground.arduino.cc/Code/Keypad/⟩. Acesso em: 29 nov. 2021.
SERVICE de fornos de microondas. 2019. Dispońıvel em: ⟨https://www.newtoncbraga.
com.br/index.php/bancada-de-reparacao/52-artigos-tecnicos/artigos-diversos/
2990-art410.html⟩. Acesso em: 21 de nov. de 2021.
18
https://www.arduino.cc/en/Reference/LiquidCrystal
https://www.arduino.cc/en/Reference/LiquidCrystal
https://playground.arduino.cc/Code/Keypad/
https://playground.arduino.cc/Code/Keypad/
https://www.newtoncbraga.com.br/index.php/bancada-de-reparacao/52-artigos-tecnicos/artigos-diversos/2990-art410.html
https://www.newtoncbraga.com.br/index.php/bancada-de-reparacao/52-artigos-tecnicos/artigos-diversos/2990-art410.html
https://www.newtoncbraga.com.br/index.php/bancada-de-reparacao/52-artigos-tecnicos/artigos-diversos/2990-art410.html
	Introdução
	Revisão da Literatura
	LiquidCrystal.h
	Keypad.h
	Materiais e Métodos
	Resultados
	Conclusão

Outros materiais