PicListBr Magazine Dec 2009

Page 1

REVISTA

elétron elétro PARA UM BRASIL MELHOR

Grupo PICLISTBR

2ª EDIÇÃO - Dezembro / 2009

PROGRAMADORES AVR - AvrMiniProg PIC - PIC-RCD PicKit2 - Montagem do Kit

LED Bidirecional Controle Remoto Infra Vermelho Suporte de Cabos Elétricos Profissões: Engenheiro Bio-Médico

SCOPE

SCOPE PICLISTB

website PICLISTBR.COM Fator de Potência

R

Automação Industrial Termômetro Enrolado Sistemas Numéricos µC AVR - Aprendendo a programar ... e muito mais.


REVISTA

Eletrônica ° Eletricidade ° Mecânica Microcontroladores ° Comunicação Wireless ° Projetos ° Bancada Equipamentos ° Ferramentas Hardware ° Software

elétron

Grupo PICLISTBR ELETRO/ELETRÔNICA

SEGUNDA EDIÇÃO

Artigos e comentários dos membros integrantes do grupo PICLISTBR http://groups.google.com/group/piclistbr/?hl=pt-BR Capa da Revista: Shadow Master Revisão: Carmo Munhoz Produção e Edição: Wagner Lipnharski Artigos: Grupo PICLISTBR e Externos Esquemáticos: Autor Circuitos Impressos: Autor A Revista elétron é editada e produzida por membros do grupo PICLISTBR, uma lista de distribuição de emails existente no googlegroups, http://groups.google.com/group/piclistbr. O nosso contato para envio de matérias a serem avaliadas para publicação na revista: e-mail: revistapiclistbr@googlegroups.com. Edição 2 - Ano 1 - Volume 2 – Dezembro de 2009.

Seja você mais um autor de matérias dessa revista e concorra a prêmios de reconhecimento dos leitores. A cada 6 edições faremos uma votação popular das melhores matérias e os autores receberão um prêmio surpresa. Também votaremos a melhor matéria do ano, com um prêmio ainda melhor. As matérias poderão ter até seis páginas e abranger a área técnica eletrônica, como: análise de circuitos, projetos e construções eletrônicas, uso de ferramentas, pequenas ferramentas produzidas em casa, entrevista com profissional da área, dicas e macetes, técnica de medição e produção, novidades em eletrônicas e tecnologia, software, hardware, experiências, soluções, etc. Anexe uma foto sua à matéria, assim todos o conhecerão e saberão que você não é um sapo. Pode adicionar algumas informações ao seu respeito, tais como: local de trabalho, formação acadêmica ou profissional, tempo de experiência, etc. Participe.

EXTRA - Mutirão SCOPE LCD Ao fechar essa edição estou prestes a iniciar a nova remessa de 1, 2 ou 3 scopes em caixas menores para alguns compradores ou candidatos a redistribuir localmente entre os colegas compradores. Como todos já sabem, infelizmente o pessoal da Alfândega no Brasil não quis entender o nosso mutirão de economia no transporte e devolveu a caixa contendo uma grande quantidade de scopes e capacímetros para os Estados Unidos, ainda não recebida.

Comentários do Editor Wagner Lipnharski O nosso grupo está crescendo, ganhando força e conquistando diferentes áreas. Hoje o nosso grupo no Google tem um fervor próprio, que às vezes causa um certo temor: é quando inúmeros assuntos não coerentes invadem nossa caixa postal de e-mail. Mesmo assim, lá é fácil de resolver, basta usar um gerenciador e filtros de e-mail, e, quando passa do limite, a boa tecla “DEL” sempre resolve. Tratar desse possível problema na edição de uma revista é mais complicado, o ideal é a partir de já separar os assuntos. Vejam, estamos avançando em programação; Assembly, C e outras linguagens. Participantes conhecem diferentes áreas de informática, PC, Mac, Windows, Linux e Unix. Também não deixamos de lado programação de chips, área suficiente para possuir uma revista própria. Também estamos crescendo na área de hardware, aplicações, ferramentas, construção, em breve metalurgia, soldas, circuito impresso, produção, indústria e processos. Aqui cabe tranquilamente outra revista.

Novo Nome dessa nossa Revista O novo nome “elétron” é para concentrar assuntos ligados ao dia-a-dia do técnico, do engenheiro, do aprendiz e do professor. Onde se discute e se mostra diagramas, aparelhos, equipamentos, técnicas, componentes e construção elétrica / eletrônica. O nome “elétron” tem maior identidade com a proposta da revista. Se quisermos atrair mais e mais artigos, inclusive de autores externos ao grupo, é fundamental que esta revista tenha uma identidade mais coerente com os artigos publicados. Cada coisa no seu lugar. É atrás do “elétron” que fundamentamos a nossa vida de hobby ou profissional em eletrônica, nada mais justo que ele também ilumine o nosso caminho, assim como ilumina o sentido no logotipo desta revista. Quero aqui lançar o desafio, para que outras revistas sejam iniciadas, a PICLISTBR “bit” ou

2

PICLISTBR “constrói”, ou PICLISTBR “cursos”, onde voluntários se dedicam a criar uma identidade própria para cada uma.

Nova Diagramação A nova diagramação das páginas com três colunas, tenta tornar a leitura mais fácil e promover um melhor fluido nas matérias. Sempre que possível e existentes, publicaremos ao final da revista as imagens 1:1 dos circuitos impressos relativos aos artigos publicados.

Agradecimento Agradecimentos aos participantes com matérias e serviços, que tornam essa revista uma realidade. Também agradeço as palavras de incentivo vindas de todo o nosso grupo PICLISTBR.

A Grande Novidade ??? PEDRO DRUMMOND, quem mais poderia ser? Agora também colabora na nossa revista, com todo o bom tempero e perfumes do nosso rico, complicado, saboroso e amado idioma.

Nessa Edição Organizador de Cabos ............................... 3 Programador PIC-RCD ............................... 4 Pedro Drummond...................................... 5 Programador AVRMiniProg ...................... 6 Controle Remoto I.R. ................................ 8 Engenharia Bio-Médica ........................... 11 LED Bidirecional ....................................... 12 Quente Quente Quente .......................... 14 Automação Industrial .............................. 15 Fator de Potência .................................... 16 Direto da China........................................ 27 Termômetro Enrolado ............................. 28 Sistemas Numéricos ................................ 29 Sistema Numérico Maia .......................... 31 Atmel AVR e Assembly ............................ 32 AVR Laboratório Simulado .................... 36 FIP - Fonte de Instrumentos PicListBr ..... 37 Osciloscópio LCD PicListBr ..................... 37


Organizador de Cabos Por Wagner Lipnharski – Orlando Florida. Após alguns anos coletando todo tipo de cabo elétrico de conexão, de alimentação e pontas de prova, nos deparamos com uma infinidade de rolos, amarrados, emaranhados infindáveis que tentamos nos debater em organizar, muitas vezes com total insucesso. As primeiras tentativas de organização iniciam em separar em caixas de papelão, mas mesmo os cuidadosamente enrolados e amarrados terminam se embaraçando com conectores de outros cabos e ao final tudo continua embaralhado.

Usando a broca de 5 mm, faça um furo em cada marca, de forma a atravessar completamente o cano. Tome o cuidado de furar o cano exatamente no centro. Esses furos servirão para parafusar os canos as três ripas. Com a broca de 10mm, aumente os 3 furos do mesmo lado do cano. Esses são furos de trabalho e servirão para entrar com os parafuso e chave de fenda, a parafusar a parte de trás dos canos às ripas.

Já tentei diversas soluções “mais inteligentes” que sempre ajudam, mas não resolvem definitivamente o problema.

Prepare os 14 tubos de 130 cm com os mesmos cortes da figura 2. Alinhe esses 14 tubos sobre os já parafusados pela extremidade de baixo. O topo desses tubos estará 10 cm abaixo do topo dos anteriores. Observe onde os encostam nos parafusados e aplique cola de PVC entre eles, um a um. Aplique uma leve pressão em cada tubo por 1 minuto, para a cola fazer bom contato. Repita a colagem para todos os tubos dessa camada. Se duas camadas de tubos forem suficientes, a montagem está concluída, caso contrário aplique da mesma forma os outros 13 tubos mais curtos.

A solução proposta que promete “milagres” e que pretendo implementar já nas próximas semanas é a instalação de tubos guia. O meu projeto para organizar 42 cabos, requer o seguinte material: • 3 tábuas 2x1” (50x25mm) por 80cm. • 15 tubos de PVC de 50mm por 140cm. • 14 tubos de PVC de 50mm por 130cm. • 13 tubos de PVC de 50mm por 120cm. • 45 parafusos auto-atarrachantes de 20mm. • 1 lata de cola de PVC (encanador).

As três ripas serão usadas como elemento de suporte do conjunto. Usando a broca de 5 mm faça dois furos na parte mais larga de cada ripa, a 15 mm de cada extremidade. Esses furos serão usados para afixar as ripas na parede, porta, armário, etc., via parafusos ou ganchos presos à parede. Usando o lápis marque os 15 tubos de 140 cm 50mm de cada extremidade, e mais uma marca exatamente no meio, 70cm. Essas marcas deverão ser circulares ao redor de cada cano.

Após os 15 tubos estarem furados, marque a ripa superior bem no centro, insira um parafuso de 20 mm de comprimento pelo furo de 10 mm, passe pelo furo de 5 mm e, usando a chave de fenda pelo furo de 10mm, por dentro do tubo, parafuse o primeiro tubo à ripa. Repita a operação para a ripa no centro do tubo e a ripa na outra extremidade do mesmo tubo.

Em seguida aplique a cola de PVC onde os tubos encostam uns nos outros. Aguarde 30 minutos para que a cola seque completamente.

Até que finalmente lembrei-me de uma solução adotada por fabricantes de estojos “wire-wrap” e que usávamos na IBM. Simples tubos, porém com cortes para engate dos conectores.

Inicia-se por cortar os canos de PVC na medida e lixar as extremidades para deixá-las lisas e sem rebarbas.

A idéia é que o cabo entre por dentro do cano, a sua ponta dobre pela abertura e vire para fora de forma que o conector, garra jacaré, etc., da ponta do cabo não passem e ali fiquem pendurados.

Intercale os outros 14 tubos de um lado e de outro do tubo central e vá emparafusando um a um, com o cuidado de não deixar espaço entre os tubos e não acavalar. A melhor forma de conseguir esse objetivo é fazer esse procedimento no chão, encostando o topo dos tubos na parede e mantendo-os perpendiculares à parede. Ao final terá 15 tubos parafusados às três ripas, num formato retangular.

Entre elas já usei ganchos presos na parede, cabideiros, varal de cabos, etc. Tudo o que obtive foi um pouco de organização, mas os cabos continuam enroscando uns nos outros, e nenhuma dessas soluções mostrou-se prática e, o mais importante, transportável.

As seguintes ferramentas são necessárias: • Furadeira com brocas de 5mm e 10mm • Chave de fenda, Serra de cano • Lima redonda, Lixa (200 a 300) • Régua, Lápis

feitas no mesmo cano, de forma que esse sirva para diferentes cabos.

Figura 1. Furação dos primeiros 15 tubos

Agora prepare o engate dos cabos, que nada mais é que um ou mais cortes verticais na parte de cima e no lado frontal do PCV, conforme a figura 2 ao lado. Esses cortes podem ser feitos com a serra de cano e lixados de acordo. A largura desses cortes deverá ser equivalente à espessura dos cabos a enfiar nesse tubo. Diferentes larguras podem ser

3

Ao final parafuse a ripa superior na parede, porta, etc., ou engate em ganchos previamente parafusados na parede. Abaixo uma representação de 15 tubos (6-5-4).


Dispostitivos suportados

Programador PIC-RCD Daniel José Viana e-mail: danjovic@vespanet.com.br Introdução: O programador RCD é um programador de PICs para porta serial, muito simples de ser montado e utilizado. Este artigo tem como objetivo apresentar este programador e fornecer um breve descritivo sobre o seu funcionamento. Para saber maiores detalhes, consulte o URL original do projeto: http://feng3.cool.ne.jp/en/rcd.html

Descrição de funcionamento: O programador RCD é uma variação do JDM, URL: http://k9spud.com/jdm/ que permite programar PICs que utilizam o algoritmo "VPP antes do VDD", pois no JDM original a tensão VDD é presente todo o tempo. O nome RCD vem de "resistor", "capacitor" e "diodo", que são os componentes utilizados para montá-lo. Este programador utiliza uma 'charge pump' para gerar a tensão VPP necessária à gravação do PIC, formada pelo capacitor C1, o diodo D7 e a linha TXD. O resistor R6 serve para proteger portas seriais com pouca capacidade de corrente ou que não tenham baixa tolerância a correntes de pico em seus pinos. O trimpot R3 limita a corrente aplicada ao pino VPP. Alguns PICs (como o PIC16F84) podem drenar maior corrente durante a programação, e para estes dispositivos pode ser necessário ajustar este potenciômetro. Compatibilidade: O programador RCD já foi testado com os seguintes PICs e programas da tabela ao lado. (1)WinPic Quando ambas as opções 'IntOSC' e 'internal MCLR' foram selecionadas, a programação ocorreu com sucesso. Contudo, logo após sair do modo 'Program/Verify' pode não ser possível ler/verificar o dispositivo. Mas o dispositivo pode ser reprogramado. (2)A identificação de dispositivo '(Device ID) do PIC12F683 é 0x0460. (3)Utilize um adaptador, programe via método ICSP. Veja exemplo para adaptador SOT23 PIC10F2xx, na URL:

PIC (nome)

Memória (Words)

PIC10F200F629 PIC10F202F629 PIC10F204F629 PIC10F206F629 PIC12F508F629 PIC12F509F629 PIC12F629F629 PIC12F635 PIC12F675 PIC12F683 PIC16F54 PIC16F57 PIC16F59 PIC16F627 PIC16F627A PIV16F628 PIC16F628A PIC16F630 PIC16F636 PIC16F648A PIC16F676 PIC16F684 PIC16F688 PIC16F818 PIC16F819 PIC16F84 PIC16F84A PIC16F87 PIC16F88

256x12 512x12 256x12 512x12 512x12 1024x12 1024x14 1024x14 1024x14 2048x14 512x12 2048x12 2048x12 1024x14 1024x14 2048x14 2048x14 1024x14 2048x14 4096x14 1024x14 2048x14 4096x14 1024x14 2048x14 1024x14 1024x14 4096x14 4096x14

Cor

Pinos

PIC Prog4U (C1) 100uF 470uF 100uF 470uF 470uF Nota N/A N/A N/A R 12.5 <= VPP <= 13.5 N/A (3) N/A N/A N/A R 12.5 <= VPP <= 13.5 N/A (3) N/A N/A N/A R 12.5 <= VPP <= 13.5 N/A (3) N/A N/A N/A R 12.5 <= VPP <= 13.5 N/A (3) J J N/A N/A R 12.5 <= VPP <= 13.5 J J N/A N/A R 12.5 <= VPP <= 13.5 J J C/R C/R R VDD + 3.5 (Max 13.5) N/A N/A C/R C/R R 10 <= VPP <= 12 (1) J J C/R C/R R VDD + 3.5 (Max 13.5) N/A N/A C/R C/R R 10 <= VPP <= 12 (2) N/A N/A N/A R 12.5 <= VPP <= 13.5 N/A N/A N/A N/A R 12.5 <= VPP <= 13.5 N/A (3) N/A N/A N/A R 12.5 <= VPP <= 13.5 N/A (3) J J C/J/R C/J/R R VDD + 3.5 (Max 13.5) N/A N/A C/J/R C/J/R R 10 <= VPP <= 13.5 (3) J C/J/R C/J/R R VDD + 3.5 (Max 13.5) N/A N/A J C/J/R C/J/R R 10 <= VPP <= 13.5 (3) J J C/J/R C/J/R R VDD + 3.5 (Max 13.5) N/A N/A C/R C/R R 10 <= VPP <= 12 (1) N/A J N/A C/J/R R 10 <= VPP <= 13.5 (3) J J C/J/R C/J/R R VDD + 3.5 (Max 13.5) N/A N/A R R R 10 <= VPP <= 12 (1) N/A N/A N/A C/R R 10 <= VPP <= 12 J J C/J/R C/J/R R VDD + 3.5 (Max 13.5) (4) J J C/J/R C/J/R R VDD + 3.5 (Max 13.5) (4) J J N/A N/A N/A 12 <= VPP <= 14 J J N/A N/A R 12 <= VPP <= 14 (5) N/A J J R VDD + 3.5 (Max 13.5) N/A J J J J R VDD + 3.5 (Max 13.5) Tensão VPP no pino MCLR

Cor

IC-Prog (C1)

WinPic (C1)

Resultado

Marca

Programador utilizado

6/8-pin

Success

J

JDM Programmer 2

14-pin

Passable

C

COM 84

18/28/40- pin

Failure

R

RCD Programmer

http://feng3.cool.ne.jp/10f/index.html#adaptor

e para PIC16F57 veja exemplo no URL: http://feng3.cool.ne.jp/gif/adptbf.gif

Para os PIC16F627A/628A/648A, remova os jumpers J1 e J2 do presente circuito. (4)WinPic Habilite a opção "raise Vdd before MCLR=Vpp" (5)WinPic Não use o WinPic para programar o PIC16F84A com o programador RCD Programmer! Use ICProg ou PICProg4U! Nota: WinPic O apagamento e a re-programação podem ser desabilitados após serem selecionadas as opções 'IntOSC' e 'internal MCLR com o WinPic configurado para interface tipo "JDM Programmer 2". Neste caso tente desmarcar todas as opções no diálogo 'Interface Test'. Programas: Os seguintes programas podem ser utilizados:

4

IC-PROG http://www.ic-prog.com/ Autor: Bonny Gijzen WinPic http://people.freenet.de/dl4yhf/ Autor: Wolfgang Büscher PiCProg4U http://feng3.cool.ne.jp/en/pp4u.html Autor: FENG3, o mesmo autor do projeto do programador. Esta versão requer o .NET Framework 1.1 ou mais recente, e tem versão em algumas línguas, inclusive o espanhol. A versão mais recente detecta a porta serial automaticamente e suporta os seguintes dispositivos: PIC10F200/202/204/206/220/222, PIC12F508/509/510, PIC16F54/57/59, PIC12F629/635/675/683, PIC16F627/628, PIC16F627A/628A/648A,PIC16F630/636/639/676 PIC16F684/685/687/688/689/690, PIC16F818/819, PIC16F84A, PIC16F87/88, PIC16F870/871/872/873/874/876/877, PIC16F873A/874A/876A/877A.


Figura 2 Sugestão de Placa de Circuito Impresso, PIC-RCD

Figura 3 Programador PIC-RCD – Diagrama Esquemático ■

Pedro Drummond Meus amigos, tenho imenso prazer de anunciar a presença do Pedro Drummond na nossa revista. A participação do Pedro, assim como a de todos os outros, é prova de que quando se quer se faz, e quando se faz, um melhor futuro nos espera. ■wlip■ Drummond é Autor do livro imperdível:

Pessoal, o Lip achou interessante termos aqui uma coluna sobre a língua portuguesa, para tentarmos reduzir o número de erros em nossa lista de discussão. Achei interessante, mesmo porque – assim como na eletrônica – quem faz também aprende fazendo; ou seja, vou aprender e relembrar algumas coisas junto com vocês. Além disso, podemos sempre colocar alguma brincadeira ou charada aqui, voltada ao tema do idioma. Quem tiver sugestões pode mandar para mim. drummond@mesadoeditor.com.br

LEMNISCATA – O ENIGMA DO RIO

www.oenigmadorio.com.br

5

Pedro Drummond


Programador AVRMiniProg Daniel José Viana e-mail: danjovic@vespanet.com.br Introdução: Quem trabalha com microcontroladores AVR e gosta de montar suas próprias ferramentas, talvez já tenha montado o programador USBASP, URL: www.fischl.de/usbasp mas este não funciona dentro do AVRStudio.

Figura 1 – Editando o arquivo app_cfg.h

Para resolver essa deficiência, Uma boa alternativa é recompilar o AVRMiniProg, URL: www.simonqian.com/en/AVRminiProg/index.html

