Nos tempos modernos, aumentar a eficiência no atendimento ao público é uma prioridade. Somente os ‘eficientes’ sobrevivem a nossa ‘selva da concorrência’. Será que um painel de atendimento ajudaria seu negócio? Gostaria de fazer um você mesmo? Tem um pouco de habilidade com programação de microcontroladores e eletrônica? Então, veja este projeto….
Já há algum tempo, vemos a tendência de se usar painéis para orientar filas em caixas de banco e em supermercados. Agora, a mesma tecnologia está sendo usada para melhorar o atendimento na área de restaurantes e lanchonetes : O chamado ‘Garçom Eletrônico’ ou ‘Chama-Garçom’ , e muitos outros nomes divertidos. Alguns são implementados com complexos programas de computadores, rodando em rede, usando painéis de cristal liquido ou mesmo monitores de TV para a apresentação do atendimento.
Alguns fornecedores até mesmo implementam sistemas que monitora a eficiência de atendimento via relatório que podem ser impressos, etc. Logicamente, não entraremos neste tipo de sistema. Usaremos o velho e bom microcontrolador para fazer um sistema caseiro com painéis de leds para mostrar em dígitos de 7 seguimentos (ou poderá comprar um display gigante). Para o acionamento, usaremos controles remotos (chaveirinhos) que usem a tecnologia do ci Ht6p20b.
Veja o esquema abaixo:
DESCRIÇÃO GERAL DO CIRCUITO
O coração do sistema é o microcontrolador ATMEGA8. Neste projeto, desejava-se a gravação de 99 controles remotos de uso normal, mais 99 controles para reserva (pane do principal). Mas, usa-se 3 bytes por controle remoto na EEprom, com isto, percebe-se que daria para gravar na EEprom interna até 170 controles remotos. Mas não 198 no total. Para contornar esta ‘falta de memória EEprom’ foi feito o seguinte: São gravados apenas 99 controles na EEprom interna, e mais 99 controles na EEprom externa (24c08), via barramento i2c para comunicação nos pinos 27 e 28 do ATMEGA8. Foi usado os recursos internos do próprio ATMEGA8 que já disponibiliza por hardware interno esta comunicação (TWI), bastando apenas configurar inicialmente.
Para gravar ou apagar os controles na EEprom externa devemos retirar o jumper no conector J1, no pino 9 do ATMEGA8. No pino 14, entra o sinal provindo de um receptor comercial de rf 433 MHZ, destes usados em portões automáticos. Ele receberá as transmissões dos chaveirinhos (tx na mesa), tendo que ser da mesma frequência também. Nos pinos 17 e 18 do microcontrolador, ficam respectivamente a chave ‘DEL’ = Deletar e ‘UP’ = Incrementar. Quando são apertadas juntas ao mesmo tempo, após 10 segundos, o painel entra em modo de programação. Se a chave ‘DEL_ALL’ for acionada junto com as anteriores, entrará em modo de apagamento geral das EEprom’s. Dependendo se estiver com o jumper em J1 ou não, será apagado uma ou outra memória. O botão ‘UP’ deverá ser usado para navegar entre os números 1 a 99. Se nesta ocasião apertarmos um chaveirinho (tx de mesa), este será gravado no endereço apontado, e incrementará para o próximo número. Agora, se apertarmos ‘DEL’ apagaremos o controle que estiver gravado na posição mostrada e depois irá incrementar. O objetivo é, em caso de errar a programação, corrigir de forma individual, um controle programado erroneamente, evitando ter que regravar tudo de novo.
Para sair do modo de programação, deve-se dar um ‘RESET’ ou desligar a alimentação.
Foi previsto uma saída de som que deverá ser ligado a um ci amplificador de som (LM 386 ou outros). Neste projeto, são geradas 3 notas em sequência, usadas para chamar atenção as mudanças no painel pelos garçons ou atendentes.
A fonte de alimentação de 5 volts pode ser externa ou interna com transformador 9 v, retificadores, capacitores,regulador de tensão de 5 volts,etc.
PROGRAMAÇÃO DO SISTEMA
Para realizar a programação no Atmega8, foi usado o Prog_Avr (hardware), junto com o programa PonyProg2000 rodando em um PC.
Após carregar o arquivo Hex no ATMEGA8 e coloca-lo no circuito, conforme esquema, se tudo estiver ‘ok’ deverá aparecer nos displays apenas ‘– — –‘ , ou seja , traços. Eles indicam que nenhuma mesa requisitou serviços. O próximo passo será programar os tx das mesas.
Passos para a programação:
1) Os controles deverão ser montados ou fixados juntos a identificadores com o número da mesa( veja sugestões abaixo).
2) Coloque todos os controles principais juntos (máximo de 100 controles). Deverão estar com baterias novas em todos.
3) Coloque o Jumper no conector J1. Iremos programar a memória EEprom interna do ATMEGA8.
4) Aperte os botões ‘UP’ e ‘DEL’ juntos até aparecer a letra ‘P’. Solte imediatamente os botões. Entrou em modo de programação.
5) Aperte o tx da mesa 1, em seguida você ouvirá um toque musical e o mostrador incrementará o número para ‘P 02’.
6) Aperte o próximo tx , ou seja, da mesa 2. E assim sucessivamente até o total máximo de 99 mesas.
7) Se errar (pois ‘não a homem que não erre’), marque qual foi o número que errou, incremente até chegar novamente a ele e apague usando o botão ‘DEL’. Incremente de novo até o número e aperte o tx correto e siga dai com a programação dos próximos.
8) Para finalizar, dar um ‘RESET’ ou desligue a alimentação do painel.
9) Após programar os controles principais, poderá gravar um jogo inteiro de reserva. Para isto, retire o jumper do conector J1 (programação da EEprom externa).
10) Ao entrar em modo de programação, sem o jumper, aparecerá ‘P r 01’ (sendo o ‘r’ de reserva).
11) Com todos os controles de reserva já identificados por número de mesa, repita os passos de 4 a 8.
12) Dar um ‘RESET’ ou desligue a alimentação para sair do modo de programação.
13) Caso se perca com toda a programação, e não saiba mais o que fez, poderá apagar a memória interna e depois a externa e refazer os passos de 1 a 12.
APAGAMENTO GERAL
Retire o jumper do conector J1 e após ligar a alimentação, aperte ‘DEL’ , ‘UP’ e ‘DEL_ALL’ ao mesmo tempo por 10 segundos.
Quando aparecer a mensagem ‘APAGOU’ solte os botões. Desligue a alimentação ou de um ‘RESET’. Coloque o jumper no conector
J1. Repita a operação apertando ‘DEL’ , ‘UP’ e ‘DEL_ALL’ ao mesmo tempo por 10 segundos. Após a mensagem ‘APAGOU solte os botões. Desligue a alimentação ou de um ‘RESET’ para voltar ao modo normal ou aguarde para introduzir controles em modo de programação.
USANDO O SISTEMA
Após devidamente programado, ao apertar o botão do tx na mesa, irá gerar um número no painel e um toque sonoro. Após isto,não adianta apertar mais, que não produzirá nenhuma ação, visto que já está na fila para o atendimento. A visualização deste primeiro atendimento ficará no display mais a esquerda (dig5 e dig4). Se mais uma mesa fizer uma chamada, irá aparecer nos dígitos do meio (dig3 e dig2). Mais uma chamada, nos dígitos mais a direita (dig1 e dig0). Novas chamadas serão brevemente mostradas nos dígitos mais a direita e retornando o número anterior. A fila de chamadas comportar até 100 atendimentos sequenciais. Após uma mesa ser atendida, o garçom aperta o botão de cancelar ( ou passa um imã que aciona o reed switch que liga o botão do tx). Toca-se o som, pisca traços, e desloca a inteira coluna de atendimentos. Cada atendimento irá gerar um deslocamento até que todos sejam atendidos.
LIMITAÇÕES DO SISTEMA
Como o sistema trabalha em mão única ( do tx para o rx), se vários tx de mesa forem apertados ao mesmo tempo, não funcionará , ou talvez o de sinal mais forte seja registrado. Se alguém intencionalmente, manter apertado um controle remoto, o inteiro sistema pode não funcionar. Para remediar isto, poderá ser montado junto aos transmissores, um pequeno circuito temporizador que permita um acionamento por um período apenas e impedindo acionamento continuo. Pode se tentar colocar um capacitor de 4,7 uF em paralelo com resistor de 470 k e em serie com o botão e ver se funciona. Ou um ci 555 temporizando, ou um transistor em polarização monoestável (criatividade, avante!!!).
Interferências externas como maquinas industriais, radioamadores, etc podem ser fonte de problemas. Dependendo da sua região, poderá atenuar a situação, por escolher as frequências dos tx e receptor para uma que tenha pouca interferência. Existe controles e receptores para 230 MHZ, 315MHZ, 433MHZ, etc, além da possibilidade de recalibrar todos para uma faixa sua ‘exclusiva’. Mas exigiria muito trabalho fazer isto.
Alguns tx de mesa poderão sair da frequência com o uso por descalibrar ou bateria fraca. Portanto, deve-se optar por tx que tenham cristal para controle de frequência ao invés de simples circuito LC com trimmer (que facilmente se descalibram). Baterias alcalinas devem ser a escolha mais correta, além da constante verificação de suas cargas, antes de operar o sistema.
Outro problema é a queda da energia elétrica. Visto que a fila de chamadas está armazenada na RAM, com o desligamento da energia será perdido todas as informações. Para contornar o problema, o painel poderá ter uma alimentação por bateria que garanta que não se perca as informações em caso de falta de energia e mantenha o sistema funcionando por um período suficiente. Como sugestão plausível: uma ou mais baterias de motocicleta em paralelo, cuja tensão é de 6 volts, com um diodo em série para reduzir a 5,3 volts, alimentando o Vcc. Deve-se prever a carga automática desta bateria quando em situação normal, como é feito nas luzes de emergências (algumas tem bateria de 6 volts, podendo fornecer a energia para o painel também).
ARQUIVO ASM
O sistema foi desenvolvido em volta da rotina de recepção do Ht6p20b, e a multiplexação foi embutida dentro de rotinas como ‘DELAYM’ de atrasos de tempo e outros lugares convenientes. Não se usa interrupção, de nenhuma espécie. Poderia-se usar o timer para cadenciar a multiplexação, como opção. De tempos em tempos, os botões ‘UP’ e ‘DEL’ são examinados quanto a entrar em modo de programação. Poderia-se usar mais os ponteiro ‘Y’ e ‘Z’ do ATMEGA8, o que reduziria código, más como temos memória flash sobrando, não fiz muito caso disto.
Os primeiros 100 endereços da RAM começando por 0x0060, inicia-se a pilha da fila de atendimento. Foi deixado um espaço generoso para operações do Stack da Pilha principal, usada nas instruções de ‘RCALL’ , ‘PUSH’ e ‘POP’. Procurei marcar as partes principais do programa, com cabeçalhos específicos, facilitando o entendimento do programa.
O sistema foi testado apenas em protoboard, sendo um protótipo didático para compreensão de operação e pode estar sujeito a bugs ainda não identificados que poderão surgir com o uso na prática. Como está sendo fornecido o arquivo asm, cada hobista poderá sentir a vontade para alterar o arquivo a medida que for necessário ou por aperfeiçoamentos no sistema, a seu próprio risco.
(Obs: Confira a palavra de ‘configuração’ para certificar que esteja como abaixo:)
Segue abaixo, sequência de ‘Print Screen’ da tela do PonyProg realizando a leitura da palavra de configuração do ATmega8 :
Para alterar o arquivo asm se desejado, poderá usar o Avr_Studio para compilar.
Abaixo temos uma sequência de telas que mostram como se pode fazer isto. Inicialmente, ao abrir o programa AvrStudio irá mostrar o abaixo.
Clique em ‘NEW PROJECT’. Irá aparecer a tela abaixo, em seguida, clique em Atmel Avr Assembler e em Project Name, digite um nome para seu projeto, no caso, ‘CHAMA_G’.
Em sequencia, deverá definir o microcontrolador a usar (no caso, Atmega8) :
A seguir, clique em ‘NEXT’, irá aparecer a tela abaixo, mostrando um arquivo em branco:
A seguir, copie o arquivo asm fornecido (usando o Control_c e control_v) dentro deste arquivo vazio. Ficará como abaixo:
Agora, faça as alterações desejadas e compile novamente com a função ‘BUILD’ ou tecla ‘F7’. como abaixo:
Se tudo correu bem, veremos uma mensagem de ‘compilação bem sucedida’, e com ‘0’ erros. Senão, corrija os erros e tente recompilar de novo.
Veja abaixo uma tela, com compilação ‘ bem sucedida’:
Procure na pasta do arquivo ASM, que junto deverá estar o arquivo HEX, já pronto para ser usado com o PonyProg.
Segue o arquivo ASM:
Segue o arquivo Hex:
Segue abaixo, uma versão com som e piscadas mais rápidas:
chama_garcon_sr_asm
chama_garcon_sr_hex
E a versão para cátodo comum:
CHAMA_GARCOM_K_ASM
CHAMA_GARCOM_K_HEX
Segue opção de um drive para display ânodo comum para maior brilho:
Saida_transistores_anodo_comum
Em 06/2024 foi incluído esta versão do ‘Chama_garçom’ em ‘C’, compilado com o WinAVR (compilador gratuito):
Sugestão de tx de mesa N1 -> aqui
Sugestão de tx de mesa N2 -> aqui
Sugestão de tx de mesa N3 -> aqui
Segue abaixo, um esquema para impedir que alguém apertando o controle continuamente, atrapalhe o funcionamento (TRAVA_GRAÇA). Usa-se um PIC nos botões de acionamentos e ele que acionará os botões do ht6p20b.
Segue o arquivo ASM para o ‘Trava_graça’:
Segue o arquivo HEX com temporização no botão de ‘chamada de garçom’:
Segue o arquivo HEX com único acionamento do botão de ‘chamar o garçom’:
Ainda uma versão que, após 5 min., desliga o led de indicação e envia automaticamente transmissão para cancelar vinda do garçom:
E o seu HEX:
Segue a versão do ‘TRAVA_GRACA_SLEEP_ASM (versão de baixo consumo):
Segue a versão do ‘TRAVA_GRACA_SLEEP_HEX (versão de baixo consumo):
Manuais:
Datasheet atmega8
datasheet 24c08
Curiosidades:
Conserte seu carro com segurança
Trem sem rodas!!!
Mentir é ‘trabalhoso’
Olhando dentro do corpo
Ponte da Torre – Entrada para Londres
O planeta vivo
Outros assuntos:
Quatro dicas para lidar com problemas financeiros e dívidas
Como lidar com sucesso com os sogros
Como reagir a um assédio sexual
Como parar de adiar as coisas
Casais – Como parar de discutir
Como sobreviver ao primeiro ano de casamento
Mudanças que os filhos trazem ao casamento
Conceito correto sobre os desastres naturais
O que fazer quando seus pais estão se divorciando
Como posso controlar meu peso?
Como ter ánimo para fazer exercícios?
Até o próximo artigo!!!
ola, muito obrigado pela pagina, tudo e muito bom, enquanto a fazer uma temporizacao pra HT6P20, o mais facil e poner un R=1mohm en paralelo com un C=220nF, e isto en series con o botao que dispara o IC, gera un pulso curto (100mS) y depois se apaga, desculpe-me por meu portugues, mais sou Argentino!
Olá Leostation! Gracias por tu sugerencia.
Cláudio
Boa tarde Claudio, gostaria de saber qual o alcance existente utilizando o módulo e receptor de 433,92 MHz, estou desenvolvendo o meu próprio tx ao invés de utilizar os chaveiros de portão eletrônico.
E não estou conseguindo um alcance maior que 15m, vc teria alguma dica para me dar? Estou utilizando um encoder ht6p20b, um modulo transmissor de 433,92 compatível com o receptor colocado no display, uma antena de de aproximadamente 17 cm como indicado no datasheet de ambos, e alguns leds para demonstrar o acionamento dos botões cancelar e chamar.
Gostaria de saber se você consegue me ajudar a obter uma distancia maior para o acionamento.
Desde de já grato.
Olá Gustavo! O alcance não é muito grande dependendo dos obstáculos, poderá chegar a no máximo 30 metros. Em lugares que necessita usar em distancias maiores, é costume usar repetidores de sinal.
Eu não entendo de transmissões, somente arrisco programar pics. Portanto, não poderei ajudar neste seu problema.
Claudio
Boa noite amigo Claudio
Penso em ter visto um esquema para catodo comum, mas não estou encontrando pode me indicar onde está ?
Olá Mpaiva! Creio que se refere a este aqui. Use o Hex também para catodo comum para funcionar.
Claudio
Obrigado !! Claudio
Bom dia Claudio, desculpe o incomodo mais uma vez, gostaria de saber onde eu posso encontrar o alto falante de 8 ohms porque estou tendo dificuldades para comprá-lo, ou se existe algum outro que pode substituí-lo sem problemas?
Desde já grato!
Olá Luis! O alto falante de 8 ohms é um dos mais comuns, sendo encontrado em qualquer eletrônica de venda de peças. Poderá ser miniatura, do tipo usado em radinhos de pilhas, ou maior. Depende da caixa onde ele será montado e não é crítico. Em resumo, qualquer alto falante pode ser usado.
Cláudio
Olá Claudio, a respeito desse projeto tentei ligá-lo com uns displays simples (seis) de 2.3″ porem a baixa voltagem que sai das portas do micro creio que não me permitiria acendê-los, e também a baixa corrente em cada segmento do display não faria com que ele tivesse um brilho considerável, gostaria de saber o que eu poderia fazer para solucionar esses problemas sem alterar significativamente o projeto atual?
Olá Gustavo!
Realmente, a corrente que sai pelo emissor é limitada pela baixa tensão da base (5v -0,7v = 4,2 v).Pode-se tentar reduzir os valores de r26 a r31 para 100 ohms, aumentando a corrente dos seguimentos para 20 mA. Uma outra solução seria usar um segundo transistor para conseguir maiores correntes . Assim, maiores tensões podem ser usadas (ex. 12v). Nesta maneira, é possível fazer um display com vários leds em cada seguimento (até 5 leds em série, em 12v). Lembre-se de controlar a corrente máxima, alterando o resistor (r26 a r31) nos seguimentos.
Cláudio
Olá Gustavo!
Esqueci. Tente este circuito para maior brilho.
Claudio
Ok, Claudio. Testarei com essa configuração, desde já agradeço.
Retorno para falar do resultado.
Obrigado.
olá Gustavo!
Aguardo….
Claudio
Olá, Cláudio.
Testei aqui e deu certo.
Muito obrigado.
Abraço.