quinta-feira, 11 de agosto de 2016

Medidor de Tensão/Corrente/Potênica com o INA226.

        Mais um medidor de Tensão/Corrente/Potênica, mas desta vez com o INA226. Assim como no projetos anteriores, tive que fazer um adaptador DIP para o INA226, pois este vem em encapsulamento VSSOP-10. Também usa o mesmo display OLED com interface I²C.
        Esta placa fiz específica para medição, não tendo os problemas da baseada no INA219. Fica tudo próximo e na mesma placa. Também tomei o cuidado de botar um regulador de tensão melhor, um que suporte 40V. Usei o LM2936, que apesar de fornecer somente 50mA, opera de 4V até 40V. Também botei bornes de parafuso, um para entrada e um para saída. Usei o PIC12F1822, pois tenho mais experiência com os microcontroladores da Microchip.

Medidor com o display OLED desconectado. Note os horrorosos adaptadores para DIP.

Lado inferior do medidor. Note o shunt de baixíssimo valor, apenas 10 miliOhms.

INA226 em ação. Optei por não mostrar a potência em detrimento de números grandes.
      Neste, o offset fico quase nulo, Asim como o INA219, o INA226 também mede a corrente no sentido inverso, mostrando um valor negativo.

Carga de teste: o CI CL6 da Supertex, que é um regulador de corrente constante de 100mA e até 100V.

        Refarei o medidor com o INA219 deste mesmo jeito futuramente, pois ele custa menos e é um pouco mais simples de usar.









Texas Instruments LaunchPad

        Comprei no ano passado dois kits de desenvolvimento LaunchPad para microcontroladores MSP430 da Texas Instruments, modelo MSP-EXP430G2, mas só há poucos meses comecei a estudá-los.
        O LaunchPad é composto de uma ponte USB-Serial TUSB3410 e um microcontrolador MSP430F1612. Tem dois botões e dois LEDs ligados nas I/Os do microcontrolador que vai no soquete DIP de 20 pinos. Ele vem com dois microcontroladores, um MSP430G2452IN20 e um MSP430G2553IN20 e um cristal avulso de 32768Hz.
MSP-EXP430G2.

Detalhe da pinagem.
        Um dos LaunchPad modifiquei para meu uso: troquei o soquete de DIP de 20 pinos por um ZIF de 14 Pinos, adicionei o cristal de 32768Hz e as barras de pinos.

MSP-EXP430G2 após as minhas modificações com um MSP430G2231 ao lado.

Abaixo do MSP-EXP430G2, o display OLED com interface I²C e o adaptador para conectá-lo. Este adaptador já tem os resistores de pull-up de 2k para o barramento I²C.

Display OLED conectado ao MSP-EXP430G2

        É possível programar/depurar microcontroladores externos ao MSP-EXP430G2. Há uma ponte de cinco jumpers com o header de programação Spy-by-Wire. Fiz um cabo para tal, facilitando muito minhas montagens.

Cabo para programação externa Spy-by-Wire ligado a uma pequena placa com o MSP430G2230.


        Alguns cuidados devem ser tomados para programar externamente:
- Pino TEST/SBWTCK ligado somente ao header de programação;
- Pino RST/SBWTDIO ligado a um capacitor de 1nF e um resistor pull-up de 47k;
- O microcontrolador deve ter a interface de programação Spy-by-Wire, pois há modelos que não a tem. Todos os modelos da família G tem esta interface;
- Recomendo usar somente a alimentação do MSP-EXP430G2 ao programar/depurar;

Esquema simplificado da placa da foto anterior mostrando a ligação do header de programação. O pino P1.5 não é necessário, só está ali para aproveitar o conector.
Esquema da pinagem.

        Abaixo segue a lista dos microcontroladores que já testei externamente ao MSP-EXP430G2:
- MSP430G2210;
- MSP430G2230;
- MSP430G2231;
- MSP430G2452;
- MSP430F2132;

         Testei sem sucesso o MS430FR2311, mas apesar de ter interface Spy-by-Wire, não é compativel com o MSP-EXP430G2. Ainda falta testar os outros que tenho: MSP430G2553, MSP430F2012 e MSP430F2013.

        O conceito do LaunchPad é excelente para quem inicia, especialmente o MSP-EXP430G2, pois usa encapsulamento DIP, já vem com dois microcontroladores, tem as I/Os disponíveis em barra de pinos e é direcionado à família de baixo custo MSP430G. Há outros modelos, mas este é o mais fácil de encontrar à venda.
          O IDE que usa para programar é o CodeComposerStudio, cuja versão free é limitada em 8k de código.