por Simon Qian. Para tal, baixe uma das versões de "firmware" (RC2 ou TEST) e descompacte os arquivos dentro de uma pasta qualquer. Em seguida abra o projeto "AVRminiProg.aps" utilizando o AVR studio e procure na seção "Header Files" da árvore do projeto pelo arquivo app_cfg.h. Clique duas vezes sobre ele para editá-lo, veja Figura 1 ao lado. Comente (“//”) a linha que inclui o arquivo app_cfg_Full.h e descomente a que inclui o arquivo app_cfg_USBasp.h ... // Include this if use AVRminiProg_Full ... //#include "app_cfg_Full.h" // Include this if use AVRminiProg_USBasp #include "app_cfg_USBasp.h" ...

Depois vá ao menu "PROJECT->CONFIGURATION OPTIONS" do AVRStudio e mude o chip ("device") para ATMEGA8 ou ATMEGA88. O arquivo compilado tem um pouco mais de 5k, e por isso não é possível utilizar um ATMEGA48, conforme a Figura 2 ao lado.

Figura 2 – Mudando o Chip de AtMega8 para AtMega88

Depois de compilado, o AVRMiniProg.hex estará disponível na pasta "DEFAULT". Então após programar o AtMega88 com o arquivo acima, é preciso configurar os 'drivers' USB. Para isso é necessário que os 'drivers' USB que acompanham o AVRStudio estejam instalados. Para confirmar a presença de tais ‘drivers’, vá ao menu "Arquivos de Programas->Adicionar ou Remover Programas" do Windows e procure pela entrada do AVRStudio e clique no botão [Alterar], veja Figura 3 ao lado. Na janela que vai abrir, selecione a opção [Modify] e clique no botão [Next]. Na próxima janela marque a opção [Install/Upgrade Jungo USB Driver]. Em seguida clique no botão [Next] e depois em [Finish].

Figura 3 – Verificando se os Drivers USB do AVRStudio estão instalados.

6


Depois de concluída esta etapa, conecte o programador na porta USB. O Windows deve reconhecer o dispositivo "AVRISP MKII" e irá pedir para instalar os "drivers". Selecione a opção "instalar de um local especificado" e aponte para a pasta de nome "USB" que está dentro da pasta onde foi instalado o AVRStudio, veja Figura 4 ao lado. Seu programador vai estar agora pronto para uso. Abra novamente o AVRStudio e clique no botão [Conectar] ou use o menu "Tools>Program AVR->Connect", como na Figura 5 ao lado. Selecione a opção de plataforma "AVRISP MKII", a porta "USB" e clique no botão [Connect]. Se tudo correu bem, a janela de conexão irá aparecer como na Figura 6 ao lado.

NOTAS:

Figura 4 – Instalando os Drivers USB

Este programador não pode ser atualizado pelo comando "update" do AVRStudio. O Windows VISTA reconhece o dispositivo, instala os drivers, mas não funciona. ■

Figura 5 – Conectando o Programador AVRISP mkII (USB) ao AVRStudio

US$ 15.00 http://www.etekronics.com/index.php?main_pag e=product_info&cPath=1_2&products_id=2

7


Controle Remoto I.R. PARTE 1 Por Wagner Lipnharski – Orlando Florida. A Intenção dessa matéria é dar luz (literalmente) ao assunto Controle Remoto de InfraVermelho ao usuário de MicroControlador, desmistificando esse assunto que não é complexo e que permite comandar circuitos eletrônicos à distância. Aqui iremos entender o que é, como funciona e como fazer os nossos próprios circuitos de Controle Remoto. HISTÓRIA A minha primeira TV com controle remoto foi uma Semp Toshiba colorida, comprada em 1975. O controle remoto mais parecia um barbeador elétrico e possuía somente duas teclas. Power (liga/desliga) e Avançar Canal. A função liga / desliga na TV era um relê rotativo de dois estágios e a função Avançar Canal era simplesmente um pequeno motor conectado ao Seletor de Canais mecânico. Como o Seletor de Canais só atendia 12 canais, não havia muito problema em rodar 11 para retornar a um canal mais baixo. O Controle Remoto emitia ultrasom com duas frequências de modulação, uma em cada tecla. Era comum trocar de canal ao bater duas facas no ar, de alguma forma conseguíamos gerar o ultrasom e enganar a TV.

Outros chips com a mesma capacidade de transmissão, são os Philips SAA3006 e SAA3027. Esses novos chips aliados a novos e mais fortes LEDs I.R., atualmente “inundam” a sala da TV de radiação I.R. com baixo consumo de energia. Atualmente as baterias de um Controle Remoto duram meses, mesmo com uso constante. Esses novos LEDs emitem grande quantidade de I.R., consumindo pouca energia e emitindo baixíssimo calor. MAIOR ALCANCE Todo Controle Remoto por I.R. usa LEDs I.R. de média / alta potência e a informação é transmitida via modulação do feixe I.R. A intenção é fazer o receptor perceber tais mudanças de on/off ou padrão de modulação do feixe e decodificar a informação transmitida. Imediatamente percebeu-se que o feixe de I.R. não tinha grande penetração em distância, devido às inúmeras interferências no ambiente, afinal de contas praticamente tudo que possui alguma temperatura emite I.R. e isso causa um mascaramento no sinal transmitido.

NOVA TECNOLOGIA Em seguida foi desenvolvida melhor tecnologia e, novos chips foram especialmente produzidos para a função de controle remoto, como foi o caso do TA11385 (RCA) e o SAA3010 (Philips)

Circuito Completo de um Controle Remoto

Então surgiram protocolos da SONY, da HITACHI, da PHILIPS, etc. Cada um atendendo as mais turbulentas adições de mais e mais comandos, equipamentos e funções. Como muitos equipamentos na sala de estar utilizam Controle Remoto, e todos observando a frequência portadora de I.R. de 38 kHz, o protocolo de transmissão teve que conter uma forma de selecionar o seu equipamento, a TV, o Estéreo, o DVD, a Caixa Decodificadora do Cabo de TV, o CD player, etc. Na transmissão de I.R. o protocolo exige que alguns bits transmitidos selecionem o tipo de equipamento, outros bits identifiquem a função desejada, etc.

A tendência natural nesses casos é gerar uma portadora de frequência mais alta a ser modulada com o sinal a transmitir, numa operação similar à transmissão de Rádio, onde o sinal de áudio modula a radiofrequência.

O mais complicado foi fazer com que o controle remoto da Philips não interfira e não gere comandos falsos num equipamento da SONY na mesma sala.

Nesse caso, optou-se pela frequência de 38 kHz a modular o LED I.R., e o sinal a transmitir liga ou desliga essa portadora.

PROTOCOLO RC-5 Nessa primeira parte da matéria Controle Remoto I.R., estaremos analisando um dos protocolos mais comuns, o da RCA, então Philips, conhecido como RC-5, e que, tornou-se “padrão” mundial de facilidade e praticidade em emuladores, geradores de teste, e é o mais discutido entre entusiastas e hobbistas em Eletrônica.

Mais tarde surgiram os controles remotos por Infra-Vermelho (Infra-Red, I.R.), de todo tipo, formato, baterias, alcances, funções. Os primeiros eram rudimentares, de baixo alcance e suas baterias duravam pouco. Os primeiros modelos usavam baterias de 9V. O que é INFRA-VERMELHO? Infra-Vermelho é uma radiação eletromagnética cuja frequência está abaixo da Luz Visível pelo olho humano. Qualquer objeto com temperatura acima do zero absoluto gera e emite radiação na faixa do Infra-Vermelho. Apesar do olho humano não ter a capacidade de ver tal radiação, nossa pele consegue senti-la na forma de calor. Devemos entender que calor gera e emite Infra-Vermelho, mas a radiação eletromagnética cuja frequência está na faixa do Infra-Vermelho não necessariamente carrega calor. É o mesmo que dizer que uma lâmpada incandescente emite muito calor e luz visível, mas nem tudo que gera luz visível emite calor.

Por falta de um protocolo universal de comunicação os diversos fabricantes desenvolveram os seus protocolos proprietários, mas quase todos os fabricantes asiáticos voltaram o enfoque para uma única padronização. Não foi devido a nenhum acordo, mas pela disponibilidade do chip especial, usado pela maioria deles.

Por via de regra, todo Controle Remoto RCA ou Philips, Silvania ou outra marca associada de alguma maneira com a Philips, usa tal protocolo. Assim sendo, ao montar um decodificador com base nesse protocolo, você poderá controlar seus circuitos usando um controle remoto desses fabricantes. Figura 1 – Exemplo de Modulação 38kHz

MÓDULO RECEPTOR Na recepção, um módulo especialmente produzido, que possui um diodo receptor de I.R., amplificador sintonizado em 38kHz, e filtro para remover tal frequência, fornece à saída um sinal digital idêntico ao sinal originário no transmissor. Um desses módulos foi fabricado pela SONY em 1995 e teve o código SBX8020. Entre os chips decodificadores encontramos os Philips SAA3049 e TDA3048. Um circuito eletrônico então decodifica o sinal digital recebido, interpreta a informação e executa o comando enviado pelo Controle Remoto e seu usuário deitado no sofá. PROTOCOLOS DE TRANSMISSÃO

8

Na Internet encontramos muitas explicações sobre a modulação RC-5, algumas delas tentam explicar usando diferentes larguras de pulso, ou até mesmo PWM, o que é completamente errado. A modulação RC-5 é muito simples, ela se baseia em 14 ciclos com período de 1.68 ms (frequência de 593.75 Hz = 38 kHz / 64). A codificação é simples: se o bit sendo transmitido tem o nível alto (1), então a onda quadrada inicia baixa e muda para alta no meio do tempo do bit (0.864 ms). Se for baixo (0), então ela inicia alta e muda para baixa no meio do bit. Veja exemplo na Figura 2 na próxima página.


está chegando é a repetição do comando anterior, ou se é um novo comando e que poderá ser igual ao anterior. Portanto, o microcontrolador deverá manter na memória o último estado do bit 3 e invertê-lo ao enviar um novo comando. Os próximos 5 bits, de 4 a 8 representam um valor binário de zero a 31, que significa o endereço do dispositivo receptor. Endereço de Destino, bits 4 a 8, em decimal:

Figura 2 – Exemplo de Modulação RC5

Na figura acima, para melhor visualização, 32 pulsos são representados por somente 4.

chama a rotina de time-delay 13µs, não inverte o pino de saída e repete o loop.

Devido à modulação de 38 kHz, cabem exatamente 64 pulsos de I.R. de 26 µs (micro segundos) em cada tempo de bit.

A rotina BITUm faz exatamente o contrário, inicia carregando um contador com valor 32. Então chama o TimeDelay de 13µs, e não inverte o pino de saída da porta. Decrementa o contador e repete o loop. Carrega novamente o contador com valor 32, chama a rotina de timedelay 13µs, inverte o pino de saída e repete o loop.

Então, ao transmitir bit “1”, transmite-se 32 x 26 µs de silêncio e 32 pulsos de onda quadrada de I.R. com período de 26 µs cada. Ao transmitir bit “0”, transmite-se 32 pulsos de onda quadrada de 38 kHz (26 µs) e então 32 x 26 µs de silêncio. A melhor forma de fazê-lo num microcontrolador é trabalhar com interrupções, mas vamos exemplificar com rotinas de tempo via software:

O protocolo RC5 consiste em 14 bits de dados, que usará uma ou outra rotina de software. Qualquer tecla pressionada no teclado de um Controle Remoto RC5, usará tal sequência.

MAS O QUE SIGNIFICAM OS 14 BITS? Duas rotinas, uma chamada BITZero e outra BITUm. A rotina BITZero é chamada quando o bit a ser transmitido é “0”, e a BITUm quando o bit for “1”. Ambas as rotinas usam um time-delay externo, numa terceira rotina, que gasta em torno de 13 µs, a ajustar para mais ou para menos durante os testes do I.R. Um pino de porta do Microcontrolador é usado como saída via resistor de 2k2 Ω para a base de um transistor que alimenta um LED I.R. Na entrada de ambas as rotinas, o pino da porta é colocado em nível baixo. A rotina BITZero inicia carregando um contador com valor 32. Então chama o Time-Delay de 13µs, e inverte o pino de saída da porta. Decrementa o contador e repete o loop. Carrega novamente o contador com valor 32,

Os 14 bits têm o seguinte significado: Os primeiros dois bits, Bit 1 e Bit 2, são sempre nível 1, servem para o equalizador interno do Módulo Receptor. Ao manter uma tecla pressionada no Controle Remoto Philips, usando RC-5, ele irá transmitir o mesmo comando sucessivamente, separados por um breve instante de tempo. Mantendo-se a tecla “5” pressionada, a TV poderia entender que isso significa uma série de cincos, mas você só quis transmitir um único 5. Querendo transmitir 55, você terá que pressionar duas vezes a tecla 5. Como a TV entende isso? O Bit 3 no RC5 Philips, serve como indicador FLIP, e a cada nova tecla pressionada ele irá inverter de 1 para 0 ou de 0 para 1. Mantendo a tecla pressionada o bit 3 ficará no mesmo estado. A TV monitora o bit 3 para saber se o que

9

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

= = = = = = = = = = = = = = = = = = = = = = = = = = = a

TV Set 1 TV Set 2 VIDEOTEXT Expansão para TV 1 e 2 Laser Disk Player Video Recorder 1 (VCR 1) Video Recorder 2 (VCR 2) Reservado Satelite 1 Expansão para VCR 1 e 2 Satelite 2 Reservado CD Video Reservado CD Photo Reservado Pré-amplificador de Áudio 1 Receptor / Sintonizador Tape Cassete Recorder Pré-Amplificador de Áudio 2 CD Rack de Áudio Receptor Satélite Áudio Decodificador DCC Reservado Reservado CD Gravável 31 = Reservado

Os próximos 6 bits, de 9 a 14 representam o comando a ser executado pelo equipamento endereçado pelos bits de 4 a 8 acima. O bit 14 é o menos significativo e é o último a ser transmitido. A tabela dos comandos do RC5, em decimal: 0-9 12 13 14 16 17 18 19 20 21 22 23 24 25 26 27 48 50 52 53 54 55 63 71 77 78 80

= = = = = = = = = = = = = = = = = = = = = = = = = = =

NUMERIC KEYS 0 - 9 STANDBY MUTE PRESETS VOLUME UP VOLUME DOWN BRIGHTNESS + BRIGHTNESS COLOR SATURATION + COLOR SATURATION BASS UP BASS DOWN TREBLE + TREBLE BALANCE RIGHT BALANCE LEFT PAUSE FAST REVERSE FAST FORWARDPLAY STOP RECORD SYSTEM SELECT DIM LOCAL DISPLAY LINEAR FUNCTION (+) LINEAR FUNCTION (-) STEP UP


81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 118 119 123 124

= = = = = = = = = = = = = = = = = = = = = = = = = = =

STEP DOWN MENU ON MENU OFF DISPLAY AV SYS STATUS STEP LEFT STEP RIGHT ACKNOWLEDGE PIP ON/OFF PIP SHIFT PIP MAIN SWAP STROBE ON/OFF MULTI STROBE MAIN FROZEN 3/9 MULTI SCAN PIP SELECT MOSAIC MULTI PIP PICTURE DNR MAIN STORED PIP STROBE RECALL MAIN PICTURE PIP FREEZE PIP STEP UP PIP STEP DOWN SUB MODE OPTIONS BUS MODE CONNECT DISCONNECT

Agora então juntando todos os bits. Ao pressionar a tecla de STOP num Controle Remoto de VCR Philips, os seguintes 14 bits são transmitidos. Bits 1 e 2 = 1 1 (equalizador) Bit 3 = 0 (Flip bit, no próximo comando será 1) Bits 4 a 8 = decimal 5 para VCR = 0 0 1 0 1 Bits 9 a 14 = STOP dec 54, binário = 0 1 1 1 1 0 Sequência de bits: 1 1 0 0 0 1 0 1 0 1 1 1 1 0

Na figura abaixo vemos os bits de 1 a 14 e sua identificação: em azul claro para Equalizador, bits 1 e 2; o bit 3, FLIP, em amarelo; bits de 4 a 8 em azul – endereçamento; e bits de 9 a 14, comando a executar. Ainda considerando o exemplo da tecla de STOP do controle Philips de VCR, cuja combinação dos 14 bits seria 11000101011110, o sinal de I.R. transmitido seria como se vê em pulsos vermelhos para bit “1” e azuis para “0”. Tal I.R. transmitido será recebido e decodificado pelo módulo receptor, cuja saída é invertida. Desta forma, com a presença de I.R. modulado em 38 kHz, a saída do módulo é nível baixo; a ausência de I.R. modulado força a saída para nível alto, como podemos ver na figura, a linha em verde. Para decodificar os bits, o chip ou microcontrolador receptor monitora a saída do módulo receptor para a primeira descida de nível; quando isso ocorre, aguarda a próxima descida que deverá ocorrer em torno do tempo “t” (1.68 ms). Uma vez identificadas ambas as descidas, aguarda um tempo de 3/4t (1.26 ms) e lê 12 bits sucessivos da saída do módulo receptor, espaçados por “t” (1.68 ms), obtendo assim o bit FLIP, 5 bits do endereço do destino e 6 bits do comando a executar. Resta então comparar se o endereço do destino é igual ao dele; se não, irá ignorar o comando recebido; se sim, executará o comando.

Ao montar um circuito transmissor e receptor usando um micro controlador, o usuário poderá usar tal protocolo (RC-5) e criar o seu próprio código de comandos, porém é interessante utilizar algum Endereço de Destino que não seja mais usado atualmente, como por exemplo, um Tape Cassete Recorder, código decimal 18, ou utilizar algum dos reservados, como por exemplo, endereço decimal de 27 a 31. Desta forma você terá alguma garantia adicional que nenhum controle remoto nas redondezas irá interferir com a sua transmissão. Produzindo o transmissor e receptor, o usuário poderá inventar mais bits se necessário, e transmitir 8 ou mais bits no “Comando a Executar”, desde que o receptor esteja esperando tais bits adicionais. O único inconveniente é que esta transmissão não possui sincronismo a cada bit, então os clocks do transmissor e receptor não podem divergir demasiadamente; para tanto, torna-se exigência o uso de cristal ou ressonador cerâmico no oscilador dos microcontroladores. O uso de Controle Remoto por I.R. é uma alternativa de baixo custo tanto para controle como para programação de dispositivos que não possuem teclados ou outra forma de acesso, como placares de LEDs, robots, ou programando parâmetros em memória E2prom de microcontroladores que já possuem um Módulo Infravermelho para receber outros comandos em geral. Também é possível efetuar transmissão de dados usando essa técnica, porém a velocidade com que os dados trafegam é relativamente baixa, na ordem de 593 bps. Devo lembrar que existe um protocolo RC-6, também da Philips, que possui bits adicionais no pacote transmitido, a fim de cobrir os novos equipamentos e funções. Na PARTE 2 dessa matéria, a ser publicada na próxima edição da revista, cobriremos os outros Controle Remotos e seus protocolos, tais como: SONY, NEC, Apex, Hitachi, Pioneer e JVC. Wagner Lipnharski – Orlando Florida. ■

10


Engenharia Bio-Médica PROFISSÕES TÉCNICAS e de ENGENHARIA

A abrangência destes campos é enorme, de monitores cardíacos à computação clínica, coração artificial a lentes de contacto, cadeiras de rodas a tendões artificiais, implantes de membros artificiais com controle eletrônico e senso-

EBM aplica técnicas de engenharia a problemas de ciências e medicina, até então relegado ao trabalho do médico pesquisador, sem o treinamento necessário em engenharia. Em quase todos os aspectos de saúde existem problemas que requerem o trabalho de um engenheiro biomédico. Vemos aqui desde trabalhos relacionados a reconstrução humana, até próteses altamente sofisticadas e tratamento médico nunca antes permitido ou contemplado pelo clínico médico, devido às limitações acadêmicas e práticas do uso de tal tecnologia. O desenvolvimento da medicina tem aumentado a necessidade de uso de profissionais treinados para fechar o vazio existente entre a medicina clínica e a tecnologia médica. Esses profissionais definem um problema médico e buscam a solução que satisfaz ambos os requerimentos da engenharia e da medicina. O engenheiro biomédico tem especialização em engenharia, biologia e ciências médicas. O uso de eletrônicos na área médica tem crescido substancialmente, aliado à engenharia clínica e materiais biológicos (bio-materials).

Esse fator remuneração também é observado nos Estados Unidos, onde o Engenheiro Biomédico já é visto como uma posição superior ao clínico médico. O curso de EBM é difícil e requer dedicação, foco contínuo e incansável do aluno, pois engloba estudos profundos de biologia, ciências, física, matemática, eletrônica, uso de Lasers, radiação, programação de micro-chips, linguagem C e Assembly, circuitos impressos e técnicas digitais, psicologia, sociologia, neurologia associada à mecânica tradicional, laboratório mecânico (machine-shop), etc.

Izabella Lipnharski – Miami USA.

Atualmente estou cursando o segundo ano de Biomedical Engineering (Engenharia Biomédica, ou EBM), com especialização em Elétrica, na University of Miami, em Coral Gables na Florida.

nacionais para uma posição avantajada de trabalho, cuja remuneração é acima da clínica médica tradicional.

Alunos usando espelhos e prismas para alinhar dois Lasers de diferentes comprimento de onda em um único feixe.

riamento. Estuda-se a criação e desenvolvimento de diversas novas ferramentas médicas para análise de problemas, de restrições, doenças, dificuldades, análise e acompanhamento da recuperação do paciente. Como exemplo, os medidores de glicose no sangue usados por diabéticos, são equipamentos tipicamente desenvolvidos pela engenharia biomédica. A engenharia eletrônica não teria subsídios acadêmicos suficientes para entender os conceitos biológicos, e os médicos clínicos não teriam conhecimento tecnológico eletrônico, mecânico, de materiais ou matemático suficiente para construir um equipamento de tal efeito. A concentração de soluções eletrônicas da EBM é comumente associada com Bio-Eletricidade (Bio-Electrical) e engenharia neurológica (Neural Engineering), bio-instrumentação, dispositivos de imagem médica e engenharia ótica. Certos implantes, como marca-passo ou implantes de cóclea, requerem excelente conhecimento de eletrônica e pesquisa. Os Engenheiros Biomédicos necessitam conhecimento de engenharia e biologia, e normalmente são graduados em Mestrado ou Doutorado em EBM, e que requer de 6 a 8 anos de estudos.

Diversos estudantes que iniciam EBM acabam saltando para a carreira de medicina tradicional pois esta exige um menor esforço do estudante. Só recentemente que EBM desenvolveu sua própria disciplina acadêmica, sendo uma área ainda nos primeiros passos e já com demanda de mão de obra acentuada. Mostra-se então, uma carreira muito promissora e de futuro. Isso, aliado ao atual crescimento da tecnologia médica, nos promete um aumento substancial de Engenheiros Biomédicos nas universidades e no mercado já nos próximos anos. Muito em breve, ao invés de receitar um medicamento, o médico clínico encaminhará o paciente para um engenheiro biomédico que irá programar as soluções ao paciente, que podem representar químicos, implantes bio-eletrônicos ou nano-máquinas para correções internas.

Um exemplo é a Engenharia de Tecido Diabético, que combina materiais e fatores bioquímicos com células de outros tecidos, a fim de reparar ou substituir as funções da insulina. Departamento em extremo crescimento e grandes grants (investimentos) de empresas externas.

O interesse em EBM tem aumentado muito nos últimos anos, e diversas universidades de engenharia agora já possuem o departamento de Engenharia Biomédica, enquanto outras ainda estão trabalhando nesse sentido. Essa necessidade é mundial e em muitos países encontramos universidades já lecionando EBM. Mesmo em países como índia, onde a demanda de mão de obra ainda não é presente, as universidades já possuem milhares de alunos em processo de formação e especialização na área. Recentemente em contato com estudantes cursando EBM na Índia, fui informada que estão prestes a receber o diploma de bacharel em EBM e já possuem convites de empresas multi-

Alunos observando tecido biológico sendo irradiado com laser CO2.

11

http://www.bme.miami.edu/laboratories_homep age/dtel/diabetes_laboratory.html ■


Adicionando químicos impuros, colunas 3-5 e 26, produzem tipos N e P, para se obter junções PN. É exatamente nessa junção que ocorre o fenômeno que iremos explorar a seguir. SEMICONDUTOR

LED Bidirecional PARTE 1 Por Wagner Lipnharski – Orlando Florida. HISTÓRIA Todos nós já tivemos contato com diodos LED. Para alguns os LEDs já existiam quando iniciaram em eletrônica, e provavelmente nasceram na geração LED. Para outros os LEDs surgiram diversos anos após já dominarem o uso de lâmpadas incandescentes, piloto e indicadoras (espia) em painel de instrumentos, tampinhas coloridas multifacetadas, etc.

Como todo semicondutor, os LEDs também são sensíveis a radiações externas. Os primeiros transistores foram fabricados em ampolas de vidro e já nos primeiros lotes tiveram que ser pintados de preto a fim de não sofrer demasiadas interferências de radiações externas, principalmente de frequência visível. A posteriori os transistores finalmente passaram a ter invólucros em epoxy preto ou cinza e canequinhas de metal, para também bloquear radiações eletromagnéticas da faixa não visível. Sendo sensíveis à luz visível, os LEDs podem servir também como sensores ópticos.

Nesse momento o LED está se comportando como um gerador de tensão. A potência gerada é muito baixa, essa tensão cairá rapidamente se houver qualquer carga conectada; mesmo um resistor de 1M Ω causará tal queda. Entretanto, podemos amplificar essa tensão através de um amplificador operacional que ofereça uma impedância alta de entrada, o que não irá consumir a tensão gerada pelo LED. Veja na Figura 3 abaixo um exemplo de uso de um amplificador operacional para tal função.

Com base nessa possibilidade, iremos aqui explorar esse efeito e entender como um LED pode ser usado de forma bidirecional. Devido a características próprias dos semicondutores, quando expostos à luz visível eles tendem a criar uma pequena tensão na barreira semicondutora, com a polaridade invertida positivo no catodo, negativo no anodo.

Figura 3

BIDIRECIONAL Para usar um LED comum na modalidade bidirecional, podemos usar uma técnica que está se espalhando na Internet, chamada de Fator de Descarga. A junção PN do LED funciona como um capacitor de alto isolamento, para tensões invertidas.

Figura 1 LED significa “Light Emitting Diode”, e sendo um semicondutor, ele é altamente produtivo, transforma 85% ou mais da energia consumida em radiação eletromagnética numa estreita faixa de frequência, que pode ir de 400 a 1500 nanômetros, ou seja, infrared a ultravioleta. LEDs atuais de cor verde, azul e vermelha são os de maior penetração e percepção para uma mesma energia consumida. Nos últimos anos também tivemos a surpresa dos leds brancos, que inundaram o mundo na forma de iluminação econômica, substituindo lâmpadas de iluminação comum, de automóveis, lanternas, etc.

Para testar tal efeito, use um simples voltímetro digital (multímetro).

Aplicando 1 Volt invertido no LED, essa carga será armazenada por algum tempo, como num capacitor. Porém, expondo o LED à luz, ele irá gerar tensão com polaridade correta e essa irá descarregar o 1V antes armazenado. Se pensarmos que o LED é um capacitor, então na presença de luz tal capacitor passa a ter fuga de corrente. Quanto mais luz, maior a fuga.

Ligue as pontas de prova do voltímetro, escala 2 Volts, diretamente nos leads de um LED vermelho, positivo no catodo, negativo no anodo e aproxime o led de uma fonte de luz (lâmpada, sol, etc) e verá o voltímetro mostrar uma tensão de até 1.6Vdc, como podemos ver na Figura 2. Figura 2

LEDs são construídos com elementos tipo Gallium, Indium e Alumínio, da coluna III (ou grupo 13) da tabela periódica dos elementos; também podem ser construídos com arsênico, fósforo e nitrogênio, da coluna 5 (grupo 15) da tabela, ou com semicondutores da coluna 2 e 6 (grupos 12 e 16), por exemplo Zn e Se. Processados juntos, esses semicondutores irradiam numa faixa estreita de frequência, e consequentemente com boa eficiência na conversão de energia elétrica em radiação eletromagnética visível. Veja a construção na Figura 1 abaixo.

Figura 4 Então nos concentraremos nessa pequena área de luz existente entre escuro, penumbra e luz fraca, que é onde o LED trabalha como um capacitor com fuga variável. Veja a Figura 4. Essa intensidade de luz é exatamente útil para ligar ou desligar luzes noturnas, para diferenciar um led aceso ou apagado a mais de 1 metro de distância, a reflexão de algum objeto iluminado

12


por outro LED e que passe em frente a esse usado como sensor, etc.

o quanto esta pequena tensão descarrega o “capacitor” interno. Para tal, usaremos um pino de I/O de porta de microcontrolador. Ligaremos o Anodo do LED para terra e o Catodo para o pino da porta. Nessa experiência não é necessário nenhum resistor ou outro componente. Note que o LED está ligado com polaridade invertida, anodo para terra.

Figura 5

Ora o pino configurado como saída alimenta sinal alto (VCC) para o catodo do LED, ora ele é configurado como entrada e sem pull-up (alta impedância) e mede a tensão, ou algum limiar da tensão do capacitor do LED.

Na Figura 5 acima temos uma fonte de energia, uma chave comutadora, um LED e um voltímetro. A chave comutadora conecta o LED invertido às baterias ou ao voltímetro, que aqui consideramos ter impedância acima de 30MΩ.

Experiências que fiz usando um AVR At90S2313, demonstraram que o tal “capacitor” do LED chega a demorar em torno de 12 segundos ou mais para, no escuro, descarregar até uma tensão que a lógica identifica como zero, e que deve ser em torno de 1.2V ou menos.

Ao virar a chave para as baterias, o LED carregará o seu “capacitor” interno e, se este estiver no escuro manterá essa tensão mesmo após desligar as baterias.

Entretanto, ao expor o LED à luz branda emitida por um LED branco a 50 cm, a descarga até 1.2V (nível lógico zero) ocorre em menos de 1 segundo.

Ao virar a chave para o lado do Voltímetro, então iremos medir a tensão acumulada nesse “capacitor”, com a polaridade de tensão igual às baterias, identificada com os sinais do lado esquerdo do LED.

Figura 8 Na Figura acima, a lâmpada de LEDs 3 W iluminando o LED frontalmente a 30cm, note que em 1.2 ms a tensão resultante no “capacitor” do LED está no joelho de ter se tornado zero.

Porém, ao expormos o LED à luz, este gerará energia proporcionalmente à luz aplicada, com polaridade correta, como identificado pelos sinais ao lado direito do LED. Como a energia gerada possui polaridade invertida à energia armazenada no “capacitor” do LED, elas tendem a se anular, e o tal “capacitor” irá descarregar numa velocidade proporcional à intensidade de luz aplicada. Então, medindo o tempo que o LED descarrega a tensão do “capacitor”, podemos avaliar a intensidade da luz aplicada ao LED. Note que a carga acumulada nesse “capacitor” do LED é extremamente baixa, e somente um voltímetro FET ou de alta impedância poderia medi-la. Um pino de porta de microcontrolador em estado de alta impedância também consegue medir esta tensão, com pouca interferência na descarga. Mas por que usar essa técnica e não a da Figura 3 para medir intensidade de luz sobre um LED? Primeiro porque para que o LED gere energia suficiente para ser medida, muita luz deve incidir sobre a sua pastilha, e o que queremos é medir penumbra e baixa radiação. Expondo o LED à intensidade de luz emitida por outro LED a 1 ou 2 metros, a energia gerada será muito pequena, de pouca valia ou até mesmo impossível de ler ou avaliar. Já a técnica Fator de Descarga permite medir intensidades de luz bem menores, pois não estamos medindo a tensão gerada pelo LED, e sim

Figura 7

Figura 6 Na Figura acima vemos foto da tela de osciloscópio mostrando a descarga do LED na penumbra. Note que o LED descarrega quase que por completo em apenas 5 ms, um grande contraste com o “1 segundo” descrito acima. Isso ocorre devido à baixa impedância da ponta de prova do osciloscópio (que apesar de ser bem alta – x10 - e original Tektronix) acelera muito a descarga do LED. Como eu sei disso? Usando o At90S2313 para medir tal tempo, ao tocar o LED (e pino de porta) com a ponta de prova do scope, esse tempo cai de aproximadamente 1 segundo para 5ms, acelerando quase em 200 vezes a descarga. Mas apesar do grande erro causado pela ponta de prova do scope, as figuras servem para o nosso estudo. Na Figura 7, a seguir, o LED foi exposto a uma franja de luz de uma lâmpada LED de 3W, e já podemos ver que diferente da Figura 6 onde em 1.2 ms ainda tínhamos 1.2V, agora nesse mesmo tempo temos só 0.6V.

Figura 9 Na Figura acima o LED foi iluminado por um LED branco de alto brilho a 3 cm de distância. Note que a descarga do “capacitor” deu-se por completo em menos de 0.3 ms. Para fins práticos, compare a forma de onda de descarga das Figuras 6 e 7. O pino da porta do At90S2313 consegue identificar como nível 1 os 1.2 V da Figura 6, após 1.2 ms, e identifica como nível lógico zero o da Figura 7 após o mesmo período de tempo. Isso já seria suficiente para que o MicroControlador identificasse claro ou escuro usando um simples LED como sensor de luz. Mas de uma forma simples isso poderia ser feito usando um simples foto-diodo ou um resistor

13


sensível a luz (LDR); por que então toda essa experiência com um LED ? Porque um LED pode gerar luz !

Ciclo de Leitura A B LED 0 1 Off - Carrega Capacitor 0 HiZ OFF – Descarrega Cap com Luz

E é exatamente essa a idéia dessa experiência: criar uma “Luz Noturna de Corredor” usando um simples LED, resistor e um microcontrolador, onde o próprio LED que serve de sensor também ilumina as proximidades de onde estiver instalado caso esteja escuro.

Aguarda 1.2 ms e verifica se o pino B, em alta impedância (HiZ), está com nível alto ou baixo.

Montei estes componentes para teste, como se pode ver na foto abaixo.

Uma vez que o nível em B é verificado estar alto, o ambiente está escuro; então:

Se estiver com nível baixo é porque o LED está recebendo luz ambiente, portanto mantém o LED apagado e repete o ciclo acima.

Ciclo de Iluminação A B LED 1 0 ON – LED ilumina o ambiente Aguarda 20 ms e volta para o ciclo de Leitura. O circuito funciona bem, autônomo e sem problemas. Tal construção pode servir para alimentar backlight de displays LCD, iluminação de teclado, luz interna de chão para veículo (para quê ligar a lâmpada durante o dia?), etc. Figura 9 Nesse teste temos um At90S2313, cristal de 10MHz, resistor de 470 Ω e um LED vermelho moderno, atual, de bom rendimento. Aqui usei dois pinos de porta do At90S2313, que se conectam ao LED via o resistor de 470Ω. 3 pilhas AA alkalinas e o cristal e está pronta a luz noturna portátil, que posso levar para onde quiser e com autonomia de meses.

Posteriormente liguei o fio B do LED à entrada [+] do comparador analógico do At90S2313, e no pino [–] do comparador liguei um trimpot e resistor para ajustar entre 4.8 e 5 Vdc. Assim eu posso ajustar a sensibilidade de penumbra que o LED ainda considera luz ambiente. Consegui com que o LED sinta a luz de um simples LED branco ligado a 2 metros de distancia. Isso abriu portas para uma idéia de comunicação de dados usando simples LEDs, que ora transmite, ora recebe. Como o limite mínimo de sensibilidade é na faixa de 2 a 3 ms, tal comunicação de dados serial fica limitada a 300 bps, mas extremamente funcional para microcontroladores embutidos em pequenos robots ou mesmo instrumentos de bancada que precisem “conversar entre sí”.

Quente Quente Quente NOTÍCIAS DA SEMANA Por MAK.

O nosso grupo já possui um Domain próprio na Internet, registrado tanto no Brasil como no exterior: http://www.piclistbr.com http://www.piclistrbr.com.br Esses domínios são de nossa propriedade e uso. O nosso website já está previsto para as próximas semanas, por colaboradores do grupo. Google Chrome OS será lançado em uma semana. 13.11.2009 14:30 8 Comentários postado por Felipe Lobo Próximo Post Post Anterior O Google Chrome OS estará disponível para download em uma semana, segundo o TechCrunch. O sistema operacional foi anunciado em julho e o lançamento antes do final do ano pode servir para conseguir emplacar alguns netbooks vendidos nesse final de ano. Segundo o site, o que se pode esperar é que o suporte a drivers ainda será fraco, mesmo com um batalhão de engenheiros trabalhando para criação de todos os principais drivers do mercado. A empresa certamente deve focar nos netbooks, plataforma que é o principal destino (ou assim o Google espera) do sistema operacional. A empresa já anunciou estar trabalhando com grandes empresas do setor, como Acer, Adobe, Asus, HP, Lenovo, Qualcomm e Toshiba no projeto do Chrome OS. Só nos resta então aguardar o lançamento desse esperado sistema operacional e ver o que de verdade nós vimos nos rumores dos últimos meses. ■

Mas isso fica para a Parte 2 dessa matéria a ser publicada na próxima edição dessa revista. ■

Pedro Drummond Quer saber o porquê? Bom, esta a gente aprende desde pequeno. “Por que” separado é na pergunta, “porque” junto é na resposta. Certo?

Pedro Drummond Saio vivo se segurar um cabo de 13kV.

Figura 10

Você tem dinheiro para pagar o frete do scope. Pode me enviar aquele CI.

Na Figura 10 podemos ver a construção da luz noturna, que não precisa de interruptor, devido ao baixo consumo - menos de 5mA durante a noite e em torno de 1mA durante o dia.

Onde vai ser o encontro... Quer fazer sentido? Então que tal ver se sua pergunta tem um “?” no final?

O LED tem o seu anodo ligado ao pino A, e catodo ao pino B via resistor de 470Ω. At90S2313 controla os pinos A e B assim:

14

Assim, seria: “Pai, por que sai fumaça do seu circuito?” e a resposta: “Porque não tinha 2N3055 na gaveta, filho”. Então basta ver se a frase tem um ponto de interrogação e pronto? Pois é, mas nem sempre... como nosso idioma é repleto de exceções, aqui vai uma de cada: “porque” junto quando é pergunta: “Quer saber o porquê de este programa em C ser tão grande?”; e o “por que” separado na resposta: “Quero é saber por que não aprendi Assembly ainda!”. Perceba que, além do justo arrependimento, existe uma “pergunta camuflada” nesta última afirmação.


Automação Industrial Por RODRIGO REIS DO NASCIMENTO (rodrigo@digoreis.net) Técnico em Eletrônica com ênfase em Automação da Manufatura trabalha há 10 anos na área de Automação como Projetista e Programador. A HISTORIA DO CLP O CLP (Controlador Lógico Programável) ou PLC é uma das estrelas quando falamos de automação industrial; não é por menos, ele revolucionou o modo como produzimos máquinas e processos. Quero mostrar neste artigo o porquê deste estrelismo do CLP.

PLC e suas expansões Inicialmente os painéis elétricos de máquinas e processos eram criados com comandos elétricos, relês, contatores, temporizadores e quando mais complexos maiores eram os painéis e maior a chance de erro (ligação errada ou falta de ligação, retorno de tensão, etc). Porém o mercado automobilistico (sempre ele) precisava de uma solução simples para poder adaptar suas máquinas quando mudava a linha

de produção, pois, por mais simples que uma alteração em uma linha de montagem possa parecer, as alterações em maquinário podem ser muito complexas. Devido a essa necessidade em 1968, a GM Hydramatic, divisão responsável pelo câmbio automatico da General Motors, comandado pelo Richard Morley, solicitou à Bedford Associates um equipamento que atendesse as seguintes caracteristicas: • • • • • • • •

Facilidade de programação; Simples manutenção com conceito plug-in; Alta confiabilidade; Dimensões menores que painéis de relês, para redução de custos; Envio de dados para processamento centralizado; Preço competitivo Expansão em módulos; Mínimo de 4000 palavras na memória.

Apesar de todos os PLCs atenderem estes requisitos, atualmente existem muitas outras exigências, como programação em Ladder, etc. Na época que foi criado, o PLC tinha programação totalmente dedicada a hardware (Assembly), ou seja, o programador tinha que conhecer a fundo a arquitetura do hardware, para poder endereçar os IOs e fazer os cálculos. Na evolução natural dos PLCs começaram a

15

surgir as linguagens mais simplificadas, não dependento tanto de hardware. Na verdade os PLCs começaram a ter um OS para que pudessem interpretar o programa (compilado) para o hardware. Seguindo ainda a evolução, o PLC passou a ter porta de comunicação onde poderíamos programar, via cabo, com equipamentos dedicados a programação, não dependendo mais de gravadores e EPROM. Depois disso surgiram as portas de comunicação seriais onde finalmente poderiamos ultilizar o PC para a programação dos PLCs. Atualmente existe certa padronização na programação dos PLCs de diferentes fabricantes, apesar da complexibilidade de cada programa especifico. Existe também um estudo e movimento para tentar padronizar os protocolos de comunicação para que cada vez mais equipamentos sejam facilmente inseridos em uma rede e assim se possa ter o máximo de recursos ultilizados. ■


Fator de Potência (POWER FACTOR) Quando dizemos que o chuveiro elétrico de determinado fabricante é de 5500W a 220V, o que isso significa?

Eng. Dr. Marco Antonio Simon Dal Poz (mdalpoz@gmail.com)

Significa exatamente o seguinte: que tal equipamento, quando submetido à tensão constante de 220V, converte exatamente 5500W de energia elétrica em térmica (ou seja, aquece). Como todos sabemos, potência pode ser calculada através da fórmula:

P = VI No caso do chuveiro de 5500W a 220V, a primeira consequência é que, ao ser alimentado como especificado (tensão constante de 220V), a corrente será de 25A, também constante. Portanto este resistor do chuveiro possui uma resistência (na condição de uso, ou seja, equilíbrio térmico, tudo constante) de 8,8Ω. Até aí, nada demais.

Este assunto pode ser abordado de várias formas; dentre elas destaco duas: a base teórica (nua e crua) e uma sequência de exemplos.

Por definição, tensão (ou corrente) constante significa tensão DC (ou corrente DC), certo? Quase.

Vou tentar mesclar ambas as formas, de forma a tornar o assunto menos monótono, permitindo ao leitor que, ao longo do texto, vá notando a utilidade e as consequências dos conceitos apresentados.

Significa sim, mas não por definição, e sim por consequência. A definição de valor DC de qualquer grandeza (corrente, tensão, velo-cidade, etc.) é o valor médio temporal da pró-pria grandeza.

Eu poderia, neste ponto, simplesmente jogar a definição de fator de potência, e dela deduzir todas as consequências possíveis e imagináveis, mas isto tornaria mais difícil sua interpretação, então vou mostrar de onde surgiu o fator de potência.

Quando tal grandeza é constante, o valor dela é o próprio valor médio, já que não varia no tempo. Daí sim podemos dizer que tensão constante significa tensão DC (pois não há componente AC, isto é, não há variação ao longo do tempo).

Ele surgiu de uma série de simplificações que estamos habituados a fazer, na análise de circuitos alimentados por corrente alternada (AC), e que fisicamente não existem!!! São simplificações puramente matemáticas.

Aí começam os problemas. As duas fórmulas anteriormente citadas não são corretas. Elas só valem para circuitos DC ou para valores instantâneos. Então a forma correta de escrevê-las é:

v (t ) = Ri (t )

Por exemplo: fasores. A corrente elétrica que atravessa um transformador, com o primário ligado à rede elétrica, e com o secundário em aberto, é quase totalmente imaginária, isto é, é um número “a+jb” onde b é muito maior do que a. Mas no mundo real, quem disse que existe um valor de tensão e corrente que não é um número real? Isto é um fasor. É um número complexo que utilizamos como representação da amplitude e defasagem entre sinais senoidais.

p(t ) = v(t )i(t ) Portanto, em termos instantâneos, qualquer circuito submetido a uma tensão variável (alternada) e que tem resistência constante produzirá uma potência variável no tempo. Daí o nosso chuveiro, se ao invés de ser alimentado com 220VDC for alimentado com AC, não produzirá 5500W constantes.

Trata-se de um artifício matemático que simplifica muito nossas vidas, e que requer conhecimento para sabermos interpretá-lo. É exatamente o mesmo que ocorre com o fator de potência. Não mostrei do que ele se trata ainda, mas é bom ter em mente que ele também é um artifício matemático.

Mais tarde avaliaremos exatamente o que ele produz.

Antes de definí-lo, vamos mostrar como os vários artifícios surgiram, para então, de certa forma historicamente, chegarmos até ele.

Como foi mencionado, o valor DC é o valor médio temporal, seja lá qual for a grandeza que estivermos tratando (corrente, tensão, velocidade, potência, etc.). Isso significa que qualquer sinal x(t) (qualquer forma de onda, seja ele periódico ou não) possui um valor médio XDC (valor DC), que é dado por:

Tomemos como exemplo um circuito muito simples: um chuveiro elétrico, sem controle eletrônico, sem nada. Trata-se de um simples resistor, que ligamos à rede elétrica quando há passage de água por ele (para que ele não atinja temperaturas excessivas e se destrua). E como todo resistor, vale a lei de ohm:

X = X = X DC

V = RI

1 a +T = x(t )dt T a

Esta definição de valor médio parte do princípio de que o sinal é periódico, de período T. O valor de a é totalmente arbitrário, já que não muda o valor da integral acima. Caso o sinal x(t) não seja periódico, o valor médio (DC) é obtido fazendo-se com que o período T tenda ao infinito, ou seja:

Vamos partir do princípio de que o nosso resistor está em equilíbrio térmico, e portanto não há variações do valor de R com a corrente, temperatura ou tempo, ou seja, R é constante.

16


X = X = X DC

1 = lim T → +∞ T

a +T

1 P= T

 x(t )dt

a

V2 1 = R T

De acordo com a definição acima de valor médio, quando x(t) é constante temos que x(t) é exatamente igual a XDC, pois a integral acima resulta em XT. Mas o que acontece com o chuveiro quando ele é submetido a alguma tensão alternada (não constante, mas periódica)?

De acordo com a definição de valor médio, a potência média é a média da potência instantânea, ou seja:

a

a +T

(v(t ) )2 dt R

a

a +T

(v(t ) )2 dt R

a

A essa tensão V, que não se trata do valor médio de v(t) (pois V provém de uma alimentação puramente DC), que produz a mesma potência que a alimentação originalmente DC, dá-se o nome de valor RMS de v(t). Então vamos substituir V por VRMS justamente para evitar confusão. Simplificando a equação acima temos:

Ele produz uma potência variável no tempo, e neste caso nos interessa a potência média produzida por ele.

a +T

1 ( ) ( ) v t i t dt = a T

Como estamos buscando a condição para que as potências médias se igualem, isto é, uma tensão v(t) que produza exatamente a mesma potência média daquela obtida pela alimentação DC, temos:

Por enquanto vamos tratar apenas de sinais periódicos, então não haverá necessidade de se utilizar a segunda definição de valor médio. Voltando ao exemplo do chuveiro elétrico. Havíamos dito que a potência dele é definida para alimentação por tensão constante (DC).

1 P=P= T

a +T

1 a +T p (t )dt =  v(t )i (t )dt T a

VRMS

Nesta fórmula já fizemos a aplicação da Lei de Watt. O valor médio da potência (P) poderia ter sido chamado de PDC, mas evitaremos esta notação, pois alguns autores a definem simplesmente como sendo o produto do valor médio de tensão (VDC) pelo valor médio da corrente (IDC), ou seja, evitaremos mencionar PDC para não causar confusão.

1 = T

a +T

2 ( ) v ( t ) dt  a

RMS significa raiz quadrada da média dos quadrados (root mean square), e mostra exatamente o que tal valor significa: a raiz quadrada do valor médio do quadrado do sinal em questão. Essa definição, apesar de não ter significado físico direto (ou seja, fisicamente não existe, pois a única coisa que existe fisicamente são valores instantâneos), nos informa qual é a característica que qualquer tensão AC periódica (seja lá qual for a forma de onda) deve ter para resultar exatamente na mesma potência média especificada para uma determinada carga resistiva (que no nosso exemplo consiste no resistor do chuveiro).

Quando for necessário mencionar PDC informaremos a definição utilizada. Insisto novamente que a potência produzida pelo chuveiro, alimentado com AC, é variável no tempo. Então porque nos interessa a potência média como mencionado logo acima? Porque parte-se do princípio de que a inércia térmica da água que passa pelo chuveiro é tal que essa variação de potência ao longo do tempo é suprimida, isto é, a massa que envolve o resistor do chuveiro atua como um filtro passa-baixas, com frequência de corte bem baixa. Neste caso a entrada do nosso filtro é a potência, e a saída é a temperatura.

Portanto, se o nosso chuveiro desenvolve 5500W quando alimentado a 220VDC, podemos substituir essa alimentação de 220VDC por qualquer forma de onda tal que o valor RMS dela seja 220V, isto é, VRMS=220V. Tal definição de valor RMS pode ser aplicada a corrente, tensão, e quaisquer grandezas, incluindo potência. Porém, não a usaremos sobre a potência por não ter nenhuma utilidade prática (já que o que nos interessa é sempre a potência média ou a instantânea). Portanto usaremos bastante:

E, como sabemos, em todo filtro passa-baixas a componente DC do sinal passa direto, sem alterações ou atenuações. E assim acontece com quase todo e qualquer resistor, onde a massa dele ou do que o rodeia é tal que as possíveis variações instantâneas de temperatura são suprimidas. É por isto que nos interessa o valor médio da potência. Isso tem uma consequência muito prática: é possivel utilizarmos o nosso chuveiro com alguma tensão AC e alguma forma de onda tal que a potência média produzida é exatamente os mesmos 5500W especificados! Em termos matemáticos, isso significa dizer que, ao alimentarmos o chuveiro com tensão DC, temos:

I RMS

1 = T

a +T

2 ( ) i ( t ) dt  a

Se juntarmos essa definição de valor RMS com a definição de potência média, algumas coisas interessantes ocorrem. Continuemos analisando o nosso caso de carga puramente resistiva, alimentada por uma tensão AC qualquer. Neste caso temos, como já mostrado:

V2 P= R

1 P= T

E ao alimentarmos o chuveiro com tensão AC, temos:

17

a +T

 a

(v(t ))2 dt  PR = 1 a +T(v(t ))2 dt R

T

 a


S = VRMS I RMS

E também temos:

VRMS

1 = T

a +T

 (v(t )) dt  VRMS 2

a

2

1 = T

a +T

2 ( ) v ( t ) dt 

Esta não é uma potência verdadeira e nem sequer é medida em Watts (W), pois é uma definição puramente matemática e que nem sequer tem significado físico!!! Quando VRMS é medido em Volts (V) e IRMS é medido em Ampères (A), a potência aparente S é simplesmente medida em VoltAmpères (VA) e nunca deve ser expressa em Watts (W), pois ela não representa consumo, geração nem conversão alguma de energia. É um conceito totalmente artificial definido arbitrariamente, muito usado como forma de se informar indiretamente um valor eficaz de tensão ou de corrente. Não é absolutamente NADA além disso.

a

Comparando-se uma equação com a outra temos o seguinte resultado:

VRMS

2

VRMS = PR  P = R

2

O que se pode fazer com essa potência aparente é, em casos particulares, deduzirmos relações que possam nos levar dela à potência média real (P). Por exemplo, no caso puramente resistivos, temos:

v (t ) i (t ) = R

Ou seja, o conceito de valor RMS surgiu justamente para que, sobre cargas resistivas, continuemos usando a boa e velha fórmula “vê quadrado sobre erre”. Mas lembre-se: isto só se aplica sobre CARGAS RESISTIVAS. Então, vamos analisar o que acontece com cargas passivas não resistivas (ou seja, parcialmente ou totalmente indutivas ou capacitivas). Neste caso só podemos fazer uso das definições, ou seja:

1 P= T VRMS

I RMS

Então o valor RMS da corrente pode ser simplificado, resultando em:

a +T

 v(t )i (t )dt a

1 = T

1 = T

I RMS ,

a +T

 (v(t )) dt 2

I RMS

,

a

1 = T

a

2 ( ) i ( t ) dt 

a a +T

1 = R

1 T

I RMS

VRMS = R

a +T

2 ( ) i ( t ) dt 

a +T

 (v ( t ) )

2

dt

a

Como já mostramos, no caso puramente resistivo, a potência média (e a instantânea também) é dada por:

Sabe o que podemos fazer com essas fórmulas? Nada, a não ser que haja alguma relação entre v(t) e i(t). E para que haja alguma relação, temos que ter um circuito, ou seja, uma carga. Já analisamos o caso de carga puramente resistiva. Então, que tal analisarmos uma carga puramente capacitiva? O que acontece se conectamos um capacitor de capacitância C a uma alimentação de tensão AC?

VRMS P= R

Ora, não precisamos nem fazer cálculos. Por definição, capacitores não são elementos dissipativos. No entanto por eles passa corrente. Isso significa que, ao submetermos um capacitor a uma tensão v(t) (que tem um valor eficaz VRMS) temos uma corrente i(t) (que tem um valor eficaz IRMS) e a potência média é zero. E aí que começam os problemas. A potência instantânea no capacitor não é zero! Mas a média é.

2

Temos, portanto,

P = VRMS I RMS

Justamente por isso é que define-se a potência aparente S, que é simplesmente dada por:

ou seja,

18


Mas ele traz consequências em eficiência de transmissão (e/ou distribuição) de energia.

P=S

O motivo é simples: se você tem uma fonte de alimentação de tensão alternada (vale a pena relembrar que, no caso DC, o fator de potência é sempre unitário, a demonstração é trivial e fica como exercício para o leitor, bastando entrar com v(t)=V=constante e i(t)=I=constante na fórmula acima) e conecta a ela uma carga puramente indutiva ou puramente capacitiva, você terá potência média ZERO e terá corrente circulando pelo circuito (fonte e carga).

Esta é uma situação muito particular e desejável (mostraremos mais tarde porque), e no caso geral sempre teremos:

P≤S

Se você tem corrente circulando por condutores não ideais (e portanto, que apresentam perdas resistivas, isto é, efeito Joule), você tem perda de potência! E isso ninguém quer.

Chegou a hora de apresentarmos o fator de potência (fp). Fator de potência é definido simplesmente como a razão entre a potência média real e o módulo da potência aparente, isto é:

Portanto, o objetivo do estudo e cálculo do fator de potência é sugerir alterações nas cargas de forma tal que elas sejam sempre resistivas, isto é, devemos buscar e desenvolver métodos de nos livrarmos das cargas puramente indutivas ou capacitivas.

P fp = S

Mostraremos mais tarde como isto é possível, através dos compensadores ou corretores de fator de potência (PFC, power factor correctors).

Então, fica claro que, no caso puramente resistivo, o fator de potência é unitário (mostraremos mais tarde que esta é sempre a situação desejável).

Cabe aqui um comentário adicional: tudo o que temos analisado até agora vem sendo feito no domínio do tempo, mas poderíamos ter feito tudo isso no domínio da frequência, com resultados praticamente iguais.

Vamos retomar agora o caso puramente capacitivo. Nada foi fórmulado ainda, mas conforme já foi mencionado, por se tratar de um componente não dissipativo e que, submetido a uma tensão alternada, circula por ele uma corrente alternada, temos sempre potência média nula, com VRMS e IRMS não nulos. Portanto P=0 e S é não nulo. Consequentemente o fator de potência é ZERO.

Existem muitas situações em que é vantajoso efetuar a análise no domínio da frequência, especialmente quando trabalhamos em RPS, isto é, Regime Permanente Senoidal, que é o caso das nossas redes de distribuição de energia elétrica (a tensão que temos disponível nas tomadas residenciais, comerciais ou industriais, seja lá qual for a amplitude).

Também pela definição de indutor temos exatamente a mesma situação, isto é, P=p e S não nulo, portanto fator de potência também igual a ZERO.

Então, já que vamos analisar o que acontece com cargas puramente capacitivas e indutivas, e também com cargas mistas, vamos avaliar inicialmente o que acontece no RPS.

Juntando todas as definições anteriormente dadas (de potência média, potência aparente, tensão RMS e corrente RMS) chegamos à definição generalizada de fator de potência para sinais periódicos:

P fp = = S

1 T 1 T

Por enquanto vamos fazer a análise no domínio do tempo, para em seguida, com circuitos não puramente capacitivos ou indutivos (isto é, com componentes resistivos “no meio do caminho”), passarmos ao domínio da frequência (pois vai facilitar muito o cálculo).

a +T

No RPS, a tensão da nossa fonte de alimentação (rede elétrica no exemplo do chuveiro) é dada por:

 v(t )i(t )dt

v(t ) = VP sin(2πft + φP ) = VP sin(ωt + φP )

a

a +T

1 T

2  (v(t )) dt a

a +T

 (i(t )) dt 2

f é a frequência da senóide, que é exatamente igual a 1/T, VP é o valor de pico da senóide, e φP é a fase inicial da senóide, que no RPS pode ser um valor arbitrário. É muito comum definir-se a frequência angular (ou velocidade angular) ω=2πf, pois este número 2πf aparece muito no decorrer das deduções.

a

Que resulta em:

Voltando mais uma vez ao caso resistivo (vale a pena estudá-lo mais um pouco, pois foi ele que nos trouxe o conceito de valor RMS, e ele nos trará outro conceito muito importante, que será apresentado a seguir), isto é, do nosso chuveiro elétrico, a potência instantânea será dada, com esta alimentação AC senoidal, por:

a +T

fp =

 v(t )i(t )dt a

a +T

a +T

p(t ) =

2 2 ( ) ( ) v ( t ) dt i ( t ) dt   a

(v(t ))2 = (VP sin(ωt + φP ) )2 R

R

2

=

VP sin 2 (ωt + φP ) R

Aplicando-se um pouquinho de trigonometria básica temos:

a

2

Isso que é fator de potência, um número totalmente artificial, sem significado físico, e que define a razão entre potência média e o produto dos valores RMS de tensão e corrente, nada além disso.

2

V V p(t ) = P − P cos(2ωt + 2φ P ) 2R 2R 19


Isto significa que a potência do chuveiro, alimentado com AC, varia no tempo. Repare que o valor máximo de p(t) é exatamente “vê quadrado sobre R” e o valor mínimo de p(t) é zero.

4V 1  kT ≤ t <  k + T  v(t ) = P T 2 

Relembrando-se a definição de valor médio temos, no caso da potência:

1 P= T

a +T

  1   t −  k + T  4   

4V 1   k + T ≤ t < (k + 1)T  v(t ) = − P T 2 

p (t ) dt

   t −  k +  

3  T  4  

Onde k é um número inteiro (ou seja, k ∈ Ζ ) e T é o período (1/f) dessa onda triangular. A primeira parte descreve o trecho de subida (de –VP até +VP, no primeiro semi-período), e a segunda parte descreve o trecho de descida (de +VP até –VP, no Segundo semi-período).

a

Vamos calcular o valor RMS desta forma de onda de tensão, fazendo a=0.

1 P= T

a +T 

a

2 2   VP − VP cos( 2ωt + 2φ )  dt P   2R 2R  

P=

V RMS =

=

2

V RMS =

V RMS =

VP P= 2R VRMS R

4V P 3

4V P T3

V RMS = 4V P

3T   t − 4 

2      dt    

2  T  T / 2 3Tt 9T 2   2   t 2 − Tt + T dt +   t − 2 + 16 dt      2 16 T / 2     0 

T T  T T  1T  1 T    −   + .  +  T 3 −   3 2  42 2 4 3 2  3

1 24

1 16

2

+

1 32

+

7 24

2

9 16

+

9 32

= 4V P

1 48

3

2   − 3T  T 2 −  T   +  3T      4  2    4  

 V RMS = V P

2

 T   2

1 3

Portanto, temos que, para onda triangular, o fator de forma, diferente da onda senoidal que é raiz de dois, é raiz de três.

Ou seja, a potência média é igual a “vê quadrado sobre dois R” (sempre lembrando que este “vê”, neste caso, refere-se ao valor de pico da senóide da rede). Mas foi mostrado poucas páginas atrás, que:

P=

2

T  4V T   P  t −   dt +   − 4  T  T / 2

2 2  T 16V P 2  T / 2  T 3T     t −  dt +   t −  dt  3    4 4    T T /2  0 

T

2

a

1  T / 2  4V P   T  0  T 

V RMS =

1 VP (T + 0) . T 2R

1 a +T 2  (v(t ) ) dt  V RMS

T

ff =

2

Fica como exercício para o leitor constatar que o fator de forma para onda dente de serra, seja ascendente ou descendente, é exatamente o mesmo da onda trigular.

Portanto, dessa igualdade de potências médias, sai a relação entre valor RMS e valor de pico para tensões senoidais:

V P = V RMS 2

Além disso, também fica como exercício constatar que, caso a onda triangular seja assimétrica, isto é, com tempos de subida e descida diferentes, o fator de forma não muda.

Este fator “raiz de dois” é conhecido como fator de forma (ff) de sinais senoidais. Ou seja, em termos genéricos:

VP = VRMS ff  ff =

VP VP =  ff = 3 VRMS 1 VP 3

No caso de onda quadrada, temos duas situações possíveis: onda quadrada com valor mínimo zero e valor máximo VP, e com taxa de trabalho δ; e onda quadrada com valor mínimo VMIN, valor máximo VMAX, e dois tempos mortos (em zero), com duas taxas de trabalho δMAX e δMIN correspondentes aos tempos em que o sinal atinge VMAX e VMIN.

VP VRMS

O primeiro caso é bem simples. A partir da descrição da forma de onda temos:

Todas as formas de onda possuem o seu fator de forma. Vale a pena estudar alguns deles. Todos eles são consequência direta da definição de valor RMS. Tomemos como primeiro exemplo uma forma de onda triangular. Uma onda triangular pode ser definida da seguinte forma:

20


1 T

V RMS = 1 = T

a +T

 (v(t ) )

2

Repare que, no caso de uma onda quadrada simétrica, isto é, quando VMIN=-VMAX=-VP, e ao mesmo tempo δMAX=δMIN=δ/2, temos que o fator de forma se reduz a:

dt  V RMS

a

ff =

T   δT 2  V dt + 0 2 dt     P δT  0

V RMS =

= =

1  T 

 (v(t ) )

t1

1 Vef = T

dt  V RMS

a

t1+δ MAX T

2

2

V MAX dt +

t 2+δ MIN T

t2

δ

δ

2

a +T

2 ( ) v ( t ) − V dt DC  a

Caso o sinal não contenha nenhum nível DC, ou seja, caso o valor médio dele seja zero (como por exemplo uma onda senoidal pura ou triangular pura), o valor eficaz será exatamente igual ao valor RMS.

 VMIN 2 dt   

Tomemos como exemplo a onda quadrada simples, que vai de 0 a VP com taxa de trabalho δ. O valor médio dela é:

1 1 VMAX 2δ MAX T + V MIN 2δ MIN T T T

V = V = VDC =

V RMS = V MAX 2δ MAX + V MIN 2δ MIN

1 T

a +T

a

v(t )dt =

1 δT  VP dt  VDC = VPδ T 0

Como já vimos, o valor RMS desta onda quadrada simples é dado por:

VRMS = VP δ

Neste caso, para calcular o fator de forma, é necessário o valor de pico, que será o maior dos valores dentre |VMAX| e |VMIN|. Assim sendo:

Então, no caso particular da onda quadrada simples, há uma relação direta entre nível DC e valor RMS, dada por:

V VP ff = P =  ff VRMS VP δ =

2

+ VP 2

1

Ou seja, se você tem um sinal e quer saber qual é o valor eficaz dele, tudo o que tem a fazer é subtrair o valor DC dele (ou seja, o nível médio) e em seguida calcular o seu valor RMS, e isto se denomina valor eficaz. Trocando em miúdos:

No caso da onda quadrada completa, descrita por VMIN, VMAX, δMIN e δMAX, temos o valor RMS:

a +T

δ

 ff =

Esta definição é importante para chegamos no conceito de valor eficaz. Valor eficaz de um sinal é algo frequentemente confundido com o valor RMS do próprio sinal, pois a definição é muito similar. Valor eficaz é o valor RMS do sinal que se obtém ao se subtrair o nível DC do sinal em questão.

VP VP 1 =  ff = VRMS VP δ δ

1 T

VP VP 2

Portanto, o fator de forma da onda quadrada simples, descrita por VP e δ, é dado por:

ff =

VMAX 2δ MAX + VMIN 2δ MIN

=

1 V P 2 δT  V RMS = V P δ T

=

max{VMAX , VMIN }

VDC = VRMS δ

max{VMAX , VMIN }

Essa definição de valor eficaz, no caso da onda quadrada simples, corresponde a convertê-la em onda quadrada completa fazendo

VMAX 2δ MAX + VMIN 2δ MIN

VMAX=VP-VDC, VMIN=-VDC, δMAX=δ, δMIN=1-δ,

21


ou seja, corresponde a deslocar o sinal para baixo, subtraindo-o exatamente de VDC. Aplicando-se a fórmula da página anterior (valor RMS da onda quadrada completa), temos o seguinte valor eficaz da onda quadrada simples:

Segundo deles corresponde a uma constante multiplicada pelo nível DC, e o terceito é apenas o próprio período. Então, continuando:

Vef = VRMS 2 −

VRMS = VMAX 2δ MAX + VMIN 2δ MIN  Vef =

 Vef = VRMS 2 − VDC 2

(VP − VDC )2 δ + (− VDC )2 (1 − δ )

Vef = VP 2δ − 2VPVDC δ + VDC 2δ + VDC 2 − VDC 2δ

Ou seja, chegamos exatamente à mesma conclusão que havíamos obtido para a onda quadrada, mas agora válida para qualquer forma de onda. Esta equação pode ser escrita de outra forma muito tradicional:

= VP 2δ − 2VPVDC δ + VDC 2

VRMS = Vef + VDC 2

Note que, de acordo com dedução feita no começo desta página, VPδ é exatamente o nível DC do sinal (VDC), portanto podemos simplificar a equação acima da seguinte forma:

2

2

2VDC VDC + VDC 2 T

2

2

Costuma-se dizer, diante da fórmula acima, que valor eficaz e nível DC são sempre perpendiculares entre si, simplesmente porque todos estes valores (RMS, eficaz e DC) descrevem um triângulo retângulo (com o RMS na hipotenusa e os demais nos catetos).

2

Vef = VP δ − 2VDC + VDC  Vef = VP 2δ − VDC 2

Esta é uma fórmula muito prática para se calcular valor eficaz ou valor RMS de um sinal qualquer, já que o cálculo do nível DC é muito simples (valor médio temporal).

Porém, já calculamos o valor RMS deste sinal, que consta logo acima. Observando-se o valor RMS, percebe-se que ele aparece na equação acima elevado ao quadrado. Portanto, chegamos à conclusão de que:

VRMS = VP δ  Vef = VRMS − VDC 2

Com este ferramental em mãos, já podemos resolver um probleminha muito simples: suponha que o tal chuveiro de 5500W a 220V seja ligado a uma rede elétrica cuja tensão eficaz é de 220V mas haja uma bateria de 12VDC em série com a mesma.

2

De acordo com a fórmula acima, a polaridade da bateria não faz diferença, pois a rede elétrica não tem nível DC. Qual é a tensão RMS fornecida ao chuveiro, e qual é a nova potência que ele vai fornecer, admitindo-se que a resistência elétrica dele não vai mudar? É bem simples:

Disso concluimos que, quando queremos calcular o valor eficaz, não é necessário seguirmos a definição à risca caso já tenhamos o valor RMS e o nível DC do mesmo, basta executar a operação acima a teremos o valor eficaz. Na verdade chegamos a esta conclusão para a onda quadrada simples, mas provaremos a seguir que a mesma conclusão é válida para qualquer forma de onda.

VRMS = Vef 2 + VDC 2 

Note que tal resultado também comprova aquilo que já havíamos dito: na ausência de nível DC (na rede elétrica, por exemplo), o valor eficaz pode ser confundido com o valor RMS.

Vef = 220 2 + 12 2  Vef = 220,3V Ou seja, a alteração em tensão RMS, e portanto em potência produzida pelo chuveiro é ínfima (o increment de potência é de cerca de 0,3%, totalmente imperceptível) apesar de haver consumo de energia da bateria.

A generalização do valor eficaz, conforme a definição dada anteriormente, é calculada por:

Vef = 1 = T Vef =

1 T

a +T

Agora que já temos todos os conceitos em mãos, e já os exploramos em onda quadrada e triangular, vamos voltar ao caso senoidal, que é o mais comum e abundante, principalmente porque o temos em ampla disposição em redes de distribuição de energia elétrica.

2  (v(t ) − V DC ) dt

a

 ((v(t ))

a +T

2

2

− 2V DC v(t ) + V DC dt

a

1 T

a +T

2  (v(t ) ) dt −

a

)

Sempre devemos lembrar que valor eficaz, nível médio, valor RMS, dutycycle, e fator de potência são apenas características de forma de onda, isto é, entidades puramente matemáticas e que não possuem significado físico. No mundo físico o que existem são apenas valores instantâneos, seja de corrente, tensão, potência, velocidade, aceleração, etc.

2V DC T

a +T

a

v(t )dt +

V DC 2 T

a +T

 dt

Conforme comentado anteriormente, a rede elétrica nos fornece uma tensão descrita por:

a

v(t ) = VP sin(2πft + φP ) = VP sin(ωt + φP )

Note que o valor eficaz acima calculado é composto pela raiz quadrada de três termos: o primeiro deles corresponde ao valor RMS ao quadrado, o

22


Portanto o consumo de energia só podia ser zero mesmo. É por este motivo que a potência dissipada em qualquer componente passivo não resistivo ideal é zero.

O caso puramente resistivo já foi extensamente analisado e calculado, portanto, é hora de partirmos para os casos puramente capacitivo e puramente indutivo. O comportamento de um capacitor ideal é completamente descrito por:

No entanto, como já sabemos, o mesmo está submetido a uma tensão eficaz:

dv(t ) i (t ) = C dt

Vef = VRMS =

Se conectarmos um capacitor apolar (portanto capacitor eletrolítico comum não serve) na rede elétrica (que supostamente é composta por um barramento infinito, e portanto, possui impedância de saída nula), a corrente que vai circular por ele será:

d (VP sin(ωt + φ P )) dt  i (t ) = VPωC cos(ωt + φ P )

I ef = I RMS

p(t ) = v(t )i(t )  p(t ) = VP sin(ωt + φP )VPωC cos(ωt + φP )

S = VRMS I RMS =

VP 2 p(t ) = ωC sin(2ωt + 2φP ) 2

Sempre devemos lembrar que a potência aparente não existe, e portanto não pode ser expressa em Watts (W), e sim em Volt-Ampère (VA). Como vimos, num capacitor a potência média é zero, e a potência aparente não é zero. Portanto, o fator de potência (fp) é ZERO.

Claramente o valor médio de p(t) é zero, pois num único período completo há 2 oscilações completas (a frequência da potência instantânea é 2f (ou 2ω em termos angulares). Ou seja, de acordo com a definição de potência média:

a

Fica como exercício para o leitor constatar que, num indutor ideal, de indutância L, ligado a essa fonte de tensão AC senoidal, em RPS, a corrente será dada por:

a +T 

a

VP VPωC . 2 2

VP 2 = ωC  S = VRMS 2ωC 2

Aplicando-se um pouco de trigonometria básica tempos:

1 p(t )dt = T

V P ωC = 2

Disso concluímos que a potência aparente será:

Podemos calcular a potência no capacitor através da famosa Lei de Watt:

a +T

2

E por ele passa uma corrente eficaz que pode ser calculada utilizando-se a definição de valor RMS sobre a corrente instantânea já calculada. Isso resulta em:

i (t ) = C

1 P= T

VP

2   VP ωC sin(2ωt + 2φ ) dt P   2  

1 VP 2 1 =− . ωC. .0 = 0 T 2 2ω

I ef = I RMS =

VP ωL 2

E portanto a potência aparente será:

Isso tem um significado físico. Se adotarmos φP=0, temos que a potência instantânea p(t) é positiva no intervalo de tempo 0<t<T/4, negativa no intervalo de tempo T/4<t<T/2, positiva novamente no intervalo de tempo T/2<t<3T/4, e negativa novamente no intervalo de tempo 3T/4<t<T.

S = V RMS I RMS =

Ou seja, em RPS, durante meio período, o capacitor conectado à nossa fonte de alimentação AC senoidal recebe e acumula energia, para em seguida devolver exatamente a mesma quantidade de energia à fonte.

VP 2 1 = . . ωL 2 2 ωL 2

VP

VP

V RMS 2 S= ωL

No outro meio período ocorre exatamente a mesma coisa, isto é, o capacitor recebe e acumula energia, para em seguida devolver novamente a mesma quantidade de energia à fonte.

A potência média será também zero, e isto é resultado do mesmo princípio de funcio-namento: o indutor ideal, ligado nesta fonte de alimentação AC senoidal, recebe energia durante ¼ do período, devolve a mesma e-

23


nergia à fonte no ¼ de período seguinte, e assim sucessivamente. E como por ele há um valor de tensão RMS e valor de corrente RMS, a potência aparente não é nula, e disso concluímos que o fator de potência (fp) novamente é ZERO.

Vamos começar com a carga. A lâmpada possui resistência de 3Ω. Então todo o circuito do secundário corresponde a uma resistência de 3,1Ω em série com uma reatância indutiva de 0,5Ω. Isto, “refletido” no primário, corresponde a um circuito composto por um resistor de 310Ω em série com uma reatância indutiva de 10Ω, que deve ser conectado em série com a resistência de 10Ω e reatância de 50Ω já presente no primário.

Observando-se as equações que descrevem as correntes instantâneas no capacitor e no indutor, é importante observar que, em relação à nossa fonte de tensão, há defasagens fundamentais características de tais componentes. Revendo:

Ou seja, o circuito elétrico equivalente consiste num resistor de 320Ω com uma reatância indutiva série de 100Ω, conectado à nossa fonte de 120VAC (valor RMS).

Na fonte de alimentação, e consequentemente no componente:

v(t ) = VP sin(ωt + φ P )

Fazendo-se os cálculos através da teoria de circuitos elétricos, chegamos à seguinte conclusão: o valor RMS da corrente será 358mA, e esta está atrasada 17,35O (isto é, 17O21’14.5”) em relação à tensão. Isso significa que, no primário do transformador, temos:

No indutor temos:

v(t ) = 120 2 sin(120πt + φP )

V i (t ) = − P cos(ωt + φ P ) ωL

volts e

i(t ) = 0,358 2 sin(120πt + φ P − 17,35O )

No capacitor temos:

i (t ) = VPωC cos(ωt + φ P )

Ampères A potência aparente S é simples de se calcular, pois é o produto dos valores RMS da tensão e da corrente.

Note que, em relação à forma de onda da tensão, a forma de onda da corrente no indutor é atrasada de ¼ de período, e a forma de onda da corrente no capacitor é adiantada de ¼ de período.

S = V RMS I RMS  S = 120.0,358  S = 42,96

As relações entre as amplitudes de tensão e corrente, medidas tanto em valor de pico como em valor RMS, constituem as reatâncias (indutiva ou capacitiva, conforme o componente em questão), por definição. Ou seja:

volt-ampère A potência instantânea p(t) é dada pela Lei de Watt, e em seguida calcularemos o valor médio P da mesma.

No indutor temos:

X L = ωL

p(t ) = v(t )i(t )  p(t ) (medida em Ω)

= 85,92 sin(120πt + φ P ) sin(120πt + φ P − 17,35O )  sin(120πt + φ P ) cos(17,35O )   p(t ) = 85,92 sin(120πt + φ P )  − cos(120πt + φ ) sin(17,35O )  P  

No capacitor temos:

XC =

1 ωC

(medida em Ω)

p(t ) = 42,96(1 − cos(240πt + 2φ P ) ) cos(17,35O ) − 42,96 sin(240πt + 2φ P ) sin(17,35O )

A questão do avanço ou atraso das formas de onda é importante para se definir os sinais (positivo ou negativo) a serem aplicados nas tensões e correntes, seja no domínio do tempo ou no domínio da frequência, ou ainda na forma fasorial (campo complexo).

Os valor médio P da potência é dado por:

Agora vamos a um exemplo bem genérico. Digamos que temos uma lâmpada de 48W a 12V e queremos alimentá-la usando uma rede elétrica senoidal de 120V.

P = 42,96 cos(17,35 O )  P = 41,00

O que devemos fazer é utilizar um transformador com relação de transformação (relação de espiras) de 10:1. Porém, como sabemos, todo transformador possui uma indutância série equivalente, que é resultante das indutâncias de dispersão do primário e do secundário.

watts Isso significa que a rede elétrica está entregando 41W para o transformador, portanto, uma potência inferior a 41W será recebida pela lâmpada, o que é muito aquém dos 48W que ela deveria receber.

Digamos que este transformador a ser utilizado tem resistência de secundário igual a 0,1Ω, reatância do secundário (medida já na frequência da fonte) igual a 0,5Ω, resistência do primário igual a 10Ω e reatância do primário igual a 50Ω.

Portanto, essas indutâncias série do trans-formador (indutâncias de dispersão) são muito altas e estão produzindo queda de tensão no secundário, que não transmitirá 12V para a carga (o resultado será uma tensão menor que os 12V esperados).

Para resolvermos este problema, basta calcularmos o circuito elétrico equivalente do lado primário, ou seja, “refletirmos” toda a impedância do secundário no primário.

E finalmente o fator de potência desta carga é:

24


P = VRMS I RMS cos( Δφ )

42,96 cos(17,35 O ) P 41 fp = = = S 42,96 42,96

Finalmente chegamos à expressão geral de fator de potência em circuitos elétricos lineares operando em RPS:

 fp = cos(17,35 O ) = 0,954

fp =

O cálculo acima do fator de potência nos sugere que há alguma relação entre o mesmo e a defasagem entre a corrente e a tensão. E de fato há, conforme vamos demonstrar agora.

 fp = cos( Δφ )

Como sabemos da teoria de circuitos elétricos lineares, sempre que um circuito é submetido a uma tensão senoidal ele responderá com uma corrente também senoidal e uma fase diferente. Isto significa que, dado

v(t ) = VP sin(ωt + φ P )

P VRMS I RMS cos( Δφ ) = S VRMS I RMS

Justamente por isto que o fator de potência é mundialmente conhecido como cos(φ), pois é muito comum fazer-se φP=0 e utilizar-se φ ao invés de Δφ para representar a defasagem entre tensão e corrente. ,

Considerações finais: sendo um circuito indutivo ou capacitivo, o fator de potência será sempre positivo, simplesmente porque o cosseno da diferença de fases (defasagem) entre tensão e corrente é um número sempre positivo, já que tal defasagem encontra-se sempre entre

teremos:

i (t ) = I P sin(ωt + φ P + Δφ )

-90O≤Δφ≤90O,

,

onde Δφ>0 significa que o circuito é parcialmente capacitivo (caso Δφ seja exatamente igual a 90O, isto é, π/2 rad, o circuito será puramente capacitivo), e Δφ<0 significa que o circuito é parcialmente indutivo (caso Δφ seja exatamente igual a -90O, isto é,- π/2 rad, o circuito será puramente indutivo).

ou então

-π/2≤Δφ≤π/2 Em termos gerais, o conceito de fator de potência surgiu de um fato físico relativamente básico: é possível (e muito comum) termos um fluxo de corrente, através de um bipolo submetido a uma determinada tensão, sem que haja fluxo de potência média ao longo do tempo, conforme já demostrado.

A potência instantânea p(t) consumida por este circuito genérico será:

p(t ) = v(t )i(t )  p(t ) = VP sin(ωt + φ P ) I P sin(ωt + φ P + Δφ )

Caso o circuito a ser elaborado ou analisado não esteja submetido a RPS, não há nada a fazer a não ser aplicar a definição generalizada de fator de potência, que já foi apresentada mas vale a pena rever:

 sin(ωt + φ P ) cos(Δφ )   p(t ) = VP I P sin(ωt + φ P )  + cos(ωt + φ P ) sin(Δφ )  V I  (1 − cos(2ωt + 2φ P ) )cos(Δφ )   p(t ) = P P  2  + sin(2ωt + 2φ P ) sin(Δφ ) 

a +T

fp =

V I  cos(Δφ ) + sin(2ωt + 2φ P ) sin(Δφ )   p(t ) = P . P  2 2  − cos(2ωt + 2φ P ) cos(Δφ ) 

 v(t )i(t )dt a

a +T

 (v(t ))

2

a

 cos(Δφ )   p(t ) = VRMS I RMS  − + + Δ cos( 2 2 ) ω t φ φ P  

a +T

dt

2 ( ) i ( t ) dt  a

Agora que ficou claro do que se trata o fator de potência, de onde ele surge e as suas consequências, resta-nos estudar como fazemos para melhorá-lo.

Note que o segundo termo da potência instantânea em RPS descreve um termo alternante, ou seja, exatamente uma potência que é fornecida do gerador à carga e logo em seguida é devolvida pela carga ao gerador.

Tudo consiste em estudarmos o circuito elétrico em questão, isto é, resumi-lo a um bipolo elétrico submetido a uma tensão v(t) e determinar a corrente i(t) que o atravessa (ou o contrário), ou seja, determinar a sua admi-tância equivalente (ou impedância equivalente).

Note que este fluxo alternante de potência ocorre duas vezes por período, isto é, ocorre com frequência 2f (ou 2ω, em termos angu-lares). Por se tratar de uma potência alter-nante, seu valor médio é zero.

Caso a admitância determinada consista num circuito RL paralelo, acrescenta-se um capacitor também em paralelo que tenha uma reatância exatamente igual à reatância da parte indutiva determinada. E caso a admitância determinada consista num circuito RC paralelo, acrescenta-se um indutor também em paralelo que tenha uma reatância exatamente igual à reatância da parte capacitiva determinada. É tão simples assim! Porém, esta regra só vale para RPS.

Já o primeiro termo da potência instantânea em RPS descreve um termo constante, que corresponde justamente ao valor médio. Aplicando-se a definição de valor médio, dada logo no começo deste texto, temos que a potência média P é dada por:

25


S = P + jQ

Caso o circuito em questão não esteja operando em RPS, ou a carga não seja linear (como é a maioria esmagadora dos circuitos eletrônicos), só nos resta apelar para duas soluções: filtros passivos ou filtros ativos, podendo ser lineares ou não lineares.

Temos que retificar a definição de fator de potência, que passa a ser:

Este é um assunto muito extenso e que poderá ser abordado noutra oportunidade.

P fp = S

Apenas por questão de precisão conceitual, cabe ainda mencionar que a potência aparente S, no caso de RPS, pode ser tratada por um número complexo. Até o presente momento, a abordagem utilizada corresponde exatamente ao módulo (norma) deste número complexo. Quando se opta pela forma complexa, S adquire a seguinte forma:

Mas é claro, isso nada muda a consequência fundamental do RPS, que é podermos calcular o fator de potência por:

S = P + jQ

fp = cos( Δφ )

Onde P é a potência média real, S é chamado de potência aparente complexa, e Q é a potência imaginária (puramente reativa, medida em VA, e que não produz trabalho nem potência útil alguma). Conforme foi demonstrado:

No final, espero ter abordado tudo o que se refere a fator de potência e deixado claro que é perfeitamente possível termos tensão e corrente num circuito sem que haja absolutamente nenhuma transferência de potência.

P = VRMS I RMS cos(Δφ )

Esta abordagem pode ser sida bastante teórica, mas diante do fato de que o fator de potência é um conceito puramente teórico sem significado físico, era inevitável que a abordagem fosse essencialmente teórica, mas com alguns exemplos práticos simples. ■

A potência imaginária Q é simplesmente definida (por conveniência matemática) por:

Q = VRMS I RMS sin( Δφ ) Ela é assim definida para que possa haver a relação triangular entre as potências, que será dada por:

S = P2 + Q2 O termo Q é a potência imaginária, mais conhecida como potência reativa, e é o que deseja ser totalmente compensado ou corrigido, isto é, utilizando-se capacitores para eliminar reatância indutiva, ou indutores para se eliminar reatâncias capacitivas. Ele expressa um consumo de corrente que não realiza trabalho nem potência, isto é, contribui para perdas de transmissão (perdas por efeito Joule nos condutores que conectam a carga à fonte de alimentação). Este termo Q é aquele que dá origem, na conta de energia, ao consumo medido em kVArh, que significa quilo volt-ampère reativo-hora. S é medido em volt-ampère (VA), P é medido em watts (W) pois é potência real, e Q é medido em volt-ampère-reativo (VAr). Energeticamente o único termo que interessa é P, mas em termos de eficiência todos os termos são importantes, e resta ainda deduzirmos o termo Q (potência reativa) diretamente a partir da potência real P através da fórmula trivial:

Q = P tan(Δφ ) Esta última equação deixa claro que, quando a carga é puramente resistiva (o que estamos sempre buscando, através dos métodos de correção de fator de potência), isto é, quando Δφ=0, Q=0, e portanto P=|S|. Cabe uma correção final: caso seja utilizada a definição de S como potência aparente complexa

26


Direto da China

Pedro Drummond A DX havia entregue meu pedido? Ou havia entregado?

Conhece o MARIO? Aquele que...

LED aceso ou acendido? Está em dúvida? Coloque um 555 astável...

Você mostra um circuito defeituoso ao seu amigo e ele fala: “Ah, deixa que eu remedeio!”

Tá bom, a regra básica é: ser e estar aceso (forma irregular do verbo), ter e haver acendido (forma regular). Assim, dizemos que o LED está aceso, mas que eu havia acendido a lâmpada.

Manteremos essa lista de fornecedores asiáticos constante na revista, pois a cada mês podem surgir fornecedores adicionais. www.sureelectronics.net www.dealextreme.com www.chinavasion.com www.gainexpress.com www.kaidomain.com www.focalprice.com www.dhgate.com www.lightinthebox.com www.mymemory.co.uk (memory) www.play-asia.com (jogos) www.eastbay.com (tênis e roupas) www.fragrancex.com (perfumes) www.finishline.com (tênis) www.secondspin.com www.eastbay.com

Pedro Drummond

Detalhe: “acender” é iluminar, “ascender” é subir. Outros exemplos: “eu estava surpreso com aquele encontro”, ou “eu já tinha aceitado o emprego”. Quer uma exceção? (sempre tem, né?) “O leitor gosta de ser sur-preendido pelo autor...” Outros especiais: “pago”, “ganho” e “gasto”. Use sempre desta forma. Os especialistas discutem isso, mas o consenso da maioria é a preferência pela forma irregular. Aproveitando que o assunto é forma regular e irregular, lembre que o verbo “chegar” não tem forma irregular. Ou seja, não dá pra você dizer que “tinha chego no trabalho mais cedo”. Nem se fosse verdade.

27

Horrível, né? Também acho. Só que ele está certo. O verbo “remediar” faz parte da lista do MARIO. São os verbos terminados em “iar” que têm conjugação irregular. O MARIO é formado por Mediar, Ansiar, Remediar, Incendiar e Odiar. Não quer falar que você intermedeia a negociação? Tudo bem, diga que você “faz a intermediação” – afinal, se você falar certo, vai ficar com fama de burro...


Termômetro Enrolado Por Wagner Lipnharski – Orlando Florida.

A maioria dos transistores NPN, incluindo 2N2222, BC548, BC107, trabalha bem nesse tipo de oscilador, porém poucos como o BF494 conseguem trabalhar com tensões de alimentação abaixo de 6V. O diagrama da Figura 1 trabalha com alimentação a partir de 3V, requerendo pequenos ajustes nos resistores.

O Cálculo de um indutor com núcleo de ar, cujo resultado é em microHenries, é:

=

0.0393 ∗ ( ) 6 + 9 + 10

Onde: N = Número de espiras,

R = Raio médio da bobina, C = Comprimento da bobina, E = espessura da bobina.

Existem diversas maneiras de efetuar medição de temperatura, desde o simples termômetro de mercúrio, que tira o sono da mãe preocupada com a febre do filho, ao termômetro que indica quando o peru está pronto no forno, e passando por uma gama enorme de sensores de todo tipo, bem como os chips eletrônicos que já indicam a temperatura em graus, em milivolts, etc. Também não podemos esquecer dos componentes eletrônicos passivos, tais como resistores (NTC e PTC), bem como junções de diodos e transistores que alteram suas características conforme a temperatura. Praticamente todo sensor tem uma faixa de temperatura ideal para trabalho, outros não se comportam bem fora de outra faixa, e outros praticamente são destruídos se usados além do máximo permitido. Esta é a primeira de uma série de matérias que publicarei a respeito de medição de temperatura. Nas próximas edições mostrarei diferentes técnicas e sensores. Nessa edição veremos uma técnica pouco empregada, para não dizer nunca; é a bobina de um oscilador LC, daí o termo “termômetro enrolado”. Essa técnica emprega um simples oscilador eletrônico LC. Parte-se do princípio que um oscilador LC tem a sua frequência determinada principalmente pelo valor do indutor e do capacitor, e basicamente a fórmula é

=

O valor “L” de um indutor (medido em Henries) é definido por variáveis: quantidade de espiras, diâmetro das espiras, espaçamento entre elas, tipo de condutor, diâmetro do condutor, tipo de núcleo (ar, metal, ferrite, outro), etc.

Numa bobina de camada única, a espessura (E) é o diâmetro do fio utilizado. Também é bem possível que se a bobina for montada apertada, o comprimento (C) da bobina seja o número de espiras multiplicado pelo diâmetro do fio. Todos os valores em milímetros.

Figura 1 O calculo de frequência do circuito acima (que utiliza só um capacitor), resulta em aproximadamente 833 kHz:

=

1.6 2 √

Já no circuito abaixo da Figura 2, utilizando ambos os capacitores, a fórmula é mais precisa, e resulta em aproximadamente 666 kHz:

=

1 2

(

)

Onde “Cx” é o resultado do cálculo de capacitores C1 e C2 em série, cuja fórmula é:

=

Por exemplo, uma bobina com 42 espiras apertadas de fio AWG 24 (0.54 mm de diâmetro), numa única camada, diâmetro interno de 52 mm, comprimento resultante de 23 mm, espessura de 0.54 mm, resulta em torno de 102 µH. Não divulgarei os resultados das medições, pois essas variaram de acordo com o formato da bobina, quantidade de espiras, diâmetro do fio, etc, e não consegui chegar num racional lógico a ponto de produzir uma fórmula adequada. Mas deixamos a idéia de que isso é possível, e poderá ser usado. A vantagem desse tipo de sensor é a ampla faixa de temperatura, desde sub-freezing até acima de 300°C, onde simples NTCs e sensores semicondutores não sobreviveriam. Com tempo hábil, pretendo repetir as experiências de bancada, documentar e divulgar. ■

1 1 1 + 1 2

Até o momento fizemos um oscilador LC funcionar, mas como isso pode ser considerado um termômetro?

Praticamente todas essas variáveis influenciam no valor “L” do indutor. Uma delas que é o foco dessa matéria é a temperatura. Minúsculas variações de temperatura irão variar o diâmetro do indutor e com ele a frequência do oscilador.

A bobina de fio é feita com um condutor elétrico metálico, por exemplo, cobre, e metal expande ou contrai sob diferentes temperaturas. Ao dilatar ou contrair, a bobina muda suas características físicas e altera a sua indutância. Essa mudança afetará a frequência do oscilador e o microcontrolador detectará tal mudança.

No circuito da Figura 1, vemos um simples oscilador LC utilizando um transistor BF494, o tanque LC como feedback para a base do transistor, e um simples gate HCT para recortar o sinal de forma a ser possível efetuar a contagem de pulsos por segundo num microcontrolador.

Medições simples feitas na bancada, utilizando um indutor circular com núcleo de ar, permitiu verificar que se podem obter mudanças de diversos Hertz na frequência do oscilador, com uma leve mudança de temperatura do ar em torno da bobina.

28

Pedro Dummond Ha, meus bons tempos... Para não se confundir mais sobre o “há” ou o “a”, basta lembrar que o “há” é do verbo “haver”, então estamos falando do passado. Assim, “não estudo eletrônica há muito tempo”, e não “a muito tempo”. Essa é fácil, né? Mas toda hora a gente vê...


Sistemas Numéricos Por Wagner Lipnharski – Orlando Florida.

Nesse artigo estarei comentando sobre sistemas numéricos: Decimal, Binário e Hexadecimal. Existe uma grande chance que você já conheça tais sistemas, e se assim for, esse artigo não trará novidade nenhuma a você. Eu tenho um amigo que é neurótico em manter tudo sob controle, os centavos no banco, ele confere o troco das moedinhas, sabe quantos clips de papel tem na gaveta, e pasme, ele tem um caderninho onde controla quantos enlatados tem nos armários da cozinha. Mas assim como isso pode ser neurótico para alguns, para outros é necessidade básica. Sistemas de contabilidade em empresas, tanto quanto sistemas de controle de estoque em indústrias, distribuidoras e lojas, é fundamental e sem eles nada funcionaria direito. Até o padeiro da esquina precisa ter um sistema numérico que o organize e diga quantos pães ele irá fazer com aqueles sacos de farinha empilhados. Dará para o final de semana? Faltará pão na padaria? Não vou entrar na história da numerologia, porque isso não ajudará muito o objetivo dessa matéria, mas é bom saber que ao longo da evolução humana usamos diversas maneiras de representar “quantidade”, seja para contabilizar as cabras, os cavalos, os filhos, a população, ou as riquezas. Portanto estarei salpicando interessante informação histórica. Passamos pela numeração romana, que até funcionava, mas tinha limite físico de quantidade e não podia ser estendida. Por falar em algarismos romanos, pouca gente percebe que os relógios que usam tais números têm a posição de 4 horas representada por IIII ao invés de IV. Bem, todos conhecem o sistema decimal, ao menos todos deveriam saber, afinal de contas ele nos foi ensinado na escola básica.

Eu sempre tive curiosidade em saber como as outras pessoas mentalmente “vêem” a sequência numérica decimal que usamos. Se você tivesse que mentalizar a tripa de números de 1 a 1000, de uma vez só, como veria? Eu particularmente vejo os números de 1 a 10 alinhados numa fileira horizontal à minha frente se afastando, de 11 a 20 formam uma rampa, de 21 a 30 uma leve rampa à direita, e não sei porque o espaços entre números 26 e 30 são maiores que entre 21 a 25. O número 30 vira à esquerda e continua se afastando de mim, mas isso vai só até 32, vira à direita novamente até 40, quando faz novamente uma escada inclinada até 50, assim continua até 100. Interessantemente de 100 a 490 é uma reta à direita, levemente inclinada, de 490 a 500 é quase uma escada vertical, mas de 501 a 1000 novamente uma reta à direita, levemente inclinada. De Mil em diante repete como do início, a partir de 1. Eu não sei se essa forma de imaginar foi alguma maneira que meu cérebro teve que desenvolver para facilitar cálculos mentais. Creio que os multiplicadores decimais estão todos ali de forma geométrica e tridimensional. Mas acredite, eu sou normal. No sistema decimal, obviamente temos 10 dígitos, e não é de 1 a 10, é de 0 a 9. O conceito de zero demorou muito tempo para ser adotado e nunca passou pela cabeça dos Egípcios ou Gregos, porém parte integrante da numeração Maia, pasme, usava base 20 e era composta por traços e pontos. Um ponto valia 1 enquanto um traço valia 5. Abaixo a representação do decimal 13 em numeração Maia. Tres pontos = 1x3, mais 2 traços (2x5) = 13. O sistema aceitava um máximo de 3 traços e 4 pontos, o que contava de zero a 19 decimal.

Como curiosidade, note que o sistema multiplicador com base 20, é 1, 20, 400, 8000, etc, e permite fazer as quatro operações facilmente. Ao final dessa matéria estarão tabelas dos sistemas de numeração Maia, Egípcio e Babilônio. No nosso sistema DECIMAL, um número pode ser composto de 1, 2, 3 ou infinitos dígitos. Como sabemos, cada dígito à esquerda tem o seu valor multiplicado por 10, sobre o multiplicador do seu vizinho à direita. Só para exemplificar, 937 é composto pelo número 7, mais 30, mais 900, e tal multiplicador x10 do 3 e x100 do 9 são meramente posicionais. Para preparar a nossa cabeça antecipadamente para entender o que vem pela frente, vamos imaginar que o sistema decimal não existe, e tudo o que inventaram até aqui foi um sistema de quinquinário (se é que tal palavra existe), onde só temos os dígitos de 1 a 5, e nem o zero existe. Então, [RRR] seria escrito 3, [RRRRR] = 5, porém [RRRRRRR] não seria 7, porque 7 não existe, seria dois além do 5 então seria 12. Heim? Sim, veja, no decimal nós multiplicamos cada

29

posição dos dígitos à esquerda por x10, x100, x1000, mas nesse quinquinário multiplicaríamos por 5, (x5 x25 x125 x625...) então 12 significa o 2 + 1x5 = 7 (em decimal). Nesse sistema maluco, 23 seria 13 em decimal (3 + 2x5). E quanto seria 3142? 2 + 4x5 + 1x25 + 3x125 = 422 em decimal. Entender isso é fundamental para entender o resto dessa matéria. O nosso cérebro tem a capacidade de visão volumétrica e de quantidade; ao olhar para o número “5”, conseguimos ter uma idéia do que isso possa significar: cinco pães, cinco cabras, cinco dinheiros. Essa capacidade nos parece simples, mas é extremamente complicada, exige uma enorme capacidade de processamento mental associada à capacidade de imaginar e criar. Alguns animais conseguem aprender de forma cognitiva que o número “5” possa estar dizendo que exista comida atrás da quinta porta a contar a partir da esquerda, mas não será por lógica, será por associação da figura do “5” com a posição física da porta. Se, após 3 anos de treinamento com o tal símio, adicionarmos uma sexta porta, ele jamais entenderá o que significa o número “6”, poderá novamente aprender, mas não por lógica. Portanto, um circuito eletrônico que é muito mais bobinho que o cérebro de um animal, jamais conseguiria entender sistemas numéricos; mas entenderia o mais básico de todos. O Sistema Binário. Ligado ou Desligado, Tensão ou Sem Tensão, Um ou Zero, é tudo o que um chip consegue entender. Lembra do “Quinquinário” da coluna ao lado? e que só usa dígitos de 1 a 5? E que multiplica o dígito à esquerda por x5, x25, x125, etc? O sistema binário é igual, porém ele só tem dois dígitos, Zero e Um, e pronto. Portanto, da mesma forma como o Decimal e o Quinquinário, a contar da direita para a esquerda, a posição do dígito é multiplicada por 1, x2, x4, x8, x16, x32, x64... e assim infinitamente. Uma forma simples de representar o binário:

2

onde “n” é a posição do dígito

Portanto, para ver o quanto vale em decimal um número binário, basta multiplicar o valor de cada dígito pelo valor decimal daquela posição. Então “0110”, a começar da direita para a esquerda seria: 0x1 + 1x2 + 1x4 + 0x8 = 6 (decimal), ou, bastaria usar a fórmula para cada dígito ‘1’, então teríamos ( + ) que resulta em 2+4=6. Lembrar que o primeiro dígito à direita é , ou 1. Para dar o nome certo aos bois, vamos chamar então esse dígito 0 ou 1, de BIT, pois ele é a menor parte do sistema numérico binário.


Portanto, o número binário “0110” é composto por 4 bits.

novos símbolos para os valores entre 10 e 15 dos possíveis de cada Nibble.

Vamos também denominar posicionamento. O bit mais à direita, o que tem o menor valor, chamaremos de “bit de mais baixa ordem”, ou LSB (Inglês para Least Significant Bit). Por analogia, o bit mais da esquerda, o que tem o maior valor, chamaremos de “bit de mais alta ordem”, ou MSB (Inglês para Most Significant Bit). Lembre-se desses acrônimos (LSB e MSB), você muito os usará.

Poderíamos escolher qualquer coisa, mas para não inventar novos símbolos no nosso atual alfanumérico, então escolhemos letras de A a F.

ADICIONANDO BINÁRIOS Vamos a uma adição binária.

Com isso, cada uma das 16 possíveis combinações de cada Nibble (4 bits) passam a ter um único símbolo como abaixo, e criamos um novo sistema numérico que daremos o nome de HexaDecimal, pois ele usa o Decimal mais 6 (hexa) diferentes símbolos, então Hexa-Decimal.

Portanto, o binário “0100111010” vale quanto? Da direita para a esquerda: 0x1 1x2 0x4 1x8 1 x 16 1 x 32 0 x 64 0 x 128 1 x 256 0 x 512 ______ 314 em decimal

Assim como o Decimal que limita o número de símbolos em 10, o Maia que limita em 20, e o binário que limita em 2, todas as formas de numeração exigem um limite físico multiplicador, do contrário teríamos que ter um símbolo diferente para cada número possível. Então, para poder unir a mínima capacidade eletrônica e de computadores com a humana, criamos uma forma de humanos poderem ler os binários de forma mais coerente, e limitamos o número de símbolos binários em 4, criamos um pacotinho de BITS e o chamamos de NIBBLE, do Inglês “mordida”. Mordemos 4 bits de cada vez de uma tripa dos binários e temos diversos Nibbles. Convertendo o binário “0100111010” acima em Nibbles, alinhados à direita, ficaria:

01 0011 1010 Posição Nibble: 2 1 0 Como o máximo valor possível de 4 bits (Nibble) é 15 decimal, quando todos os bits são 1, mas isso representa 16 combinações quando associando o zero, então o Nibble 0, por ser o da direita, tem o seu valor unitário, já o Nibble 1, por estar à esquerda do 0, vale o seu valor vezes 16, e por último o Nibble 2, vale o seu valor vezes 256 (16x16). Desta maneira, fica mais fácil para os humanos converterem o binário em decimal. Nibble 0 vale decimal (8+2) 10 x1 = 10, Nibble 1 vale 3 (2+1) x 16 = 48, Nibble 2 vale 1 x 256 = 256, portanto os 3 Nibbles juntos valem 10 + 48 + 256 = 314 (decimal). Agora, se quisermos escrever os valores dos Nibbles de outra maneira que não binário, teríamos que escrever em Decimal, e então ficaria:

1 3 10

Binário

Decimal

HexaDecimal

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 1 2 3 4 5 6 7 8 9 A B C D E F

1+0=1 1 + 1 = 10 (um mais um igual a dois) 10 + 1 = 11 (dois mais um igual a três) 11 + 1 = 1000 (três mais um igual a quatro) Portanto; 1 0 1 1 + 0 0 0 1 ---------1 0 + 1 0 1 ---------1 1 0 0

(Bh) (1h)

(Ch)

O conceito do “vai um” continua sendo usado aqui. Ao somar os dois “1” à direita em cima, na cor roxa, o resultado foi “10” (dois), mas só um dígito pode estar no resultado, então fica o “0” e o “1” em itálico vermelho, é o “vai um”, que soma com o “1” em azul e faz o “10” em verde. É o mesmo conceito de somar decimal 8 + 4, o resultado é 12, porém só o 2 vai para o resultado e o 1 “vai” somar com o dígito à esquerda. Complicado? Então vamos fazer a conta bit a bit e na horizontal. 1011 + 0001 Rodando para a esquerda, LSB em cima.

Desta maneira, os 3 Nibbles que representam o valor 314 em decimal, agora podem ser escritos em Hexa-Decimal:

13A Para não confundir e identificar de acordo, podemos usar a letra “h” (minúscula) após o número Hexa-Decimal, ou também podemos usar “0x” antes do número. Ambas as maneiras são corretas:

13Ah

ou

0x13A

Agora, ao encontrar 13Ah e querendo converter para decimal, basta multiplicar cada dígito pelo valor da sua posição. 13A, o “A” está à direita, portanto tem o seu valor unitário 10. Já o “3” está na segunda posição e essa multiplica por 16, portanto 48, no entanto o “1” multiplica por (16x16) 256, portanto 256. Somando tudo, resulta em 314. Então já somos “mestres” em sistema binário e hexa-decimal. Nesse sistema é possível fazer as quatro operações de forma simples, exatamente como fazemos no decimal.

Mas ao juntarmos, ficaria 1310, aquele “10” misturou e confunde, portanto temos que criar

30

1 1 0 1

+ + + +

1 0 0 0

E agora somando bit a bit Por convenção vamos chamar o “vai um” de “Carry”, e o carry vai somar sempre, sendo zero ou um, vamos chamar de Carry0 ou Carry1. Ao iniciar a soma o Carry é Carry0. 1 1 0 1

+ + + +

1 0 0 0

+ + + +

Carry0 Carry1 Carry1 Carry0

= = = =

0, 0, 1, 1,

sobra sobra sobra sobra

Carry1 Carry1 Carry0 Carry0

Resultado = 1 1 0 0 Para fixar, vamos fazer o mesmo em decimal e somar 189 + 54 9 + 4 + Carry0 = 3, sobra Carry1 8 + 5 + Carry1 = 4, sobra Carry1 1 + 0 + Carry1 = 2, sobra Carry0

Resultado = 243 SUBTRAINDO BINÁRIOS Subtração funciona da mesma maneira, mas usa-se um macete de somar o “One’s Complement” (complemento de um). Para subtrair 6h de Bh (1011 – 0110) então primeiro se faz o


complemento de 6h. Invertem-se todos os bits (zero vira um e um vira zero) e soma-se um.

Hexa 6h x 5h = 1Eh 0 1 1 0 x 0 1 0 1

0110  1001 + 1 = 1010 (Então o One’s Complement de 0110 é 1010)

Teremos: N1 = 0110 N2 = 0101 Resultado = 0000

b)

Agora soma-se o Bh com o resultado do One’s Complement e despreza-se o ultimo carry bit. 1011 + 1010 1 1 0 1

+ + + +

0 1 0 1

+ + + +

Carry0 Carry0 Carry1 Carry0

= = = =

1, 0, 1, 0,

sobra sobra sobra sobra

Carry0 Carry1 Carry0 Carry1

c)

