Prototipo de sistema de massagem com microcontrolador PIC
Por: Renatosax • 9/1/2019 • Ensaio • 1.675 Palavras (7 Páginas) • 240 Visualizações
Dispositivos Usados no Circuito
PIC16f877a
O PIC16f877a é um microcontrolador da família 16f que possui 40 pinos, sendo que destes 7 são usados para alimentação e controle do mesmo. A figura 1 mostra o encapsulamento do PIC.
[pic 1]
Figura 1 – Esquema com a pinagem do PIC16f877a para o encapsulamento PDIP.
O pino 1suporta três níveis de tensão. Quando este pino recebe 5V o programa gravado na memória do PIC é executado normalmente. Quando este pino estiver ligado diretamente ao terra (GND) o PIC é resetado. Quando for aplicada a tensão de 13,4V o pic entra em estado de gravação.
Circuito Desenvolvido
Toda etapa de projeto do circuito foi realizada com o auxilio do programa Proteus. Este programa dá suporte à simulação de microcontroladores PIC e outros dispositivos como Relógio em tempo Real (DS1302), displays de LCD de vários tipos, portas lógicas, cristais e componentes eletrônicos em geral, usados no projeto.
Na figura xx é mostrado o circuito desenvolvido sem o circuito de potência para os motores.
[pic 2]
Figura xx - Circuito final desenvolvido no programa Proteus.
Circuito dos Botões:
Como a lógica implementada foi baseada em ativação em nível lógico baixo o circuito dos botões foi feito conforme a figura yy. Neste circuito ao pressionar o botão nível lógico baixo é aplicado a porta do PIC.
[pic 3]
Figura yy - Circuito dos Botões
Circuito do DS1302.
Para o RTC DS1302 foi usado um cristal de 32.768 kHZ para contagem dos segundos entre os pinos 2 e 3, o pino 4 foi ligado no terra, o pino em 5V, o pino 8 em uma bateria de 3V e os pinos 5,6 e 7 foram ligados no PIC16f877a conforme figura zz.
[pic 4]
Figura zz – Esquema de ligação do DS1302.
Foi usada uma biblioteca pronta presente no próprio compilador CCS. Esta biblioteca fornece funções para aquisição de dados do DS1302 e funções para setar Data e hora no chip. Seu nome é DS1302.c
Circuito de Potência:
O circuito de potência para acionamento dos motores foi feito com o chip ULN2003a conforme a figura cc. Este esquema permite ativar cargas de até 50 V com apenas 5V provenientes das portas do CI 74LS08 (Portas and). Conforme se verifica na figura o acionamento do motor depende da saída PWM do bloco CCP1 do microcontrolador e das saídas D0 a D3, onde cada uma controla um motor. O motor será ativado quando o duty cicle do PWM for diferente de zero e o pino correspondente ao motor estiver em nível lógico alto.
[pic 5]
Figura cc – Circuito de potência para acionamento dos motores.
Circuito do LCD16x2
O circuito do LCD 16x2 usado está mostrado na figura xx. Foi usada uma comunicação com 4 bits. Para utilização do LCD foi adicionada a biblioteca LCD_16x2_lib.c que possui toda estrutura para escrever dados no display com o comando printf da linguagem c.
Funcionamento do circuito
O circuito possui oito botões, conforme a figura xx.
[pic 6]
Figura xx - Esquema de disposição dos Botões para controle do circuito.
Assim que o circuito é alimentado ele começa sua atuação no modo Data/Hora. Neste modo aparece na tela de maneira continua a hora e a data. Para tanto o microcontrolador faz a leitura contínua dos dados diretamente no chip RTC DS1302. Na figura xx2 pode-se ver no display este modo de operação.
[pic 7]
Figura xx2 – Sistema funcionando no modo Data/Hora.
Caso o Botão ON/OFF seja pressionado os motores são ativados e o modo default de massagem é acionado. Neste modo uma sequência de nove massagens é ativada cada uma permanecendo ativa por um determinado período de tempo definido na programação. Neste modo de operação o display mostra a Data/hora no mesmo formato da figura xx2 e a massagem que se está executando, alternando entre os dois em intervalos aproximados de dois segundos, conforme a figura xx3.
Se durante este modo de operação os botões “frente” ou “Trás” forem pressionados o sistema passa para a próxima massagem ou volta para a massagem anterior respectivamente. Caso se esteja na massagem nove (última massagem) e se pressione o botão “frente” retorna-se para a primeira massagem. Da mesma forma, se estiver na massagem um e o botão “Trás” for pressionado passa-se para a massagem nove. As massagens são interrompidas a qualquer momento pressionando-se o botão ON/OFF.
[pic 8]
Figura xx3 – Segunda tela apresentada no modo massagem.
Ao fim da massagem nove o modo default de massagem é desativado retornando o circuito ao modo Data/Hora.
Independente do modo de operação que se esteja ao se pressionar o botão “Menu” abre-se a possibilidade para configuração de intensidade de vibração, programação de horário para iniciar a massagem, Programação de horário para terminar a massagem, Ajuste de Data/Hora do relógio e escolha de massagem sem interrupção das massagens. Conforme as telas Apresentadas na figura xx3.
[pic 9]
Figura xx4 – Configurações possíveis pressionando o botão “Menu”.
Controle de Intensidade
Ao se pressionar menu na tela do display LCD é mostrada o controle de intensidade. A intensidade inicial é ajustada em 5 (meia intensidade duty cicle do PWM1 igual a 750) e pode variar de 1 a 10. Pressionando o botão “Frente” a intensidade é incrementada de 1 e o duty cicle do PWM1 é acrescido de 50 até o limite de 1000 (intensidade 10). Pressionando o botão “Trás” a intensidade é decrementada de 1 e o duty cicle do PWM1 é decrescido de 50 até o limite de 550 (intensidade 1).
O limite inferior escolhido foi um valor bastante afastado do duty cicle 0. Isso se deve ao fato do motor precisar de uma tensão mínima de funcionamento.
Caso a tecla menu seja pressionada a qualquer momento retorna-se para a tela do display do modo de operação atuante no momento.
Programação de Data/Hora Para Ligar
Estando no modo intensidade se o botão “Cima” for pressionado vai-se para a tela de configuração de horário para ativar a massagem. Esta configuração permite escolher ano, mês, dia, hora, minuto e a massagem em que se deseja. Conforme as telas apresentadas na figura xx5.
...