Um pouco de software e um pouco de Hardware

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

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.

About Henrique

Pensei em enumerar as coisa que faço/sou mas isso não gera uma verdade absoluta sobre mim, o importante é que eu gosto de inventar e descobrir. :)
This entry was posted in avr, Eletrônica, Informática, Radio Amador. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>