O macete aqui é somar e shiftar para a esquerda, tantos bits existentes em N1. Inicie olhando o bit mais a direita de N1, no caso é zero, então não soma-se N2 ao Resultado, mas shifta-se N2 um bit à esquerda

Despresa-se o ultimo Carry e o resultado de 1011- 0110 = 0101 (decimal 11 – 6 = 5)

Teremos: N1 = 0110 N2 = 0000 1010 <- shiftou um

MULTIPLICANDO BINÁRIOS

Resultado = 0000 0000

O que pode parecer difícil na verdade é muito simples. A posição do lado esquerdo do BIT tem o valor dobrado dele, não? Lembre-se, 1, 2, 4, 8, 16, 32, 64 ...

Novamente, olhe agora o segundo bit da direita de N1, no caso é 1, então soma-se N2 ao Resultado, e shifta-se N2 mais um bit à esquerda

Veja só, o número 6, bits 0110, vale o dobro do número 3, bits 0011. Note a similaridade entre eles, 0110 e 0011. O que ocorre aqui é que o número 6 tem os dois bits UM uma posição à esquerda dos bits do número 3. Isso significa que a mesma combinação de bits, deslocada uma posição à esquerda, dobra o valor. O inverso também é verdade; ao deslocar os bits uma posição à direita, divide-se o valor por dois. Os bits 0100101100 quando deslocados um bit para a direita, 0010010110, (o zero do final sumiu) têm o seu valor dividido por 2. Se deslocarmos novamente o valor original será dividido por 4; novamente? Por 8. Portanto, para multiplicar 01001010 por 8, basta deslocar seus bits 3 vezes para a esquerda, ou, inserir 3 zeros ao final: 01001010 010010100 0100101000 01001010000

