Skip to topic | Skip to bottom
www.postcogito.org
          ...sine propero notiones
Kiko
Você está aqui: Kiko > PostsEmPortugues > PtBrBlogEntry2008Feb10A Imprimível | fim do tópico


Start of topic | Skip to actions
English Version

Fase I da montagem
O dispositivo ainda incompleto mas já funcional,
capaz de dar partida, comunicar-se via serial e
medir voltagem e freqüência. Clique para ampliar.
Onda Senoidal Achatada
Medindo a voltagem no pino ICP da MCU com o
osciloscópio, surpreendi-me ao constatar uma
onda senoidal um tanto achatada no topo.

Começando a Montagem do Monitor de Linha Elétrica

Rec 10-fev-2008 20:11

Ao longo das últimas duas semanas, gastei meu "copioso" tempo livre montando o protótipo do monitorador de falhas de energia elétrica. Montei a fonte, unidade de condicionamento do sinal, o microcontrolador e o conversor de nível serial.

No momento, o firmware suporta:

  • Comunicação serial baseada em interrupts com uma FIFO de transmissão de 120 bytes
    • simplifca a programação porque podemos gerar mensagens consideravelmente grandes e a rotina de interrupção se encarrega de transmitir cada byte
  • Uma interface de usuário baseada em linha de comando com editor de linha ultra-simples
    • Apenas ENTER e Backspace, sem setinhas
  • Relógio de Tempo Real com calendário, com as viradas de mês corretas de acordo com o número de dias de cada mês e tratamento de anos bissextos, correto até o ano 2099;
  • Rotinas para imprimir números decimais em vírgula fixa
  • Registra a data/hora e duração da queda de energia mais recente

Comandos disponíveis no momento:

  • ver: mostra número da versão
  • time: define hora atual
  • date: define data atual
  • log: ativa exibição das medidas uma vez por segundo; qualquer caractere desativa
  • reboot: pula para o bootloader para atualizar o firmware

Eu tirei essa foto momentos antes de soldar o cristal e o conector ISP. Logo após plugá-los, as medições de freqüência ficaram bem próximas de 60.00Hz, tal como eu previa.

As medições de voltagem ficaram a +/- 5V dos 220V nominais quando usando a constante de multiplicação de 2978 que calculamos na planilha do Excel. Isso foi surpreendente, dada a quantidade de coisas que podiam dar errado. Chacoalhei a cabeça em estupefação: não estou acostumado às coisas funcionarem de primeira.

Mudei a rotina de disparo do ADC (na realidade, a rotina de tratamento da interrupção do Comparador A do Timer1) para puxar o pino ICP para terra por alguns microssegundos pouco antes do ADC iniciar a medida e pluguei tudo isso no osciloscópio, de forma que pude ver exatamente em que ponto da onda a medida estava ocorrendo. Estava um pouco além do pico da onda; eu reduzi a contagem de acordo para colocá-la o mais visualmente próximo do centro que pude. Fez pouca diferença, entretanto, por causa de uma pequena surpresa: a forma de onda vindo da minha tomada não era uma senoide lá muito bonita -- ela estava com um estranho achatamento, como mostra a figura.

De volta ao software: com a comunicação serial funcionando legal, pensei em colocar um bootloader, de sorte que eu não precisasse nem do meu programador ISP. Eu tenho um bootloader cheio de recursos compatível com o padrão AVR910, mas, com 1KiB de tamanho, é meio grande, pois suspeito que, quando terminar, o firmware vai caber raspando nos 8KiB de área de programa que o ATmega8 oferece -- eu mal o comecei e já passamos dos 3KiB de tamanho.

Procurando no Google, achei um bootloader para o ATmega16 com apenas ~430 bytes de tamaho que usa o protocolo XMODEM comumente disponível em programas de emulação de terminal para subir o firmware. Adaptei-o para funcionbar no ATmega8 e otimizei seu tamanho, fazendo-o caber em meros 256 bytes -- o menor tamanho de bootloader que o ATmega8 suporta. Agora, ele é meio minimalista: só suporta escrever na memória flash; não é possível nem ler a flash, nem ler/escrever a EEPROM embutida do AVR, nem tampouco os fusíveis. Mas funciona que é uma beleza em um espaço mínimo -- pegue-o aqui.

Até agora as coisas têm sido razoavelmente fáceis. Agora é hora de acrescentar o LCD, a EEPROM Serial e escrever código para usá-las. Isso vai ser divertido.


Próximos posts sobre esse assunto:


topo


Você está aqui: Kiko > PostsEmPortugues > PtBrBlogEntry2008Feb10A

topo

Creative Commons License   O conteúdo deste site está disponibilizado nos termos de uma Licença Creative Commons, exceto onde dito em contrário.
  The content of this site is made available under the terms of a Creative Commons License, except where otherwise noted.