quarta-feira, 10 de agosto de 2016

Montagem do LASER de 50mW

        Muito tempo atrás, comprei alguns diodos LASER da Meredith Instruments para montar o meu tão sonhado LASER da morte. O diodo usado é mais potente que o comum, 50mW em vez dos usuais 5mW , e comprimento de onda de 685nm em vez de 650nm. Usei um suporte que é um cubo retangular de alumínio e na parte ótica, lentes de vidro que são mais eficiente e têm menores perdas, não de policarbonato, como é comum encontrar. A caixa, fiz o sacrilégio de usar uma da Patola.

Vista de cima.

Vista de frente, com o conjunto de lentes de vidro.

Vista lateral.

Vista traseira, com o LED de 2mm e chave.

Vista interna. O acionamento do diodo LASER é bem simples: Uma fonte de corrente constante com o LM317.

Feixe de luz entre dois espelhos.

        O acionamento do diodo LASER por corrente constante não garante o mesmo nível de emissão de luz, pois este varia com a temperatura do mesmo. Para garantir uma emissão com nível constante, deve-se usar um circuito re-alimentado que usa o foto-diodo interno do diodo LASER para compensar esta variação. Na prática, esta variação é pequena e para minhas aplicações é desprezível.



Medidor de Tensão/Corrente/Potência com o INA219

        Como havia comentado no post anterior, a Texas Instruments lançou uma linha de ADCs com interface I²C específicos para medir corrente e tensão de forma muito simples. Este projeto é baseado no INA219, que mede a tensão, corrente (nos dois sentidos) e calcula a potência. Ele usa um resistor shunt de valor muito baixo, da ordem de mili-ohms. No meu projeto usei um de 0,020R SMD retirado de uma placa de notebook. Os medidores de carga da bateria nas placas de notebook usam muitos estes resistores de precisão e baixíssima resistência.
       O medidor usa um display OLED, com o controlador Solomon Systech SSD1306, com interface ajustada para I²C e um MSP430G2230 para controlar tudo.
        Neste projeto há duas placas, uma com o microcontrolador e display e outra com o INA219. O INA219 está disponível com encapsulamento SOIC-8 ou SOT23-8, ganhei amostras deste último, assim fiz um adaptador para DIP.

Placa com o MSP430G2230 e regulador de 3,3V embaixo do mesmo e com o display OLED desconectado.
Pinagem da placa com o MSP430G2230, que pode ser usada para outras finalidades.


Placa do INA219 adaptado para DIP, mostrando o sentido da corrente. Se usa-lá circulando uma corrente contrária ao indicado, o INA219 mostrará uma corrente negativa.

Placa do INA219 no lado inferior, mostrando o shunt SMD de 20 miliohms retirado de uma placa de notebook.

INA219 em ação. Note que a alimentação vem da placa do mesmo. Os valores indicados são respectivamente de cima para baixo:
- Tensão através do shunt, 10uV LSB (mas está com a vírgula no lugar errado);
- Tensão em Volts, 4mV LSB;
- Potência em Watts;
- Corrente em Ampéres;

        O INA219 ficou com um offset considerável no valor da corrente, cerca de 30mA, e um pouco no valor da tensão, mas acho que é por causa da montagem "aranha", futuramente farei uma integrada em uma só placa. Por hora já esta com a precisão que preciso e prova o funcionamento do firmware. Comecei a estudar o MSP430 há poucos meses e ainda estou penando muito para programá-lo.