x <<<-

8 = 1 bit deslocado (x2) 1 bit deslocado (x4) 1 bit deslocado (x8)

O valor original 0100 1010 (4Ah) quando multipicado por 8 (3 shifts à esquerda), resultou em 010 0101 0000 (250h). 4Ah = decimal 74, x8 = 250h, decimal 592; confere. Mas nem todas as multiplicações são por 2, 4, 8, etc. Então usa-se fazer exatamente como se faz em decimal. Porém ainda existem possibilidades de efetuar as multiplicações de forma simplificada quando um dos números for constante. Por exemplo, multiplicar um número por 9. Basta guardar o valor original, deslocar para esquerda 3 vezes (multiplicar por 8) e somar o original, o que resultará em x9. Mas fazendo da forma tradicional: Decimal 6 x 5 = 30

Teremos: N1 =

0110

Resultado = 0000 0000 + N2 0000 1010 = 0000 1010 N2 = 0001 0100 <- shiftou dois Novamente, olhe agora o terceiro bit da direita de N1, no caso é 1, então soma-se N2 ao Resultado, e shifta-se N2 mais um bit à esquerda Teremos: N1 =

0110

Resultado = 0000 1010 + N2 0001 0100 = 0001 1110 N2 = 0010 1000 <- shiftou três Novamente, olhe agora o quarto bit da direita de N1, no caso é 0, então não soma-se N2 ao Resultado, e shifta-se N2 mais um bit à esquerda Teremos: N1 = 0110 Resultado = 0001 1110 N2 = 0101 0000 <- shiftou quatro Portanto, multiplicando 6h x 5h – 1Eh Em programas, conta-se quantos bits existem em N1 da direita para a esquerda, até o último bit “1” mais à esquerda, e esse será o número de operações como feitas acima, porque quando N1 só tiver zeros à esquerda não fará mais diferença no resultado, não haverá mais nenhuma soma de N2 a esse. Divisão em Binário é muito similar à multiplicação, na verdade é totalmente inverso. a)

