Mais um update a esta engenhoca...
Quando se tenta gastar o menos possível a contrapartida é o longo tempo de espera para que algo chegue a casa...
Tal como já tinha dito na parte 1 uma parte principal era o RTC (Real Time Clock, wiki). Os módulos à venda no ebay são extremamente baratos, já possuem um suporte para pilha (caso a energia ao circuito falhe, o relógio não perde os dados) e têm imensas funções, muitas das quais nem sequer vão ser usadas aqui...
Uma rápida procura levou-me à compra de um módulo com um DS1302 da MAXIM, que me custou cerca de 80 cêntimos, tal como podem ver no ebay.
O DS1302 conta segundos, minutos, horas, dias do mês e da semana, etc..., para mais detalhe aconselho uma leitura do datasheet.
Ora, o módulo chegou e o que interessa é colocar isto a fazer o trabalho que lhe é devido... enviar as horas certas quando solicitado.
Este IC usa um protocolo de comunicação chamado 3-wire interface. Muitas confusões são criadas em torno disto... isto funciona como o I2C? Funciona como o SPI?
Muito li em torno disto e fartei-me do que lia pela internet e fui ao único sitio onde isto tinha de estar claro: o datasheet!
Na figura 4 (pag. 8) esta tudo o que é preciso e este protocolo é facilmente implementado em software (explicado em seguida).
A comunicação pode ser dividida em dois tipos: a leitura de um byte e a escrita de um byte para o RTC.
A leitura de um byte do RTC é feita enviando o endereço do byte a ler e nos 8 clock's seguintes irá ser recebida a informação contida nesse byte. Os endereços disponíveis no DS1302 podem ser vistos na tabela 3 do datasheet, tal como as respectivas "respostas".
O RTC guarda o estado do pino I/O (bit 0 ou 1) no flanco ascende do clock e passados 8 flancos, ele já recebeu o endereço completo e nos próximos 8 pulsos, no flanco descendente, irá enviar o byte contigo no endereço.
A escrita de um byte para um endereço do RTC, é feita de forma muito semelhante. São enviados 16 pulsos de clock, os primeiros 8 correspondentes ao endereço e os seguintes correspondentes ao byte a guardar.
Mas melhor que isto,  a figura 4 explica bastante bem como tudo se processa. 
Para colocar o RTC em funcionamento e retirar alguns valores, fiz o seguinte código que com os comentários penso que fica bem explicito o que se passa em cada etapa.
Neste caso, usei um PIC18F46k20 para testar o módulo, embora não seja este que irei usar no circuito final.

Alguns defines importantes para as funções de escrita e leitura:

Função de inicialização:

Função de leitura:

Função de escrita:

Bem... agora que finalmente chegou o RTC e já consegui comunicar com ele é altura de começar a montar tudo.
Não percam os próximos episódicos...

Olá.
Surgiu tempo para fazer mais uma "invenção"... um relógio com 2 ponteiros ligados a 2 servos.
Um dos ponteiros irá apontar as horas e o outro os minutos, como um relógio comum, mas em 2 mostradores diferentes.
Um semi-circulo das horas de 0h a 24h e outro semi-circulo em oposição com os minutos de 0min a 60min.
O tempo será lido, obviamente, a partir de um RTC (Real Time Clock). Consegui um módulo no ebay (ver AQUI) por cerca de 0.70€.
A ideia será usar um pequeno micro para comandar os servos de acordo com o que será lido do RTC. Como este já tem suporte para a pilha, será óptimo, pois mesmo que se desligue da alimentação, não é necessário acertá-lo novamente.
Para acertar as horas, quero fazer algo simples como uma comunicação série, levando a uma interrupção no programa do micro e reescrevendo data e horas no RTC, actualizando os valores.



Pequeno video do primeiro teste, com saltos de 50uS.
Agora é esperar que o módulo com o RTC chegue.