Criando um relógio digital (particularmente caro)

Gastar US$ 79 para fazer piscar um LED pode parecer extravagante para você. O que você provavelmente gostaria de fazer é criar algo mais útil com o seu BASIC Stamp. Mas gastando cerca de US$ 100 a mais você pode criar um relógio digital bem interessante. Isso pode parecer extravagante, até que entenda que as partes são reutilizáveis em uma variedade de outros projetos que queira criar mais tarde.

Digamos que você queira usar os pinos de E/S no BASIC Stamp para mostrar valores numéricos. No artigo sobre relógio digital, vimos como fazer a interface para um visor de LED de 7 segmentos usando um chip 7447. Os 7447 funcionam bem junto com o os BASIC Stamp. Você poderia ligar quatro dos pinos de E/S direto num 7447 e facilmente mostrar um número entre 0 e 9. Já que o Stamp BS-1 possui oito pinos de E/S, é fácil acionar dois 7447 diretamente desta maneira.

Para um relógio, precisamos de um mínimo de quatro dígitos. Para acionar quatro 7447 com oito pinos de E/S, precisamos ser um pouco mais criativos. O diagrama a seguir mostra um possível método:


Neste diagrama, as oito linhas de E/S do Stamp entram a partir da esquerda. Este método usa quatro linhas que entrm em todos os quatro 7447s. Então as outras quatro linhas do Stamp ativam os 7447 em seqüência ("E" nos chips significam "Enable", ou Habilitação que em um 7447, isto seria uma entrada "apagado" informada no pino 5). Para fazer este arranjo funcionar, o programa BASIC no Stamp inseriria o primeiro dígito nas quatro linhas de dados e ativaria o primeiro 7447 mudando o pino E com a primeira linha de controle. Então enviaria o valor para o segundo dígito e ativaria o segundo 7447, seqüenciando assim todos os quatro 7447s repetidamente. Conectando as coisas de forma um pouco diferente, pode-se fazer isso apenas com um 7447. Usando um chip 74154 demultiplexador e alguns drivers, você poderia acionar até 16 dígitos usando este método.

Isso é uma forma padrão de controlar visores de LED. Por exemplo, se você tem uma antiga calculadora LED, ligue-a e sacuda-a enquanto olha o visor. Você verá que apenas um dígito por vez está iluminado. O método é chamado multiplexar o visor.

Ainda que este método funcione bem para relógios e calculadoras, ele tem dois problemas:

  • os LEDs consomem muita energia
  • os LEDs de 7 segmentos podem mostrar apenas valores numéricos
Um método alternativo é usar um visor ou display LCD. Atualmente, os LCDs são amplamente disponíveis e podem ser facilmente conectados ao Stamp. Por exemplo, o visor alfa-numérico de duas linhas por 16 caracteres mostrado abaixo está disponíveis tanto na Jameco (peça número 150990) quanto na Parallax (peça número 27910). Aqui um visor simples está montado na breadboard e possui uma interface simples:


Este tipo de LCD tem muitas vantagens:

  • o visor pode ser acionado por um simples pin I/O. Como o visor contém lógica que permite ao Stamp comunicar-se com ele serialmente, então apenas um pino de E/S é necessário. Adicionalmente, o comando SEROUT no Stamp BASIC lida com a comunicação serial facilmente, tornando essa comunicação com o visor simples;
  • o LCD pode mostrar textos alfanuméricos: letras, números e até mesmo caracteres personalizados;
  • o LCD consome bem pouca energia - apenas 3 miliamperes.
O único problema é que um destes visores custa US$ 59. Obviamente, você não incluiria um desses na sua torradeira. Se você estivesse projetando uma torradeira, no entanto, provavelmente faria um protótipo com um destes visores e então criaria chips e software personalizados para acionar LCDs bem mais baratos no produto final.

Para acionar um visor destes, você simplesmente o alimenta com +5 volts e terra (o Stamp fornece ambos a partit de uma bateria de 9 volts) e conecta um dos pinos de E/S do Stamp à linha de entrada do visor. A forma mais fácil que encontramos para conectar os pinos de E/S do Stamp a um dispositivo como um LCD é usar uma ferramenta wire-wrap (Jameco peça número 34577) e um fio calibre 30 de wire wrap (Jameco peça número 22541). Assim, não é necessário soldar e as conexões ficam compactas e confiáveis.

O programa BASIC a seguir fará um BASIC Stamp se comportar como um relógio e informar as horas no LCD (imaginando que o LCD esteja conectado ao pino de E/S 0 no Stamp):

pause 1000    'espera que o display LCD inicie      
serout 0, n2400, (254, 1)    'limpa o display  
serout 0, n2400, ("hora:")    'Escreve "hora:" no visor  'pré-ajuste antes de carregar o programa       
b0 = 0      'segundos       
b1 = 27       'minutos
b2 = 6       'horas  
repetir:       
b0 = b0 + 1      'incrementa os segundos       
if b0 < 60 then minutos   
_b0 = 0      'se segundos=60     
_b1 = b1 + 1      ' então incrementar os minutos  
minutos:     
if b1 < 60 then horas        
_b1 = 0      'se minutos=60         
_b2 = b2 + 1     '  então incrementa as horas      
horas:  
if b2 < 13 then mostra         
_b2 = 1       'se horas=13 volta para 1         
mostra:   
serout 0, n2400, (254, 135)       'posiciona o cursor no display,       'então mostra o tempo
serout 0, n2400, (#b2, ":", #b1, ":", #b0, "    ")    
pause 950               'pausa 950 milisegundos       
goto repetir               'repete  

Neste programa, os comandos SEROUT enviam dados ao LCD. A seqüência (254, 1) limpa o LCD (254 é o caracter "escape" e 1 é o comando para limpar o visor) A seqüência (254, 135) posiciona o cursor. Os outros dois comandos SEROUT simplesmente enviam strings de texto para o visor. Este método criará um relógio razoavelmente preciso. Ajustando a instrução PAUSE você pode usar a precisão dentro da faixa de alguns segundos por dia. Obviamente, em um relógio real conectaria um botão de pressão ou dois para facilitar as configurações - neste programa, você pré-ajusta o horário antes de fazer o download do programa para o Stamp.

Embora este método seja simples e funcione, não é muito preciso. Se você quiser maior precisão, um bom método seria conectar um chip de relógio tempo real ao seu Stamp. Assim, a cada segundo aproximadamente, você pode ler as horas do chip e exibi-las. Um chip de relógio de tempo real usa um cristal de quartzo para obter uma excelente precisão. Chips de relógio geralmente contêm também informações de datas e suportam correções de ano bissexto automaticamente.

Uma maneira fácil de fazer a interface do chip de tempo real a um Stamp é usar um componente chamado Pocket Watch B.


Módulo Pocket Watch B

O Pocket Watch B está disponível tanto pela Jameco (peça número 145630) quanto pela Parallax (peça número 27962). Esta peça é do tamanho de uma moeda de 1 real e contém o chip de relógio, cristal e uma interface serial; assim, apenas um pino de E/S é necessário para se comunicar com ele. Este componente custa aproximadamente US$ 30.