Buscam-se quantos bits em N1 até que não existam mais bits 1 à esquerda;

31

d) e) f)

vamos chamar essa quantidade de “x”. Então se desloca N2 “x” bits à esquerda. Com isso estamos alinhando N2 com N1. Agora se verifica se N2 é menor que N1; se sim: marca-se um bit 1 no resultado (que no início está zerado), exatamente na posição “x”. Faz-se a subtração N1-N2 e o resultado da subtração volta para N1. Decrementa-se “x” Shifta-se N2 um bit para a direita Operação concluída quando “x” for zero.

Esse processo é rápido e consome somente “x” voltas na rotina [a-e]. Agora já sabemos o que é um sistema Binário e também o Hexa-Decimal. Também sabemos fazer as quatro operações com binários.

Sistema Numérico Maia


Atmel AVR e Assembly Parte 1 Por Wagner Lipnharski – Orlando Florida. Já era tempo para iniciarmos uma seção assim, onde poderemos descrever chips de diversos fabricantes e modo de programação. Tenho certeza que teremos colaboradores para as próximas edições, descrevendo chips de outros fabricantes. Não quero aqui entrar no mérito histórico nem caracterizar evolução ou penetração no mercado, muito menos iniciar uma polêmica sobre linguagens de programação, afinal de contas todo mundo já sabe qual é a melhor mesmo. Esse artigo que terá diversas partes, descreverá o “core” do chip AVR da Atmel, e que poderia ser qualquer um, desde o antigo At90S2313 até os mais modernos e carregados de memória e dispositivos internos, como um AtMega128. A intenção aqui é permitir aos iniciantes na área entender um pouco melhor tais chips e iniciar nessa importante linguagem que é o Assembly, temido por muitos, odiado por outros, amado por tantos. Nunca uma linguagem de programação gerou tanta polaridade entre programadores, muito mais que time de futebol ou partido político. Que me perdoem os que já têm conhecimento, mas tentarei explicar de forma bem básica e simples, para que qualquer um entenda e tenha a chance de colocar mãos à obra e conseguir programar um AVR em Assembly !!! Iniciarei descrevendo um pouco da parte de hardware, de forma figurativa, para que o estudante possa visualizar de que forma tudo estará trabalhando. Também usarei termos em Inglês, que é o idioma original e que faz muito mais sentido, e é o que se encontra em manuais técnicos.