Medidor de Tensão/Corrente dos barramentos 3,3V, 5V e 12V de fonte ATX com o INA3221

        A Texas Instruments lançou uma linha de ADCs com interface I²C específicos para medir corrente e tensão de forma muito simples. Destaco aqui o INA219, o INA226 (parecido com o anterior, mas mais preciso) e o INA3221 do qual este projeto é baseado.
        Este IC mede a tensão e corrente em três barramentos, perfeito para medir e monitorar as saídas de uma fonte ATX. Ele usa resistores shunt de valores muito baixos, da ordem de mili-ohms. No meu projeto usei 0,020R para o barramento de 3,3V e 0,010R para os barramentos de 5V e 12V.
       O medidor usa um display OLED, com o famoso controlador Solomon Systech SSD1306, com interface ajustada para I²C, um PIC12F1822 para controlar tudo e um sensor de temperatura de precisão LM73, também I²C para medir a temperatura do processador.
        Comecei pelo cabeamento, que deve ficar entre a saída da fonte e entrada de alimentação da placa mãe do computador. Os shunt são SMD, foram retirados de placas de notebooks e foram soldados em pequenas placas recobertas com fita isolante auto-fusão. Destas pequenas placas saem dois fios: a entrada de corrente e tensão e saída de corrente para o INA3221. Sendo três barramentos, totaliza seis fios mais o GND e alimentção oriunda do 5V Stand-by.
Cabeamento e conectores. Note que os 12V da alimentação do processador também passam pelo mesmo shunt da placa.
Os conectores servem para conectores de 20 ou 24 pinos.
        O INA3221, gentilmente cedido pela  Texas Instruments através de envio de amostras, vem apenas no encapsulamento Plastic Quad Flatpack, assim tive que fazer um adaptador para DIP. O PIC12F1822 só consegui em SOIC-8, também adaptado para DIP.
        A placa é alimentada pelo barramento 5V stand-by, cuja tensão/corrente não é monitorada. Nela há um regulador linear de 3,3V.
        A medição de temperatura é feita pelo LM73, um sensor bastante preciso, mas que está disponível somente em SOT23-6. Em vez de fazer um adaptador para DIP, soldei direto em uma pequena placa, com a face superior livre para fazer o acoplamento térmico no dissipador do processador. Também testei com o TMP100, outro sensor I²C, mas menos preciso.
       Este medidor só mede a energia que vai para a placa mãe, não mede de periféricos como o HDD ou DVD-RW.

Placa do medidor com o conector do OLED no topo, I²C a esquerda, programação/debug a direita e alimentação/sensores em baixo. A cola cinza é uma resina epoxi da 3M.
Soldar os fios no encapsulamento Plastic Quad Flatpack foi o mais difícil.
Pinagem da placa, dos adaptadores e da módulo LM73

Placa alimentada com o 5V stand-by, com os outros barramentos desabilitados (computador desligado). A temperatura está marcando -1,03°C erroneamente pois o sensor não está conectado.

Placa mãe ligada, rodando Windows7 mas ociosa. É uma MiniITX baseada no Intel Atom N270. Note que a energia total consumida é pequena:
3,400V x 0,298A = 1,01W;
5,070V x 1,028A = 5,1W
12,328V x 0,144A = 1,8W
Total 6,2W
Está sendo monitorado somente o consumo da placa, excluindo periféricos como o HDD e DVD-RW.

Com o teste de performance do 7-Zip rodando, o consumo aumentou:
3,392V x 0,298A = 1,01W;
5,032V x 1,836A = 9,3W
12,400V x 0,144A = 1,8W
Total 12,0W
Note que só o barramento de 5V aumentou o consumo pois esta placa não usa o conector auxiliar de 4 pinos e 12V.

        O INA3221 é bastante preciso para medir tensões, não necessitando de nenhuma calibragem. Já a corrente, deve ser calibrada com uma constante definida na inicialização do mesmo pois depende do valor do shunt usado. Gostei muito da estabilidade das leituras do INA3221, pois internamente ele pode fazer a média de até 1024 leituras. Ligando uma carga resistiva em uma fonte estabilizada, a leitura se mantem estável mesmo nos mili-volts.

Esta placa é do INA219, outro projeto, mas mostra como o shunt SMD fica na placa. Note que é um valor muito pequeno, apenas 20 mili-ohms.


        Testei em outra placa-mãe com o conector auxiliar de 12V para o processador e funcionou perfeitamente, com a diferença que o consumo varia mais no barramento de 12V ao invés do de 5V como nesta placa Mini-ITX.
        A ligação do INA3221 com o shunt deve ser feita nos terminais do resistor, pois qualquer segmento de fio ou trilha na placa já influi na leitura e deve ser o mais curta possível.

