Aos poucos o meu controlador de rotores vai se formando, na verdade ele já está quase todo montado, mas vou revisando as etapas para ir melhorando o hardware e fazendo o software mais inteligente e rápido.
Uma das peças fundamentais do controlador é a fonte de 5 volts, além de se manter estável ela deve filtrar os ruídos que com certeza serão produzidos pelos relés que vão chavear algo em torno de 40v, o que já gera um certo “faiscamento” nos contatos internos. A solução é simples, um capacitor eletrolitico grande, algo entre 1000 ou 10000uF é utilizado na entrada, ele deve filtrar os ruídos gerados pelos relés e estabilizar o fornecimento de energia, quanto maior melhor, ou quase isso, se ficar muito grande o circuito não vai ser desligado quando for cortado o fornecimento de energia, o capacitor vai segurar o circuito ligado por algum tempo e isso pode não ser desejado. O regulador de tensão que utilizei foi o 7805, ele é estável o suficiente, e consegue lidar com a corrente necessária apesar de estar usando um dissipador e ele esquentar. Após o regulador utilizo um capacitor cerâmico de 100000pF, que tem a função de filtrar algum ruído que possa ser gerado pelo regulador de tensão 7805.

Fonte, capacitores e regulador de tensão
Ainda quando estava montando o controlador para o Si570, junto as brigas com o AVR-GCC que não “sabia“ calcular números unsigned long double e que foi resolvido pelo Diego Eckhard, o problema foi como apresentar números grandes no LCD, as funções do Arduino para controlar o LCD apenas recebiam strings ou chars.
A Solução foi criar uma nova função:
void LCD4Bit::printmalvada(unsigned long n, unsigned long base)
{
unsigned char buf[8 * sizeof(long)]; // Assumes 8-bit chars.
unsigned long i = 0;if (n == 0) {
print(’0′);
return;
}while (n > 0) {
buf[i++] = n % base;
n /= base;
}for (; i > 0; i–)
print(buf[i - 1] < 10 ?
’0′ + buf[i - 1] :
‘A’ + buf[i - 1] – 10);}
“printmalvada” foi um nome dado meio que na brincadeira com referência a piada do “galo bom e do galdo malvado“, eu cheguei a enviar ela para o responsável pelo biblioteca LCD4Bit, mas hoje que esta biblioteca foi “incorporada” a biblioteca LiqudCristal padrão do Arduino. Esta incorporação me pareceu uma saída bem elegante, mas no entanto me parece não ser mais possível utilizar um LCD apenas com 6 portas, mas apenas com 7, por isso continuo utilizando a LCD4Bit.