porta serial a mais, mais pinos de entrada e saída, etc. Nós vamos pensar sempre no Mr.Core como um cara que recebe nossas ordens e as executa de forma precisa e muitíssimo rápido. Todas as nossas ordens a ele têm uma identificação numérica, que por acaso é seqüencial. Sem importar muito quantas sejam, elas aparecem numa telinha para o Mr.Core, uma de cada vez, junto com tal identificação. Da mesma forma como num Rolodex, o Mr.Core tem a capacidade de girar um botão e ver ordens que já passaram ou avançar e ver ordens lá na frente; ele as busca pela identificação. Eu posso mandar o Mr.Core “Pegar o Lápis”, e em seguida dizer “Escreva”, mas se ele voltar para olhar antes do “Pegar o Lápis”, é bem provável que encontrará uma ordem “Pegue uma Folha de Papel”. Estará tudo lá, um tripão de ordens. Essa janelinha onde aparece uma ordem de cada vez, chamaremos de “Program Counter”, que poderemos traduzir para “Contador de Ordens”. Esse “counter” é exatamente o identificador das ordens, e é ele que diminui ou avança a contagem conforme o Mr.Core gira aquele botão de avanço ou retrocesso. Vamos também passar a chamar as “ordens” de “instructions” (instruções). Na mesa do Mr.Core, existem caixinhas, e em cada uma delas cabe um byte, que é um único número que pode ter o valor de zero até 255. Existem muitas caixinhas, mas inicialmente vamos identificar somente 32 delas. Para facilitar chamaremos cada caixinha de Registrador (registro) e para ficar mais fácil ainda, escreveremos em cada caixinha a letra R e o número dela, portanto teremos caixinhas R00 até R31. Por uma questão de facilidade na mesa do Mr.Core, as caixinhas de R16 até R31 estarão muito próximas à mão direita dele, que é a mão usada para calcular, pegar coisas, escrever, etc, afinal de contas o Mr.Core é destro. Então colocaremos as caixinhas de R00 até R15 do lado esquerdo do Mr.Core,

Dentro do chip à direita (uma rara fotografia do core de um AtMega88) tem um cara chamado Mr. Core, é esse senhor quem dá vida ao chip, ele é o manda-chuva. Em volta dele existem alguns ajudantes, auxiliares, atendentes, mas é o Mr.Core quem faz e acontece. O Core é simplesmente a pastilha eletrônica que é praticamente igual em todos os chips AVR, é o miolo pensante, o centro nervoso. Os ajudantes e auxiliares são dispositivos adicionais que um chip pode ter e outro não, mais memória, uma

32

mas ele não consegue facilmente acessar essas caixinhas com a mão direita, precisa ser com a esquerda o que irá requerer dois movimentos na maioria das vezes. Existem casos que com esforço ele as alcança com a mão direita mesmo. Como o Mr.Core demonstrou necessidade de ter muito mais caixinhas, então instalamos um armário à sua frente, e lá ele tem centenas delas, que identificaremos mais tarde. Algumas daquelas caixinhas do armário são as usadas pela secretária dele, bilhetinhos, recados de telefone, a caixa de entrada, saída, até o telefone dele está naquele armário, que o Mr.Core consegue alcançar com a mão esquerda. Só para sacanear um pouco. Na verdade queremos deixar a mão direita do Mr.Core o mais livre possível, afinal de contas ele tem que trabalhar rápido. Como todos nós, todas as manhãs quando o Mr.Core entra no escritório dele e assume a posição de trabalho, ele tem que primeiro ligar a luz da sala, ligar a cafeteira, apontar o lápis, preparar tudo em volta e ter certeza de que quando alguma coisa aparecer na telinha ele esteja apto a desempenhar o trabalho a ser feito, e executar as “instructions” da forma usual. Essa tarefa de preparação poderá ter o nome de “setup” ou “preset” (arrumar) a sala. Esse Preset é na verdade acertar as caixinhas, limpá-las do dia anterior, ter certeza de que a secretária dele não vai encontrar lixo pela frente, definir até que horas ele vai trabalhar, definir quem pode vir falar com ele, quem terá o direito de interromper o trabalho normal dele, se o cachorro estará solto para alertar da presença de estranhos ou estará dormindo e que se lasque a segurança, etc e tal. Uma vez tudo em ordem e verificado, ele começa a olhar na telinha e obedecer instructions. O Mr.Core tem uma calculadora bonita na mão direita. Ela faz no máximo 4 operações, mas hoje ela só faz duas, soma e subtrai, e pior, ela só faz a operação de um Byte com outro. Lembre que um Byte é o conteúdo de uma caixinha, e que pode ter qualquer valor entre zero e 255. Coitado do Mr.Core, o resultado da conta da calculadora nunca poderá ser menor que zero ou maior que 255. Mas ele tem diversas caixinhas e pode arrumá-las lado a lado e entender números com mais dígitos. Se arrumar 4 caixinhas lado a lado, poderá ver 4 Bytes ali dentro, como por exemplo, [005][032][241][097]. Esse é um número enorme. Quer ver? Como cada Byte pode assumir valores entre 00 e 255, então são 256 valores no total, pois o zero conta como um deles. Então aquela caixinha mais à direita será o valor dela mesma, mas a primeira à esquerda valerá o conteúdo vezes 256, a próxima à esquerda valerá o conteúdo x 256 x 256 e a mais a esquerda valerá o conteúdo


x 256 x 256 x 256. Complicado? Não. Isso é igual ao sistema decimal que tu aprendeste na escola, unitário, x10, x100, x1000. Aqui no caso, os valores seriam “unitário”, x 256, x 65536, e x 16777216. Esse sistema que conta cada caixinha como valendo 256 chamamos de sistema de octetos; vamos dar outro nome bonito; sistema Binário, descrito na matéria anterior dessa edição. O Mr.Core trabalha numa certa velocidade, ele lê e executa uma Instrução com base numa batida lá fora, dada por um maluco batendo numa lata de lixo, numa cadência rítmica. Quanto mais rápido o maluco bate, mais rápido o Mr.Core trabalha. Esse maluco é na verdade um cristal oscilador que é ligado do lado de fora do chip e dá a cadência do trabalho, que chamaremos CLOCK. A maioria dos Chips AVR da Atmel aceitam trabalhar num máximo de 20MHz, ou, vinte milhões de batidas por segundo, e o coitado do Mr.Core irá tentar executar Vinte Milhões de Instruções por segundo, se usar só a mão direita !!! Quando precisar usar a mão esquerda, “pode” acontecer que ele precise fazer dois movimentos ou mais entre as mãos e caixinhas, nesse caso, algumas instruções podem precisar mais de uma batida lá na lata de lixo, mais de um pulso de CLOCK.

A calculadora que também está próxima à mão direita do Mr. Core permite, por exemplo, que ele possa somar o conteúdo do registrador R19 (que é um byte – lembra? 8 bits, 2 nibbles...) com o conteúdo do registrador R29, e o resultado ser colocado no próprio R19. O uso dessa calculadora permite não só adição, mas também subtração, e é importante lembrar que o registrador de destino do resultado é sempre o primeiro. Somando R29+R18 colocará o resultado em R29, mas somando R18+R29 o resultado vai para R18. O Mr. Core também tem as portas e janelas muito próximas da mão direita. Essas portas e janelas dão acesso ao mundo externo, ou às prateleiras e armários à volta dele. Ele pode, por exemplo, copiar o conteúdo de R22 para uma porta de saída e seus pinos físicos do chip, de imediato, e esses 8 bits estarão disponíveis para você ligar LEDs, por exemplo. Ele também pode de imediato ler 8 bits de uma janela ou prateleira e colocar em R22. Mas ele só pode fazer esses movimentos com portas e janelas com registradores R16 a R31. Estas portas e janelas, a partir de agora chamaremos de I/O (input/Output), só podem ser acessadas com a mão direita; Agora chamaremos os R16 a R31 de High Registers (registrado-

Já sabemos então que ao alcance da mão direita, o Mr. Core tem as caixinhas (registers) identificadas como R16 até R31. Ele tem alcance direto a tais registradores, ele consegue ler ou alterar diretamente o conteúdo desses registradores. Já os registradores R00 a R15, ele precisa acessá-los com a mão esquerda, o que o impede de lê-los ou alterá-los imediatamente. Por exemplo, para ler ou alterar o conteúdo do registrador R02, ele precisa copiar o conteúdo de R02 para um dos registradores da mão direita, por exemplo, R18, e então usá-lo. Mas algumas coisas ele consegue fazer diretamente com a mão esquerda. Explicaremos adiante. Essa conversa toda é só para chamar a atenção e manter em mente que registradores R00 a R15 nem sempre podemos acessar diretamente.

Existe também internamente no Core uma memória mais ampla, é um armário comprido num corredor, chamada de SRAM (Static Random Access Memory) – Memória de Acesso Não Sequencial (randômica). Essa memória é composta por uma pancada de caixinhas, iguais aos registers, porém em muito maior quantidade, que pode variar de modelo para modelo de chip, 128, 512, 2048 Bytes ou mais. A memória SRAM usa tecnologia diferente dos registradores, está fisicamente em local diferente dentro do chip, e não se deve pensar nela como sendo registers. É um armário separado. Na memória SRAM é onde gravamos dados a serem processados imediatamente, é como se fosse a nossa mesa de trabalho, onde abrimos arquivos, classificamos, mudamos, organizamos, calculamos, e ao final devolvemos ao destino, que pode ser o mundo externo, ou outro dispositivo de armazenamento.

À direita um pedacinho minúsculo, menos de 2%, da imagem toda do Core do AtMega88 ampliado centenas de vê-zes. É impressionante imaginar que toda essa tecnologia, microscópica dessa maneira, e que funciona!!!, custam 3 ou 4 dólares ali na loja da esquina. Essa parte ampliada é um pedacinho do controle e da memória Flash. Vamos voltar então a ver as atividades do Mr. Core no trabalho do dia-a-dia.

trador que conterá o Byte a ser transmitido ou recebido pelo controlador de comunicação, e tantos outros. É uma lista razoavelmente grande, e cada um tem uma função específica. Um em especial, por exemplo, controla se o Core continuará trabalhando a todo vapor, ou se dá uma relaxada sem desligar energia, consumindo bem menos até que se comande o contrário. Em determinadas situações o Core não precisa ficar tão agitado, eventualmente por algum tempo ele não precisa fazer nada, mas não queremos desligar a energia, queremos mantêlo prontinho para retomar atividades. Essas situações chamaram de “Sleep”, ou “Low Power Mode”, são ativadas mudando alguns bits num registrador especial de I/O.

res da parte alta), e R00 a R15 de Low-Registers (parte baixa); pois bem, querendo mover um byte de R04 para um I/O, ele terá que primeiro copiar R04 para qualquer um High-Register e então mover desse registrador para a porta I/O. O inverso também é verdadeiro. Byte de I/O não pode ser movido diretamente para um LowRegister, terá primeiro que ser gravado num High-Register e então copiado para o LowRegister de destino, se assim quiser. Mas quem são esses I/Os (janelas e portas)? São todas as outras caixinhas e prateleiras no chip, como por exemplo, os pinos externos do chip, os outros registradores de controle em geral, os counters (contadores), os timers (temporizadores também contadores), os registradores de controle de comunicação, até mesmo o regis-