FrankTV, uma TV LCD feita de restos de outros aparelhos.

FrankTV (FranksteinTV)

        Como conserto computador e video-game de vez em quando, preciso de um monitor que tenha todas as entradas: video composto, video componente, VGA e HDMI. As TVs LCDs de até 5 anos atrás têm todas essas entradas, mas o custo é proibitivo para mim, mesmo usadas e em mau estado.
        Um dia ganhei uma com tela quebrada devido à ação de um diabólico gato (sempre aparafusem suas TVs na parede!), só precisava trocar a tela LCD. Mas o custo de uma tela é quase de uma TV nova, inviabilizando o plano.
Retrato falado do destruidor de TVs
        Pesquisei então telas menores e usadas de monitores, que tivessem 4 canais de dados LVDS e resolução de 1366x768. Penei muito para achar uma compatível e com preço aceitável, pois as novas giram de R$250 a R$300 e não podia arriscar tanto dinheiro. Enfim achei uma tela numa assistência técnica que a vendeu por R$70. Com a tela em mãos comecei a montar a FranksteinTV. Assim como a infame criatura do romance de  Mary Shelley, ganhou vida com eletricidade e partes de diversas fontes:

- A tela: única peça comprada, veio de um monitor desconhecido. Ela tem duas lâmpadas de cátodo frio, pouco contraste e reduzido ângulo de visão, mas funcionou;

Conector de 30 pinos da tela LCD com as devidas alterações na alimentação (somente 5V). Note que esta tela usa quatro pares de dados LVDS mais o CLOCK, totalizando cinco pares diferenciais de comunicação.
Conector na placa principal da TV, também com as devidas alterações. Um detalhe interessante é que pode-se selecionar a alimentação da tela LCD em 5V ou 3,3V.

- A fonte: veio de um monitor da Samsung, não sei o modelo, mas fornece 12V e 5V, além do inversor para as duas lâmpadas de cátodo frio;
Fonte do monitor Samsung, com as saídas de 12V e 5V. Note o outro transformador do inversor com os conectores para as lâmpadas.

- Placa principal: veio da TV, vítima do felino louco, uma AOC de 32" não lembro o modelo. Tive que fazer uma pequena alteração no amplificador de áudio classe D para poder funcionar com 12V, pois a fonte da original era de 24V. Também troquei o dissipador do SoC, pois este esquenta muito;
Placa principal. Com todas as entradas.

- Alto falantes: dois, vieram de uma Samsung 40" FullHD novinha que funcionou por menos de 1 hora, vítima de outro gato (novamente aparafusem suas TVs na parede!). Falta fazer as caixas acústicas, o som fica horrível com os alto falantes sem a câmara acústica.

       Muito importante ter a documentação (datasheet) da tela LCD para fazer esta montagem, pois tive que alterar os fios de alimentação no cabo LVDS. As linhas de comunicação LVDS permaneceram as mesmas, até agora não encontrei uma pinagem diferente destas linhas em outras telas LCD que usam este conector de 30 pinos.

       Montei tudo em uma chapa de alumínio, com os devidos espaçadores metálicos. A fonte de alimentação ficou atrás da tela LCD. O teclado de controle original da TV ficou colado com fita dupla-face em cima da tela LCD. A placa com sensor infravermelho do controle remoto e com LED azul e vermelho, também original, ficou um pouco abaixo da tela.
Chapa de alumínio, com a placa principal e a fonte.

Com a tela montada e TV ligada. Esta tela tem pouco ângulo de visão e um contraste sofrível, mas serve para o propósito de manutenção.
It's alive!!!!!

Sensor infravermelho do controle remoto e LED vermelho-azul.

Teclas de interface original da TV coladas com fita dupla-face no topo da tela LCD. Note os postes de parafusos para fixação da mesma e da fonte.

       A TV tem 1366x768 mas só consigo ajustar nos computadores 1360x768, sempre sobrando 6 pixels! Mesmo no RaspberryPI configurado manualmente, sempre sobra os 6 pixels.

        Já ganhei três TVs com tela quebrada, duas por gatos. Parecem que eles têm prazer em quebrá-las.