33

Tanto a Memória SRAM quanto os Registradopres perdem o conteúdo quando desligamos a energia que alimenta o chip. Chamamos isso de Memória Volátil. O Core também tem acesso a tal memória SRAM usando instruções especiais, que podem ou não usar alguns High-Registers como carteiros (ou seja, quem aponta onde na memória o tal Byte será gravado ou lido). Também existe outro tipo de memória, chamada FLASH. Parte dessa memória dá para ver na parte avermelhada no lado esquerdo superior da imagem ao lado, e é onde podemos gravar a sequência de comandos e instruções que queremos que o Core execute quando em operação. É exatamente nessa memória FLASH onde fica o tal “programa”. É ali que é gravado o que se transfere para o chip, durante o processo de “programação”.


A memória FLASH não perde os dados quando desligamos a energia do chip. Devido ao tipo de tecnologia, ela mantém o que foi gravado para sempre, até ser apagada numa operação especialmente feita por um equipamento Programador. Então, a memória FLASH contém BYTES que o Core irá decodificar e determinar o que fazer em seguida. O programa é composto por inúmeros bytes, e nos chips AVR cada instrução é composta por 2 ou 4 bytes. De acordo com o valor binário do primeiro byte, o Core identifica e determina o que fazer com tais bits e os bits do próximo ou próximos bytes. Isso significa que o programa é composto por uma sequência de instruções e mais instructions. Essa longa sequência pode ocupar desde poucos bytes até milhares deles. Quanto mais complexo o programa, maior será. Mas como o Core não se perde entre tantas instruções? Um Special Registrador no grupo dos I/Os é um camarada conhecido como Program Counter, a função dele é exatamente manter o Core informado de onde anda, e qual o endereço na memória de onde está lendo instruções, daí o nome “Program Counter”, contador de instruções, abreviado como “PC”. Normalmente o Core não tem permissão de mudar o conteúdo da memória FLASH, mas ele pode ler bytes de qualquer endereço dessa memória e movê-los para registradores, e usá-los como bem convier.

dados eletricamente antes de gravá-los novamente. Essa memória então pode ser gravada, lida e regravada pelo Core, porém ela é mais lenta que a SRAM e permite uma quantidade limitada de ciclos de apagamento, normalmente por volta de 100 mil ciclos. A finalidade básica dessa memória é guardar informações a serem usadas durante o processamento a posterior. Ali se guarda, por exemplo, número de série do equipamento, a última posição de uma chave no painel, a seleção de um menu a recuperar na próxima vez que ligar o aparelho, valores, tabelas, funções, etc. Quem ainda não ouviu falar em Cookie de browsers de Internet? Eles ficam ali no seu PC esperando você acessar novamente aquele website, e ao acessar, o Cookie já preencherá os dados usados no mês passado, ou lembram o produto que você viu, etc. Pense na memória EEPROM (ou E2Prom) como a área onde Cookies do PC são gravados. O processo de leitura ou gravação da memória EEPROM é diferente de tudo. Ali no Core existe um “funcionário” que é responsável por isso, é o gerenciador da memória EEPROM. O Core informa a esse funcionário o endereço e o Byte a gravar, o funcionário vai lá e grava e informa quando terminou. É o mesmo procedimento para ler uma EEPROM, o Core “pede” o Byte de um determinado endereço da EEPROM, e em pouco tempo o tal funcionário entrega o Byte lido num registrador em especial.

É assim, por exemplo, como se deixa gravados em meio a um programa, dados e informações a serem mostradas num display, menus de seleção, texto em geral, etc. Esse texto (dados) não é instruction, apesar de estar lado a lado com instruções na memória FLASH, e cuidados são tomados para não permitir o Core tentar decifrar tais dados como se fossem instructions, caso contrário “o barraco cai”.

Bem, então aprendemos que existem diversos tipos de memória, ou lugares onde podem ser guardados Bytes:

Todavia existem modelos mais avançados de AVRs que dão permissão ao Core para alterar a memória FLASH. A finalidade disso é permitir atualização do programa da FLASH feita pelo Core, quando recebendo um novo programa via dispositivo normal de comunicação, sem precisar usar um equipamento Programador de Flash, apesar de que a primeira gravação da Flash deverá ser feita via tal Programador.

A ordem acima é também de velocidade. O Core consegue trabalhar em velocidade de CLOCK nos Registers, quase o mesmo para memória SRAM, mais lentamente na EEPROM e bem mais lentamente na FLASH.

A tecnologia da memória FLASH permite uma quantidade limitada de ciclos de apagamentos, algo em torno de 1000 vezes. Ou seja, o mesmo chip pode ser reprogramado muitas vezes antes do circuito de apagamento da FLASH começar a falhar. Existe ainda outra memória, de tecnologia ainda diferente da Flash, da SRAM e dos Registers, que chamamos de EEPROM (Electrically Erasable Programmable Read Only Memory) que significa Memória Programável para Leitura, de Apagamento Elétrico. Baita nome para dizer que é uma memória que se pode gravar, não perde os dados quando se desliga a energia, mas que se pode apagar tais

• • • • •

Low Registradores (R00 a R15) High Registers (R16 a R31) Memória SRAM (dados a curto prazo) Memória EEPROM (dados a longo prazo) Memória FLASH (programa)

“Do que eu estava falando mesmo?” Hmmm. Pois é, às vezes nos perdemos numa conversa longa e não lembramos mais como retornar ao assunto principal. Para que isso não aconteça com o Mr. Core, foi criado um procedimento chamado STACK (em português: Pilha). Quando o Core está executando uma sequência de instruções, às vezes em meio a isso ele tem que repetir uma sequência de instruções em especial. Por exemplo, digamos que na

34

mesa do Mr. Core existam milhares de formulários a preencher e assina. Então o Mr. Core mandou fazer um carimbo com a assinatura dele e ganha tempo ao invés de repetir o procedimento de assinar manualmente cada página. Quando um programa possui determinada sequência de instruções a ser feita de tempos em tempos ao longo de uma sequência de insctruções, é mais fácil criar esse “carimbo” e, quando necessário, usá-lo. Mas assim como o Mr. Core não mandou fazer um carimbo para cada página (mandou fazer um só), aqui também isso é verdadeiro. Criamos uma sequência deinstruções, que podemos chamar de Sub-Rotina (rotina) e a usamos quando necessário. Essa SubRotina pode estar lá mais para o canto da memória Flash, e sabendo onde está podemos fazer o Program Counter (lembra dele?) apontar para aquela sub-rotina, assim o Core irá executá-la e “carimbar essa página”. Mas veja a mesa do Mr. Core, ele estava escrevendo a página, precisou do carimbo, largou a caneta, foi lá no canto, pegou o carimbo, carimbou e largou o carimbo no canto. Alguma coisa tem que fazer o Mr. Core lembrar o que ele estava fazendo antes de ir buscar o carimbo, de forma que ele possa continuar a escrever o texto na página e não quebrar a linha de pensamento sobre o que estava escrevendo. “Do que eu estava falando mesmo?” Hmmm. O STACK vai lembrar. Funciona assim: Quando o Mr. Core precisou do carimbo, ele marcou num bloquinho de papel ao lado, o que precisava fazer em seguida do carimbo. Ao carimbar e largar o dito cujo no lugar, ele volta no bloquinho e lê o que fazer em seguida. Esse bloquinho é o Stack. Imagine uma situação mais complexa. Mr. Stack está escrevendo, agora precisa carimbar, ele anota no bloquinho o que deve escrever em seguida ao carimbo. Larga a caneta e vai buscar o carimbo. Ao pegar o carimbo no canto da mesa, percebe que não tem a almofada do carimbo, e o carimbo está seco. Tem que ir buscar a almofada. Mas antes disso, ele volta ao bloquinho e anota que após umedecer o carimbo ele tem que carimbar ali no meio da página. Ele não pode ir umedecer o carimbo e esquecer onde carimbar. Então vai até o armário buscar a almofada do carimbo. Ao chegar lá encontra o armário trancado. Ele tem que ir até o Office-Boy para pegar a chave e destrancar o armário, mas antes de ir até o Office-Boy ele retorna ao bloquinho e anota que ao retornar com a chave ele terá que abrir a porta do armário e umedecer o carimbo. Ao retornar com a chave, abre o armário e não sabe o que fazer, então olha para o bloquinho, e ahhh, umedecer o carimbo... e


agora? bloquinho... ahhh, retornar à mesa e carimbar no meio da página. Para cada desvio da tarefa em andamento, deverá haver um retorno para a instrução exatamente a seguir de quando houve o desvio. Cada vez que “chama-se” uma sub-rotina em algum lugar da memória Flash, o endereço da próxima instrução que seria executada se não fosse feita a chamada à subroutine, é guardada no Stack, de forma que ao terminar a subroutine, o Stack diga ao Program Counter o que fazer. Se durante a execução da sub-routine é necessário chamar outra sub-routine, não tem problema; o endereço da próxima instrução a executar na primeira sub-routine é também guardado no Stack; ao terminar a segunda subroutine, o Stack informa para o Program Counter para onde retornar, que é no próximo endereço da primeira sub-routine, que continua executando, e ao final retorna para a coisa principal, e continua. O STACK é isso mesmo, uma pilha, e a cada vez que um endereço é necessário ser guardado no Stack ele empilha esse endereço sobre o último ali guardado, e outro sobre esse, de forma que ao recuperar tais endereços, é só pegar o último, o último, novamente, etc. Igualzinho às folhinhas do bloquinho; basta ir ler a última escrita e saber o que fazer, arranque a folhinha, a nova última é a próxima coisa a fazer, e assim continua. Então o Stack permite que sub-rotinas sejam chamadas em meio a sub-rotinas, em meio a rotinas, etc, sem que se perca o fio da meada, sem que o Program Counter não saiba para onde ir quando uma dessas sub-rotinas concluir o trabalho. Mas como o Stack é algo muito bacana, o Mr. Core resolveu que pode querer usar o Stack também não só para guardar endereços de retorno, mas também Bytes de Dados por um tempo muito curto. Digamos que ele PRECISE (e não tem outra maneira) de usar o registrador R25 para um cálculo, mas R25 contém um Byte que ele não pode perder. Então ele primeiro precisa salvar o conteúdo de R25 em algum lugar. Ele poderia copiar R25 para R28, e depois recuperar, mas quem sabe exatamente se o conteúdo de R28 pode ser destruído e receber o Byte de R25? A maneira mais fácil é copiar R25 para o Stack, usar R25 para o que for necessário, e ao final recuperar o Byte do Stack para R25. Então o Stack serve de área temporária.

Como a cada gravação no Stack “aumenta uma folhinha no bloquinho” e a cada recuperação do Stack se retira uma folhinha, é necessário algum funcionário auxiliar do Mr. Core para colocar ou tirar folhinhas. Esse é o trabalho do STACK POINTER (SP). De uma forma simples, a cada Byte que é gravado no Stack, o Stack Pointer diminui um e aponta para um endereço mais baixo do Stack. Gravou outro? SP diminui um. E por aí vai. Quer recuperar um Byte do Stack? Sem problemas, o SP aumenta um, lê o Byte e entrega ao Core. O Stack Pointer faz um trabalho extremamente importante na sala do Mr. Core, pois um erro qualquer nesse sistema e lá vai o Mr. Core com a chave do armário tentar abrir a cafeteira e depois carimbar a testa do Office-Boy por engano. Muito bem, então aprendemos que o Stack pode manter Bytes temporariamente. Esses bytes podem ser o endereço onde uma rotina deve continuar a rodar após retornar de uma subroutine, mas esses Bytes também podem ser simplesmente 8 bits do conteúdo e qualquer registrador, ou outro significado. Também entendemos que o Stack Pointer é quem diz ONDE no Stack o próximo Byte será salvo, e/ou qual é o Byte a recuperar. Quando se quer salvar o conteúdo de R18 no Stack, basta pedir ao Mr.Core para obedecer a instrução PUSH R18, bem assim mesmo, “push” de empurrar, empurre o conteúdo de R18 no Stack. Digamos que o Stack Pointer esteja apontando para o endereço 05Eh, e que o conteúdo de R18 seja B2h (binário 1011 0010). Ao executar a instrução PUSH R18, o valor B2h será gravado no endereço 5Eh do Stack e após isso o Stack Pointer irá diminuir 1 do seu valor, e apontará agora para o endereço 5Dh do Stack, para a possível próxima instrução PUSH. Para recuperar o valor original (B2h) para R18, então usamos a instrução POP R18. Pop de “recuperar do Stack”. Ao executar a instrução POP R18, o Mr.Core primeiro adiciona 1 ao Stack Pointer, que estava 05Dh e passa a apontar o endereço 05Eh. E em seguida lê o conteúdo daquela posição do Stack, e lá estará o conteúdo antigo de R18 (0B2h). Mas a instrução POP não sabe de quem era o byte 0B2h originariamente. O Mr. Core executou POP R18, e o valor vai para R18, mas ele poderia ter executado POP R22, e aquele mesmo Byte 0B2h então seria transferido para o Registrador 22. Hmmmm. Então eu posso Salvar algo de um determinado Registrador no Stack e Recuperar em outro. Pode sim.

35

Mas se a intenção é copiar o conteúdo de um registrador para outro, então existe uma instrução pópria para isso, chama-se MOV Rx, Ry. “Mov” de “mover”. Digamos que R10 contenha o valor 0F1h, e R29 contenha o valor 012h. Ao executar a instrução MOV R10, R29 o conteúdo de R29 será copiado para R10. Ambos os registradores, R10 e R29 agora terão o conteúdo 012h, e o conteúdo original de R10 (0F1h) será perdido. Não quer perder o conteúdo de R10? PUSH R10 MOV R10, R29 O valor 0F1h de R10 será salvo no Stack, e em seguida o conteúdo de R29 será copiado para R10. Assim, pode-se fazer o que se queira e ao final pode-se recuperar o valor 0F1h que está no Stack, para R10 ou para qualquer outro registrador. POP

R10

Mas como é que uma rotina faz para salvar o endereço de retorno no Stack, ao chamar outra rotina? Como isso acontece? Vamos usar o exemplo acima: Precisamos salvar R10 PUSH R10 Agora Mover conteúdo de R29 para R10 MOV R10, R29 Agora Adicionar o conteúdo de R17 em R10 ADD R10, R17 Agora Mover o resultado (em R10) para R29 MOV R29, R10 Recuperar o conteúdo original de R10 POP R10 Hmmm, ADD ? nova instrução, Adicionar. ADD R10, R17 faz uma adição dos conteúdos dos registradores R10 com R17 e coloca o resultado no registrador do lado esquerdo, ou seja, R10. Mas digamos que a parte matemática da adição não esteja aí embutida na rotina, e sim em outra rotina, e que esta esteja no endereço 0215h da memória Flash. Precisamos salvar R10 PUSH R10 Agora Mover conteúdo de R29 para R10 MOV R10, R29 Agora Adicionar o conteúdo de R17 em R10, mas essa instrução está numa subrotina no endereço 0215h da Flash, então precisamos chama-la: CALL 0215h Agora Mover o resultado para R29 MOV R29, R10 Recuperar o conteúdo original de R10 POP R10 CALL ? Desvio de Chamada. Aquele CALL 0215h acima, será decodificado pelo Mr.Core que moverá o valor 0215h para o Program Counter (lembra dele?) e esse será o próximo endereço a ser lido da Flash, cujo conteúdo será a próxima instrução a ser executada. Mas como saber o retorno para fazer o MOV R29, R10? Que é a próxima instrução após o CALL ?


Aha! Então o ANTES de executar o CALL e mover o 215h para o Program Counter, o Mr.Core irá mover os dois bytes (é, dois) do endereço da próxima instrução (MOV R29, R10) para o STACK, um byte e depois o outro, e só então irá saltar para o endereço 0215h e executar o ADD R10, R17. Vamos imaginar que as instruções e endereços onde estão na memória Flash sejam:

0118h 0119h 011Ah 011Bh 011Ch ... ...

PUSH R10 MOV R10, R29 CALL 0215h MOV R29, R10 POP R10

0215H 0216H

ADD R10, R17 RET

Quando o Core executa a instrução (PUSH R10) em 0118h, o Program Counter é automaticamente incrementado para 0119h. Então vai executar a 0119h (MOV R10, R29), o Program Counter é incrementado para 011Ah. Ao iniciar a decodificação para executar a 011Ah, o Core percebe ser uma instrução de CALL (chamada em desvio) para o endereço 0215h, o Program Counter é incrementado para 011Bh, mas como é uma instrução de CALL, então o Program Counter é salvo no Stack, primeiro o Low Byte (1Bh), o Stack Pointer decrementa um, então o High Byte (01h), Stack Pointer decrementa um novamente. Então o Program Counter é carregado com o valor 0215h, que é para onde o programa deve ir, devido à instrução CALL 0215h. A próxima instrução a ser executada está no endereço 0215h, (ADD R10, R17), é feita a adição, resultado para R10 e o Program Counter é incrementado para 0216h. Irá executar a instrução em 0216h, que é um RET (Return). Essa instrução faz o equivalente a dois POP do Stack. Então o Stack Pointer é incrementado, o byte no Stack apontado pelo SP (01h) vai para o Program Counter High Byte, novamente o SP é incrementado e o próximo Byte do Stack (1Bh) vai para o Program Counter Low Byte, e então agora o Program Counter contém 011Bh, e ao executar a instrução nesse endereço, estará retornando para a próxima instrução da rotina que estava quando chamou a rotina de adição em 0215h. Então aprendemos que CALL nnnn faz o Program Counter (PC) saltar para esse endereço “nnnn”, e quando encontrar uma instrução RET (return) o PC irá saltar de volta para a proxima instrução ao ultimo CALL, e que o Stack é usado para guardar dois bytes referentes à esse endereço de retorno. Após o RET, o Stack Pointer (SP) estará apontando para o mesmo endereço do Stack antes do CALL.

Bem, chega de Stack. É importante conhecer como o Stack funciona, pois é uma ferramenta importante do Core, e para o programador, porém se mal usado causará problemas. Já aprendemos então as seguintes instruções:

PUSH POP MOV ADD CALL RET

que suporta Temperatura Industrial, mais frio e mais calor que o -10PC. A figura que segue é a representação dos pinos do AT90S2313. Observando o “notch” (entalhe) num dos lados do chip (parte de cima na foto da coluna ao lado, contamos os pinos no sentido anti-horário, iniciando pelo pino 1, no topo à esquerda. Nos chips Atmel existe um pequeno triângulo branco para indicar o pino 1, veja na foto ao lado. Ao contar para baixo e dar a volta, obviamente o pino 20 desse chip estará do lado oposto do pino 1, no topo à direita.

Na estrutura AVR existe um outro CALL, que é o RCALL (Relative Call), que economiza um byte na memória Flash e faz um Chamada Relativa para o novo endereço, com relação ao endereço da instrução RCALL. Por exemplo, se a instrução CALL estiver no endereço 011Ah (como ao lado) e a chamada estiver no endereço 014Ah, então no código executável pelo Mr.Core, o salto será de somente 30h bytes de distancia. A instrução não conterá o valor 014Ah, mas 30h. O RCALL pode saltar 129 endereços à frente e 127 para trás. Na verdade, a instrução CALL só é usada em chips que tenham memória Flash maior, e permite chamar uma rotina em qualquer ponto de um ambiente de 16 bits, ou seja, memória Flash de 64kBytes. Normalmente em chips menores se usa só a instrução RCALL. A instrução RET funciona igual para ambas. Mas chega disso. Vamos ao lado prático e físico.

De acordo com o datasheet que pode ser visto no site da Atmel: http://www.atmel.com/dyn/resources/prod_documents/d oc0839.pdf

Nos pinos 4 e 5 deve ser conectado um cristal oscilador, de qualquer frequência até 10MHz. As frequências mais comuns são 1MHz, 2MHz, 4MHz, etc, podendo usar qualquer frequência, mesmo o cristal de baixo custo para TV NTSC 3.579545 MHz, ou de PAL-M 3.575611 MHz.

AVR Laboratório Simulado

No pino 1 (RESET) liga-se um capacitor de 1µF para Terra. Ao alimentar o circuito o período de carga desse capacitor fornece o pulso negativo (/RESET) suficiente para o RESET do chip.

Um microcontrolador AVR possui portas de comunicação com o mundo externo, chamadas de I/O (Input / Output). Cada porta possui 8 pinos ou menos. Cada pino pode ser configurado a ler o mundo externo e passar tal informação à um registrador, ou configurado como saída e fazer valer no pino, um nível de tensão (zero ou um) programado pelo Core.

Os pinos 2, 3, 6 a 9 e 11, são da porta “D” e identificados como PD0, PD1, PD2, PD3, PD4, PD5 e PD6. Nesse chip, essa porta tem só 7 pinos. Todos eles têm função secundária selecionável por programa. Por exemplo, pino PD0 também pode trabalhar como entrada de comunicação serial, Receive Data (RXD).

Para o exercício que segue, usarei um velho amigo AVR, o At90S2313, que é um chip de baixo custo ainda existente no mercado. O substituto direto desse é o AtTiny2313, que possui algumas pequenas diferenças de pinagem e uso, com vantagens de consumo, tamanho e dispositivos adicionais internos.

Para o Laboratório Prático (2ª parte) usaremos:

O At90S2313 é um chip PDIP (plastic dual inline), pinos espaçados em 1/10 de polegada, 20 pinos no total. Funciona desde 3 a 5V e com clock de até 10MHz. No chip da figura vemos a terminação -10PC, que significa 10MHz, P=DIP, e o C=Temperatura Comercial. Existe o -10PI,

36

Já a Porta B tem os 8 pinos disponíveis, de PB0 até PB7, nos pinos de 12 a 19. Com exceção do pino PB2 e PB4, todos os outros também podem exercer atividade secundária.

1 x At90S2313 3 x baterias alcalinas AA e soquete ou uma fonte de +5Vcc (mínimo de 100mA) 2 x LEDs de qualquer cor 2 x resistores de valor entre 330 e 1kΩ 1 x programador de AVR (serial, paralelo, USB) Software AVRStudio4 instalado 1 x Cabo de conexão 1 x Protoboard para montar o circuito Porém para o Laboratório Simulado, objeto dessa primeira parte da matéria, usaremos somente: Software AVRStudio4 instalado


AVRStudio4 pode ser feito download gratuíto diretamente da Atmel: http://www.atmel.com/dyn/products/tools_card.asp? tool_id=2725

ETAPA 1 – AVR STUDIO 4 Para iniciar, rode o AVRStudio4, surgirá uma tela como ao lado. Clique em “NEW PROJECT”.

Surgirá uma nota tela como ao lado. Em Project Type: Clique em “Atmel AVR Assembler” Em Project Name: Escreva “LEDS” (por exemplo) O mesmo nome aparecerá em Initial File: LEDS .asm (mantenha assim) Em baixo clique em “Finish”

O projeto LEDS estará criado. O AVRSTUDIO abrirá as outras telas para prosseguir com o projeto. Note do lado esquerdo a lista de arquivos e diretórios do Projeto. (Arquivos) No centro à direita (Programa) é onde escreverá o programa em Assembly. Em baixo existe a área de Mensagens, com orelhas a selecionar: Build (resultados da compilação), Message (mensagens genéricas), Find In Files and Breakpoints verá mais tarde. Note também os menus em cima; Build and Debug, tu os usará em seguida. Então na área PROGRAMA, escreva exatamente como aparece na próxima tela.

37


Notar: .include “2313def.inc” irá incluir diretrizes especiais sobre o chip At90S2313 para o compilador. Preste atenção ao ponto antes de “include” e aspas em volta do nome do arquivo a incluir. .equ e .def renomeiam a PORTA B (PortB) e os registradores R23, R24 e R25. .CSEG e .ORG 0 definem que a partir desse momento o texto escrito deverá ser considerado Código (Code Segment) e a partir do endereço zero (.ORG 0) Start: é um label normal, usado para identificar a posição física na memória daquela instrução à direita. O mesmo para Loop: Delay200ms: e Delay200ms1: Note que todos os labels possuem dois pontos “:” ao final. Note na instrução do label Start: LDI R16, 0b11111111 Significa LoadImmediate (carregar o registrador R16 com um valor imediato constante na própria instrução, todos bits 1, binário. É assim que se define binário 0bxxxxxxxx, da mesma forma como se escreve 05Ah para hexadecimal. Decimal pode ser escrito 156d ou só 156, como no label Delay200ms:

Então clique no topo, menu Debug, abrirá uma janela, selecione em baixo: “Select Platform and Device” Abrirá a tela ao lado. No Debug Platform (lado esquerdo):

AVR Simulator e então no Device (lado direito):

AT90S2313 Tem que escolher nessa ordem. Clique embaixo Finish

Agora no topo, menu Build, selecione: Build and Run, ou pressione Ctrl+F7, como a tela ao lado. O AVRSTUDIO irá compilar o programa, ativar o simulador e abrir outras telas, mostrando os registradores do lado direito e outras funções do lado esquerdo. Também indicará na parte de baixo (mensagens) se a compilação completou bem sem erros, ou mostrará os erros. Caso ocorra algum erro, tente clicar sobre a tal linha da mensagem do erro, o cursor pulará para a tal linha no área do programa onde o tal erro foi encontrado, onde você poderá corrigi-lo. Tente abrir (alargar) o window do AVRSTUDIO no seu monitor de forma a poder ver todas as áreas.

Os frames internos do AVRStudio são individualmente expansíveis, podem ser alargados, ou diminuidos. Acerte para melhor trabalhar. Se a compilação terminou com sucesso, veja também que agora já aparece uma seta amarela ao lado do label Start:, significa que o simulador já está pronto para iniciar a simulação.

38


Tenha certeza que no menu [VIEW, TOOLBARS], esteja selecionado I/O, isso abrirá um frame do lado direito da tela, a janela I/O VIEW, assim:

Essa é a velocidade do clock simulado, como se

estivesse usando um crystal de 4MHz no protoboard. Para mudar a velocidade do clock do simulador vá em [Debug – Simulator Options (em baixo)]

I/O VIEW (Direita da Tela)

Também note que do lado esquerdo da tela deverá existir uma janela Processor View, como abaixo. Caso contrário, ative essa janela no menu [VIEW, TOOLBARS, PROCESSOR].

Se esse programa fosse gravado de verdade no chip, este deveria se comportar exatamente como a simulação. No Processor View, veja na penúltima linha o Stop Watch, com valor de 0.00us. Observe também o Cycle Counter = 0. Esse é o número de clock cycles o processador usou até um determinado ponto da simulação. O Stop Watch significa o tempo decorrido para até aquele ponto. Esses dois indicadores podem ser zerados clicando o botão direito do mouse com o cursor sobre eles. Reset StopWatch e Reset CycleCounter. Esses indicadores são especialmente importantes para definir tempo ou clock cycles em rotinas de tempo. Coloca-se o cursor da simulação no início da rotina a testar, se zera os contadores e manda-se rodar a rotina.

Chegou a hora de rodar o simulador. Coloque o cursor do mouse no início da Label LOOP: na área de programa, clique o botão esquerdo do mouse.

PROCESSOR VIEW (Esquerda da Tela)

Veja também na janela do Processor View, existe o conteúdo dos registradores R00-R31, o famoso Program Counter, o Stack Pointer, etc. Clicando no PORTB do I/O View, ajuste a largura do frame para poder ver os oito bits do DDRB, PINB e PORTB. DDRB define quais pinos serão entradas ou saídas. PINB é o nível lógico dos pinos como Entrada. PORTB é o nível lógico do bits do registrador de saída, e é esse que você prestará atenção durante a simulação, pois mudarão de cor, indicando mudança de nível lógico. Qualquer bit de qualquer registrador pode ser alterado manualmente pelo clicar do mouse sobre ele. Veja o I/O VIEW ao lado, mudei os três primeiros bits do PORTB, deixando-o 0xE0. Isso pode ser muito útil ao simular chaves, circuitos externos, etc.

Após compilar, se pode ver o arquivo listing do assembly gerado, na área de files à esquerda da tela, desde que esteja selecionada a opção para gerar tal arquivo. Veja em [Project – Assembler Options – Create List File]. Ao lado o ícone do RUN (ou tecla F5), que faz o programa rodar sem parar, como se fosse no chip real. Após clicar RUN, clique em Togle Register Window e veja os registradores R23 e R24 mudando de valor. A velocidade que você os vê não é real, mas a contabilização de tempo no Processor View (Stop Watch e Cycle Counter refletem o que seria real, levando em conta a frequência do cristal. Pode-se rodar o simulador de outras formas, passo a passo, ou pulando sub-rotinas, ou se pode criar pontos especiais de paradas (breakpoints) para análise de registradores, etc. Na segunda parte dessa matéria iremos programar um chip real a funcionar na bancada. ■

Veja acima, o ícone { } “Run to Cursor” ou pressione Ctrl+F10 O simulador irá rodar por todas as instruções em alta velocidade, e irá parar na linha do mouse. Como aquele label é o início de um loop, a cada apertar do Ctrl+F10 ele dará uma volta. Zere o CycleCounter e o StopWatch, e pressione novamente { } “Run to Cursor” ou pressione Ctrl+F10. Verá que o CycleCounter e StopWatch avançaram para 120125 cycles e 30031.25 us, porque está usando a Frequency de 4MHz.

39


FIP - Fonte de Instrumentos PicListBr Parte 2 Por Wagner Lipnharski – Orlando Florida.

conveniente desses modelos é que o fusível acaba ficando antes do interruptor on/off.

Só para não deixar em branco essa matéria nessa edição, vamos explorar a parte de suprimento de energia da FIP (Fonte de Instrumentos Piclistbr).

Essa fonte DEVE possui fusível de proteção. Considerando que ela poderá consumir de 20 a 300 W, tal fusível não será superior a 3.5 ou quatro Ampères x 250vac.

A idéia básica é definir os elementos básicos e imprescindíveis na parte de suprimento de energia dessa fonte. Em primeiro lugar, o cabo de alimentação a ser usado. Defino por ser um cabo de fonte de PC, encontra-se em todo lugar, de baixo custo e suporta plenamente a corrente necessária no primário dessa fonte, que pode chegar a 5 ou 6 Amperes. Esse cabo deve possuir o terceiro pino de terra, e aconselho que a parte fêmea seja em ângulo de 90° a fim de evitar esmagamento do cabo na traseira da FIP contra a parede, etc.

Nessa entrada de AC deve-se incluir varistores de proteção contra descargas elétricas, para tensão 50% acima da tensão da rede elétrica. A chave liga/desliga principal dessa fonte deverá ser capaz de suportar mais de 5 Ampères continuamente, isolação de 250Vac. Deverá ser instalada no painel frontal da FIP e fácil de ligar ou desligar. A fiação desse interruptor deve ser muito bem isolada e deverão interromper a FASE da alimentação, e ser instalado entre o cabo de alimentação e o fusível principal. Todas as conexões dessa área de 117Vac devem possuir botinas de borracha, ou seja, não podem possuir nenhuma parte metálica exposta. Essa Fonte de Instrumentos será basicamente pesada, construída em metal, com diversas divisórias internas e sub-paineis, o que aumentará muito a rigidez de construção. Ela deverá sobreviver uma queda ao chão, sem nenhum dano, nem soltar os circuitos internos e componentes pesados, como transformador, dissipadores, capacitores, placas, etc.

O receptáculo desse cabo deve ser o conector próprio para ele, também encontrado em fontes de PC sucata ou obviamente novo nas lojas. Pode conter filtro de alta frequências ou não. Abaixo um modelo muito simples de plástico com terminais para solda. Esse modelo exige corte específico na caixa, que também pode ser feito em acrílico tapando um furo retangular na caixa de metal.

Existem modelos com alojamento para fusível, o que é recomendado, eliminado soquete de fusível interno ou furação na caixa para tal. O in-

poderia ser com ou sem Center-tap. Se tiver Center-tap, então seria 25+25. Outros podem querer maiores tensões de saída, então a sugestão é partir logo para um transformador que forneça 35 a 40Vac no secundário.

Apesar dessa fonte de instrumentos não gerar calor substancial, podemos já de início determinar a existência de um pequeno ventilador para criar um fluxo de ar no interior e evitar acumulo de calor interno. Aberturas ou furos na base frontal da caixa permitirão a entrada de ar por baixo dos circuitos. Lembrar que essa Fonte de Instrumentos Piclistbr, é um equipamento que contém diversos instrumentos internos, alimentados por uma fonte de alimentação única que promoverá +5, +12 e -12Vdc para tais circuitos. Essa mesma fonte de alimentação também servirá de fonte ajustável de tensão e corrente, e que pode chegar a +30 ou +40V com até 10A, depende basicamente do transformador e circuito regulador.

120Vac – 24VCT 10A – 240W Marlin P. Jones (www.mpja.com) A potência desse transformador deve ser coerente com o que se quer obter na saída. Pensando em obter 40V 3A, isso forneceria 120W para a carga, portanto pense logo num transformador que suporte pelo menos 30% a mais de potência, nesse caso, 160W seria recomendado. Primário 117Vac 1.5A, secundário 40Vac 4A.

117Vac – 24VCT 12A – 290W (www.jameco.com) Deve-se também lembrar que ao dimensionar o transformador, quanto maior melhor. Nesse caso acima, precisando 120W na carga, pode-se pensar logo num transformador que forneça 200W. Trabalhará frio e com melhor, porém com maior custo, tamanho e peso.

O transformador de alimentação poderá ser de núcleo de ferro seção quadrada ou mesmo toroidal, lembrando que o toroidal promove menos perdas e menos ruído eletromagnético. Em alguns casos o toroidal é recomendado, porém costuma ser um pouco mais incômodo para instalar devido ao formato. Como regra para essa fonte, eu recomendaria que se pensasse em transformador que fornecesse no mínimo 25Vac no secundário, e que

40

115-230Vac / 36VCT 1.5A - 54W (www.jameco.com)


Devemos lembrar que a tensão do secundário do transformador é medida em RMS, o pico da senóide é em torno de 1.41 vezes maior. Ao retificar tal senoide, perde-se a queda de tensão nos diodos retificadores, e é bom sempre pensar numa perda de 2V. Portanto, a tensão resultante sobre os capacitores de filtro será a tensão RMS do secundário do transformador, menos 2V, vezes 1.41.

caixa, algo como 12+12Vac 3A, ou em torno de 50W, e que possamos produzir uma fonte +12 / 12 e +5Vcc. Um toroidal sugerido para essa pequena fonte é o AN0512 da AntekInc, abaixo, diâmetro 3.4”, altura 1.6”, peso 900g, preço US$13, pode fornecer 4.1A sob 10.8Vac.

queda de tensão de 1.4 a 1.5V constantemente, haverá dissipação pico na ordem de 15W, provavelmente uma média de 10W. Essa é a maior preocupação em ser uma ponte mais robusta e com maior área de contato mecânico no dissipador ou chassi da FIP. Toda a fiação no secundário do transformador deverá ser reforçada para minimizar perdas. Recomenda-se usar fios curtos, capazes de suportar boa temperatura. Essa é uma região da fonte que haverá aquecimento, e é onde devemos tomar todo cuidado. O calculo do capacitor ou capacitores de filtro deverá ser feito com cuidado. Pequenos capacitores promovem um ruído ripple acentuado, já capacitores muito grandes atenuarão bastante o ruído ripple, porém causam stress de excesso de corrente ao ligar a fonte; para a ponte retificadora, ao transformador, à fiação e até ao fusível de proteção. Sempre existe um meio termo.

110/220Vac – 24VCT 4A – 96W Marlin P Jones (www.mpja.com) Portanto, um transformador de 25Vac no secundário, será (25-2) x 1.41 = 32.4Vdc nos capacitores. Claro que existirá o ripple da fonte, que é a descarga desses capacitores pelo consumo da carga da fonte, durante o período em que a senóide não consegue recarregá-los, o que podemos calcular em ser não maior que 1V. Nesse caso pode-se pensar que a tensão útil média, armazenada nos capacitores seja 31.5Vdc. Abaixo um transformador toroidal de 300W, excelente candidato para uma fonte de muito boa potência e qualidade. Baixa perda de tensão na fiação. Em aberto fornece 31.6Vac, com 6ª fornece 30.2Vac, com 11.3A fornece 29.5Vac. Todas as medições com os dois secundários em paralelo. Note que esse transformador não é CT, ou seja, tem dois secundários isolados, o mesmo para os dois primários de 115Vac.

Em qualquer caso, o retificador ideal é uma ponte retificadora que se pode mparafusar no chassi metálico da FIP. Existem retificadores assim para 5, 8, 10, 15, 20, 30A, encontrado no mercado por preço baixo. Essa ponte à esquerda suporta até em torno de 5A, não recomendo o uso dessas para a FIP, pontes com o dobro da capacidade costumam custam não mais que 20 a 30% a mais.

A recomendação é usar capacitores conhecidos como “computer grade”, por possuírem parafusos nos bornes de fixação, onde se pode usar terminais elétricos nas pontas dos fios. É claro que capacitores com terminais de solda também podem ser usados, porém a construção, fixação e conexão exigirão soldar os fios, o que torna o trabalho mais difícil, até mesmo para manutenção futura. Abaixo um capacitor “Computer Grade”

Essa ponta à direita e as abaixo suportam entre 10 e 15A, porém não recomendadas a retificar correntes em excesso de 10A.

Já as próximas pontes suportam mais de 15A e são recomendadas para a FIP, caso for usar algum transformador que possa fornecer até 10

É recomendado fixar esses capacitores mecanicamente na base da caixa da FIP, usando anéis adequados, como se vê abaixo.

115+115Vac –30+30Vac 10A – 300W AN3230 – www.antekinc.com Diâmetro 4.7”, Altura 2.9”, Peso: 3.2kg Preço online: US$36.00 Outro modelo a considerar é o AN2232, 200W, mesmas características, 115+115, 32+32Vac, 3.1A em paralelo, preço US$29.00 Também vou considerar a possibilidade de existir um segundo transformador de baixa potencia para alimentar os instrumentos internos dessa

ou 12A. Numa retificação de onda completa o maior problema é a dissipação térmica. Considerando que uma ponte dessas promove uma

41

Ambos os fios saindo do negativo e positivo da ponte retificadora deverão obrigatoriamente ir primeiro aos capacitores de filtro e dai prosse-


guir para o terra (negativo) e para o circuito pré-regulador ou regulador de tensão. Os capacitores deverão estar entre a ponte retificadora e o circuito regulador de tensão. Deve-se também instalar um resistor conhecido como “bleeding” nos terminais dos capacitores, de forma a promover um pequeno consumo no transformador e também para que tais capacitores se descarreguem ao desligar a fonte. O motivo principal aqui é “segurança”. Abaixo podemos ver uma construção adequada de um sistema transformador + retificador + capacitor (com anel fixador) + resistor bleeding. Nessa construção vemos um fusível de segurança instalado na saída do capacitor.

guém e fará tal fonte trabalhar sem stress e sem sobrecarga por muitos anos. Não pretendo especificar fabricante nem modelo de componentes para essa etapa da fonte, porém o assunto pode ser discutido na lista de discussões Piclistbr, considerando fornecedores nacionais, ou mesmo locais de cada cidade. As diferentes potências que cada um poderá montar para essa etapa da fonte, torna difícil uma padronização, mas podemos considerar que para atender as necessidades dos circuitos e placas adicionais da FIP, e fornecer tensão adequada (econômica) para uma bancada de testes de desenvolvimento, essa etapa deveria poder suprir um mínimo de 15Vdc e 4A, ou seja, 60Watts. O circuito sugerido para essa etapa contempla 2 possibilidades no primário do transformador e 2 no secundário. As alternativas para o primário é que o transformador tenha só um enrolamento, adequado à voltagem da rede elétrica, ou que possua 115+115Vac, permitindo utilizar essa fonte mesmo em locais com rede elétrica de 220Vac.

Apesar de dois capacitores de 10 mil micro Farads custar mais do que um único de 20 mil micro Farads, recomendo a instalação de dois capacitores em paralelo. Existem diversos motivos para isso. Primeiro que com isso se reduz a ESR (resistência série interna) média dos capacitores, segundo que se cria redundância em caso de pane de um capacitor, terceiro que normalmente capacitores menores possuem perfil mais baixo e permitem serem alojados numa área menor e com maior facilidade. Devemos lembrar que essa fonte de alimentação da FIP pode e deve ser montada com componentes da melhor qualidade possível. Esse equipamento irá ter muita utilidade na bancada, provavelmente estará ligado o tempo todo, deverá suportar todo tipo de abuso e deverá sobreviver em perfeito estado de funcionamento por muitos anos. Portanto, o investimento vale o custo. Exageros em fontes de alimentação nunca são demais, dimensionar essa etapa da fonte com 50% adicionai de capacidade não faz mal a nin-

As alternativas para o secundário é que o transformador tenha Center-Tap, o que é recomendado, ainda melhor se possuir dois enrolamentos separados, como é o caso dos transformadores toroidais mostrados na página anterior. Assim, pode-se montar uma fonte com bi-polaridade de saída, o que pode ser útil em determinadas, porém raras aplicações. É mais difícil imaginar uma aplicação que exija +18 e -18V com consumo de 5 Amperes. Tecnicamente, os circuitos e placas adicionais da FIP podem requerer tensões tipo +12 e 12Vdc, e como já foi dito antes, é possível possuir um segundo transformador menor só para alimentar tais circuitos e também fornecer +12, -12, +5 e +3.3Vdc fixos no painel da FIP, para baixo consumo e possível alimentação até 2A. Inicialmente um circuito básico de entrada pode ser visto abaixo. A entrada consta de 3 fios, Terra, Fase e Neutro. O interruptor principal de energia é ligado diretamente ao fio da Fase. Após o interruptor temos 3 varistores compatíveis com 50% a mais da tensão da rede, interligados em triângulo e conectando os três fios da entrada. Então temos um filtro de linha, necessário para isolar ruídos elétricos provenientes da linha e reduzir a sua interferência na fonte.

42

Logo após o filtro temos dois capacitores de desacoplamento de alta freqüência para terra. Então vemos o fusível no fio da Fase e ligado ao transformador. O fio do Neutro que passa pelo filtro liga direto ao transformador. Vemos no exemplo o transformador com dois primários ligados em paralelo, ou série, dependendo da tensão da rede. O secundário do transformador do exemplo possui dois enrolamentos separados, que podem ser ligados em série e o centro ligado ao terra, como um CT (Center tap) normal. Uma ponte de diodos retifica em onda completa a senóide de saída dos enrolamentos do secundário. Como já dito anteriormente, essa ponte de diodos deverá suportar pelo menos o dobro da corrente total nominal da fonte. Após a retificação, dois capacitores; um maior para o lado positivo, outro menor para o lado negativo. É bem provável que, o uso da tensão negativa da fonte tenha uso limitado, portanto não precisaríamos um grande capacitor de filtro nessa tensão. Em paralelo com tais capacitores, podemos ver dois capacitores pequenos, de 100nF, cuja finalidade é a de eliminar qualquer ruído de alta frequência. Ainda em paralelo temos dois resistores bleeders para descarregar os capacitores quando a fontes for desligada, e também promover uma pequena corrente de consumo durante a operação normal. Aos pinos de saída; +VCC, GND e –VCC, serão ligados outros circuitos, pré-reguladores, interruptores secundários, LEDs indicadores, etc. Ainda nesses pinos serão ligados divisores resistivos a fornecerem tensões mais baixas aos circuitos ADC do microcontrolador mestre da FIP, a fim de determinar se a tensão DC primária da fonte está dentro dos limites considerados normais, como uma análise constante da saúde da FIP. Na próxima edição poderemos ter tais circuitos testados e aprovados, e também parte do circuito do pré-regulador, regulador principal, regulador de baixa potência de +5V, +12 e -12 no painel da FIP. Wagner Lipnharski – Orlando Florida.


Osciloscópio LCD PicListBr Parte 1 Como sempre idéias de novos projetos surgem no nosso grupo, um osciloscópio LCD não fugiria das garras dos voluntários. Foi assim que após inúmeros e-mails de sugestões e motivações em geral, iniciamos a discutir alguns circuitos e funções de tal osciloscópio, incluindo a possibilidade de produção modular, onde cada etapa poderia ser discutida e desenvolvida por diferentes participantes, e que, diferentes módulos possam ser interligados. Teríamos então os seguintes módulos: •

Entrada analógica, que seria basicamente a entrada do osciloscópio,

Conversão de sinal, que seria o ADC (analog-digital converter),

Oito ou mais entradas digitais para servir de analisador lógico,

Controle e Display portátil,

Transferência para um PC,

Software de PC para controle e display.

Desta maneira fragmentada, tenderíamos a con-

cluir módulo após módulo, ou, diferentes módulos poderiam ser produzidos independentemente, ao mesmo tempo ou não, desde que as diretrizes e definições técnicas básicas sejam definidas de antemão.

nejar, desenhar e escrever os programas para Windows; controle e display.

Durante diversas semanas discutimos no grupo qual o melhor circuito de entrada, atenuadores, ganhos, problemas, possibilidades de sucesso, encrenca, etc. Ao final decidimos por um possível circuito que estará sendo testado na prática.

Novamente reforço a idéia de que temos que tomar cuidado em diferenciar o que é um Projeto e o que é um Mutirão. Um projeto é algo que é desenvolvido por alguns, e que, se concluído com sucesso pode resultar num Mutirão de Compras, quando se consegue melhores preços por volume, junto aos fornecedores.

No momento da produção desta matéria, o colega Alain Mouette, um dos ferrenhos voluntários para o desenvolvimento desse módulo, está prestes a testar a etapa de entrada analógica na bancada; atenuadores e ganhos nos amplificadores operacionais, desempenho ao longo da banda de DC a 1MHz AC, determinada a ser o limite para esse circuito, etc. As outras etapas também estão sendo discutidas e consideradas: tipo de LCD e painel, bem como programa de transferência para PC, usando USB e/ou Serial, etc. Temos que notar que, o volume de dados a transferir por leitura é baixo, não maior que um máximo de 4kBytes. Também já existem voluntários no grupo a pla-

43

Creio que na Terceira Edição dessa revista teremos maiores novidades a respeito.

Com certa frequência no nosso grupo, tem ocorrido idéias de novos produtos e projetos, e quase sempre são ditos como “mutirões”, o que não é verdade. Teriam essa classificação se a grande maioria do grupo participasse efetivamente no desenvolvimento ou produção. A produção de circuito impresso ou compra de materiais em maior volume poderia sim, ser considerada “Mutirão de Compras”. ■


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.