quarta-feira, 4 de dezembro de 2013

Oscilador Senoidal Valvulado

GERADOR DE ÁUDIO VALVULADO COM 6BQ7

Continuando com minhas experiências com osciladores de áudio, chegou a vez de montar um gerador de áudio valvulado. Achei um esquema na internet usando a 12AT7 e por ponte de Wien. Resolvi adaptar o esquema para usar a 6BQ7 que tem um ganho (mu) um pouco menor, mas como não necessitamos de ter um ganho alto e o oscilador fica limitado a ter um ganho de 3, ela deveria servir. Ela é um duplo triodo muito usada nos amplificadores da Meteoro, com base noval e filamentos de 6,3V. Além disso vou usar uma tensão de alimentação menor do que a do esquema original.

O esquema original é esse:
Nesse projeto a frequência é ajustável e variável de acordo com a posição do potenciômetro duplo de 1 Mohm. Como eu não tinha um desses, resolvi fazer o oscilador com valor fixo. A fórmula da frequência é:
Freq = 1 / (2 x pi x R x C)  desde que as duas resistências e os dois capacitores da malha de realimentação positiva sejam iguais.Essa malha (ou loop) de realimentação vai ter um ganho de 1/3 (atenuação por 3) na frequência escolhida.

Minha adaptação, usando as peças que eu tinha:
Esquema do meu circuito

Já na malha de realimentação negativa (a que define o ganho para compensar a atenuação) temos que ter um ganho de 3 para compensar a atenuação de 1/3 na malha positiva de forma a ter um ganho geral de 1. Mas para o oscilador começar a funcionar, inicialmente precisamos ter um ganho geral maior do que 1, e portanto um ganho maior do que 3 na malha de realimentação negativa. Usando a velha dica da lâmpada incandescente que inicialmente tem uma baixa resistência quando desenergizada e que aumenta a medida que ela esquenta, achei uma lâmpada de 130 V e uns 3 W de potência. Ela inicialmente tem o filamento frio com 369 ohms, então a resistência do potenciômetro de ajuste tem que ter mais do que duas vezes esse valor (na verdade bem mais pois a resistência da lâmpada vai aumentar bastante). No esquema original usaram um de 5k, o que adotei como valor a ser usado.

A lâmpada


A montagem foi feita numa plaquinha de fibra de vidro com ilhóses e terminais que eu faço em casa e permite uma rápida soldagem e muitas e muitas modificações (virtualmente indestrutível). Tudo fixado a um chassis de chapa de alumínio, com furos e locais pra fixação de soquetes, bornes, barras sindal, e conectores. O transformador de força também foi feito por mim pra uma versão de um pequeno amplificador valvulado.


Para minha surpresa, o circuito funcionou logo de primeira (ajustando o potenciômetro de 5k) e obtive essa linda senoide de 480 Hz (conforme calculado) de 1 Vrms e uma pequena distorção. Fazendo a medição do valor do potenciômetro, ele ficou em 1220 ohms, de forma que a lâmpada deve ficar com um valor de metade disso (610 ohms energizada).


O valor calculado da frequência segue abaixo:
Freq = 1 / (2 x 3,14159265 x 10000 x 33 x 10^-9) = 482 Hz
O osciloscópio estava com varredura vertical em 1 V por quadrícula e 1 ms por quadrícula horizontal.

quinta-feira, 14 de novembro de 2013

Medidor de corrente de catodo em valvulados

BIASMETER - medidor de polarização para válvulas

Quem monta amplificadores valvulados sabe que que um ajuste importante a ser feito nas válvulas da etapa de saída é o ajuste de bias (lê-se "baiaes" ou polarização). Esse ajuste consiste em estabelecer uma tensão negativa na(s)  grade(s) da válvula(s) para que uma certa corrente de catodo desejada seja fixada. Como essa corrente deve ser estabelecida sem que haja sinal na grade, ou seja a válvula está em repouso (mas ligada), dizemos que a corrente é quiescente. Normalmente esse ajuste ocorre mais em amplificadores com etapa de saída complementar (push-pull) onde uma ou duas válvulas conduzem um pouco mais do que meio ciclo do sinal e outra válvula (ou par) conduz a outra metade do sinal e mais um pouco (operando em classe AB). Amplificadores que usam saída em Single Ended, geralmente operam em classe A e usam uma polarização automática com um resistor de catodo, portanto não necessitam de ajuste, mesmo com a troca da válvula. Já nos push-pull, pode haver também essa configuração de polarização automática (auto bias ou cathode bias) mas nesse caso as duas válvulas complementares precisam estar casadas (matched pair) para que as correntes de catodo não sejam muito díspares, de forma que não ocorra um desbalanceamento na correntes que circulam pelos enrolamentos do transformador de saída.  Com o uso de polarização fixa (isso é com uma tensão negativa aplicada à grade de cada válvula), se pode ajustar a corrente de catodo de cada válvula de forma a obter o melhor balanceamento das correntes e fixar uma corrente quiescente de catodo para cada válvula que não a force muito (dissipação de potência), tenha flexibilidade para achar o ponto de operação correto e adequado para menor distorção e melhor rendimento.
No caso de etapa de saída com triodos, a corrente de catodo vai ser igual à corrente de placa (anodo). No caso de válvulas pentodo ou tetrodo, a corrente de catodo vai ser a soma da corrente de placa e da corrente de tela (screen ou grade 2). E essas correntes podem ser ajustadas através de trimpots que ajustam a tensão negativa aplicada às grades de controle (grade 1) das válvulas.
O melhor jeito de se medir o ajuste de polarização, é medindo-se a corrente de catodo. É um método seguro, pois não há altas tensões no catodo (que geralmente está aterrado nessa configuração). Embora pra se fazer isso com um miliamperímetro envolveria a desconexão temporária do pino do catodo e inserção do miliamperímetro no caminho para o terra, fica meio inviável e trabalhoso realizar esse procedimento a cada ajuste.  Podemos medir essa corrente indiretamente, através de um resistor de baixo valor (1 ou 10 ohms) conectado entre o catodo e o terra. Dessa forma, medindo-se a tensão contínua sobre o resistor, podemos determinar a corrente que passa por ele, pela aplicação da lei de Ohm.  A tensão medida, dividida pelo valor do resistor, nos dará o valor da corrente de catodo (se for o resistor de 1 ohm, a tensão medida em mV nos dará imediatamente o valor em mA, se o resistor for de 10 ohms, o valor em mA será o valor em mV dividido por 10).  Eu acho aconselhável a quem constrói um valvulado com ajuste de polarização fixa, sempre colocar esse resistor de catodo de baixo valor, pois facilita a medição e ajuste.
No caso de amplificadores sem esse resistor, resta usar um artifício e usar um soquete de válvula especial, onde existe um resistor interno de 1 ou 10 ohms, que inserido no lugar da válvula e esta inserida nesse soquete, permite que se faça a medição com um multímetro comum (medindo-se a tensão sobre o resistor).
Ocorre que as coisas não são tão simples assim. Na etapa com elementos complementares, geralmente é difícil se obter o perfeito balanceamento e equilíbrio nas correntes, pois o ajuste feito num lado às vezes mexe com o ajuste do outro lado, de forma que o procedimento tem que ser repetido e rechecado algumas vezes. O ideal seria fazer o ajuste das correntes de todas as válvulas simultaneamente. Dessa forma seriam necessários 2 ou 4 medidores conectados ao mesmo tempo.
Amplificadores High End, de alto preço, já tem esses medidores incorporados nos gabinetes. Mas caso não tenha (a maioria dos valvulados para guitarra não tem), seria legal ter um instrumento com vários medidores.

Como basicamente seriam necessários 4 milivoltímetros, uma ideia seria projetar um milivoltímetro com 4 canais simultâneos.  Os microcontroladores de hoje possuem vários canais para conversão analógico-digital e podem perfeitamente realizar essa tarefa. bastaria ler os valores de tensão sobre os resistores de catodo e mostrar num display (de leds ou de cristal líquido).  Um bom microcontrolador e barato e fácil de encontrar é o PIC 16F819.  Assim fiz o projeto abaixo:

O código do firmware:

:10000000B201EF280408A700061086108610831698
:100010000610861086100F30860583122708B21846
:100020002E283A30A100FC30A0203330A600422018
:100030001030A1006830A020422064309F20223080
:10004000A600422028302D200C302D2001302D20FC
:1000500006302D20B21427082E283214A600321C98
:100060003C288610033C031C412841200730A10096
:10007000D030A020031408003214FE3C0319EA28F3
:100080008614321C321006140F3086052608F0390B
:1000900086040610A60E3218422832309F20031420
:1000A0000800B31329080319B3170530A800273037
:1000B000A300103067200330A300E8306720A301BD
:1000C00064306720A3010A30672024086E28A2004C
:1000D0002508A1002408A000B3202008A000A80340
:1000E0000319B313290803197828280203180800F4
:1000F0002008031DB313B31B0800303EE528A00001
:10010000A00DA00D200D383941389F000030A1000E
:100110003230A0201F151F198B281E08A10083163E
:100120001E08EA28A301A200FF30A207031CA307B0
:10013000031CEA280330A100E330A0209428A10189
:10014000F43EA000A109FE30031CA928A007031853
:10015000A628A0076400A10FA62800002018B02838
:100160002018B2280800A501A4011030A600210D16
:10017000A40DA50D2208A4022308031C230FA50229
:100180000318C9282208A40723080318230FA5076A
:100190000310A00DA10DA60BB7282008EA281030E7
:1001A000A800A101A001A70CA60C031CDD282208B1
:1001B000A00723080318230FA107A10CA00CA50C6E
:1001C000A40CA80BD3282408EA28840031088A004C
:1001D0003008820083130313831264000800403048
:1001E0009F008316C0309F00FF3085008601831278
:1001F00086018501831674308F008312FE30032040
:1002000001300320413003206A3003207530032081
:100210007330032074300320653003202030032026
:100220006430032065300320203003204230032057
:100230006930032061300320733003202030032015
:1002400020300320FE300320C03003206430032020
:100250006530032020300320563003206130032016
:100260006C30032076300320753003206C3003207F
:1002700061300320643003206F300320733003208B
:100280002030032020300320203003200730A3003B
:10029000D03093206430C000C101FE300320013013
:1002A00003204530032073300320633003206F3078
:1002B00003206C300320683003206130032020309D
:1002C000032072300320653003207330032069302F
:1002D000032073300320743003206F30032072300A
:1002E0000320FE300320C03003206430032065303B
:1002F000032020300320633003206130032074305A
:1003000003206F300320643003206F30032020303F
:100310000320203003202030032020300320203011
:10032000032020300320203003200730A300D030EA
:100330009320FE300320013003205330032065302A
:1003400003206C30032065300320633003206930C4
:1003500003206F3003206E300320653003202030EF
:1003600003206F30032070300320E730032061301A
:1003700003206F30032020300320FE300320C030E4
:10038000032028300320413003202930032031305E
:1003900003206F300320683003206D3003202030AD
:1003A000032028300320423003202930032031303D
:1003B0000320303003206F300320683003206D307D
:1003C0000320C83092206400851BEE290330A3006F
:1003D000E83093200A30C000C101FA296400051BEF
:1003E000F9290330A300E83093206430C000C10134
:1003F000FA2999290A30922001307F20B80021087B
:10040000B9000A30922002307F20BA002108BB00D8
:100410000A30922003307F20BC002108BD000A3042
:10042000922004307F20BE002108BF000A309220B5
:100430003808A6003908A7003130A200A301CF2058
:10044000CC002508CD004C08A0004D08A1004008B4
:10045000A2004108A300B320C2002108C3003A084B
:10046000A6003B08A7003130A200A301CF20CC009A
:100470002508CD004C08A0004D08A1004008A200AE
:100480004108A300B320C4002108C5003C08A60011
:100490003D08A7003130A200A301CF20CC002508E1
:1004A000CD004C08A0004D08A1004008A200410862
:1004B000A300B320C6002108C7003E08A6003F08DD
:1004C000A7003130A200A301CF20CC002508CD0029
:1004D0004C08A0004D08A1004008A2004108A3005C
:1004E000B320C8002108C900FE30032001300320DA
:1004F000493003206B300320313003203D3003208E
:10050000A9014208A4004308A5000230B000B101CF
:10051000512020300320493003206B30032032303B
:1005200003203D300320A9014408A4004508A5008C
:100530000230B000B10151202030032020300320D0
:100540002030032020300320FE300320C030032061
:10055000493003206B300320333003203D3003202B
:10056000A9014608A4004708A5000230B000B10167
:10057000512020300320493003206B3003203430D9
:1005800003203D300320A9014808A4004908A50024
:100590000230B000B1015120203003202030032070
:1005A0002030032020300320C83092206400851BB7
:0E05B000DC2AC8309220FE28FA296300DD2ADA
:02400E00303F41
:00000001FF


Esse medidor permite selecionar qual o valor do resistor usado e depois ele mostra os 4 valores de tensão ao mesmo tempo, de forma a facilitar o ajuste equânime de todas as válvulas.








quinta-feira, 24 de outubro de 2013

Decodificadores para displays de 7 segmentos

DECODIFICADOR BCD/Hexa - 7 SEGMENTOS

Em muitos circuitos eletrônicos precisamos de uma interface humana pra rapidamente entendermos os dados que resultam de uma medição, de um ajuste ou comunicação. Um dos meios mais baratos e difundidos é a utilização de displays de leds com 7 segmentos. Com esses displays podemos facilmente apresentar todos os dígitos decimais (0 a 9) e algumas letras do alfabeto. Apesar de existirem displays mais completos, com mais segmentos ou mesmo de matriz de pontos, o de 7 segmentos ainda é o mais usado e de mais fácil utilização. Para isso, geralmente precisamos de um circuito auxiliar que faça a tradução dos dados digitais para que os displays acendam os segmentos corretos e possam assim mostrar o dígito correto.
Esses circuitos são chamados de decodificadores BCD (binary coded decimal - decimal codificado em binário) para 7 segmentos. Para facilitar, esses circuitos são disponíveis em forma de circuitos integrados, sendo exemplos o CD4511 (CMOS) e os da série TTL 7446 7447  7448 (incluindo as variantes LS).
O problema desses cis é que eles só decodificam de 0 a 9 e às vezes queremos decodificar dígitos hexadecimais (acrescentando as letras A b C d E F). Antigamente existia um integrado de código DM9368 que era TTL e que fazia essa decodificação, mas hoje ele se tornou raro (difícil de encontrá-lo) e portanto deve ser caro pra comprar. Eu mesmo tenho umas 3 peças, mas vão virar peças de museu.






Aqui a tabela verdade do 9368, mostrando os dígitos headecimais:

Apesar de que hoje, quase não se usa mais circuitos integrados TTL ou CMOS das séries 74 e 4000/4500, pois praticamente quase tudo é implementado com microcontroladores, FPGA, PAL, etc, de vez em quando ainda precisamos de um decodificador desses.
Pra implementar um decodificador de BCD 7 segmentos, um circuito combinacional um pouco complexo é necessário. São várias portas lógicas interligadas e otimizadas com mapas de Karnaugh (cheguei a fazer vários exercícios de implementação desses decodificadores na escola, inclusive montando de verdade só com portas lógicas). Pra terem idéia, o diagrama de portas do 4511:

O 4511 além de tudo tem latches para manter os dados, mas ainda assim só consegue mostrar de 0 a 9.
Se fosse implementar um decodificador hexadecimal, o circuito seria assim (sem otimização por mapas de Karnaugh):

Esse circuito usa muitas portas com várias entradas, além disso eu coloquei um recurso de poder usar tanto displays de catodo comum como de anodo comum, com as portas XOR (ou exclusivo) nas saídas, de forma a poder selecionar com uma entrada se a lógica seria positiva (catodo comum) ou negativa (anodo comum).
Aqui outro esquema otimizado com os mapas de Karnaugh:

Como não vale a pena usar PAL ou FPGA pra implementar isso, resta a opção de usar microcontroladores para realizar essa "glue logic".  Microcontroladores simples com poucos pinos são muito utilizados para essas funções.
Infelizmente não achei nenhum PIC com a mesma pinagem de alimentação dos decoders comerciais, mas optei por um PIC de 14 pinos, o 16F630 (ou 16F676), que se não serve como substituto direto pino a pino para os decoders, pode simplificar bastante a falta de decoders hexadecimais:

Basta gravar o firmware abaixo, que o PIC se comporta como um decodificador hexadecimal para 7 segmentos, com a vantagem de que as saídas dele podem fornecer até 20mA de corrente para os segmentos de leds. Além disso implementei o recurso de modo de display (catodo comum ou anodo comum) que nenhum decoder comercial tem.

:100000000C288001840AFF3E031D01280728831362
:1000100003138312640008000730990083161F3011
:1000200085008701203084004030831201200F308A
:10003000B9000F300505B800640038083902031D07
:10004000222819283808B900051ABA14051EBA1052
:100050006400BA1C2D282F282E287028192838084B
:100060000F3C031C4D28362087004D2800308A00A5
:1000700038083D3E03188A0A82001F3403342D34A9
:100080002734333436343E3403343F3437343B344E
:100090003E341C342F343C34383438080F3C031CB5
:1000A0006F285820013903198512031D85166F2802
:1000B00000308A0038085F3E03188A0A8200013443
:1000C000003401340134003401340134013401348A
:1000D000013401340034013400340134013419286E
:1000E00038080F3C031C8E28772087008E280030AC
:1000F0008A0038087E3E03188A0A820020343C3485
:10010000123418340C34093401343C3400340834CB
:1001100004340134233410340334073438080F3CDA
:10012000031CB0289920013903198512031D851677
:10013000B02800308A003808A03E03188A0A8200DE
:10014000003401340034003401340034003400340D
:1001500000340034003401340034013400340034FD
:0601600019286300B1281C
:02400E00C43FAD
:00000001FF

A pinagem fica assim:

E a tabela verdade:
Mudando a entrada modo para nível baixo (0), o decodificador funciona com as saídas para displays de anodo comum, e a lógica invertida.

A seguir o firmware versão 16F676, que tem a mesma pinagem do 16F630, só que tem alguns recursos analógicos a mais (conversores A-D).

:100000000C288001840AFF3E031D01280728831362
:1000100003138312640008000730990083161F3011
:100020008500870191012030840040308312012037
:100030000F30B9000F300505B800640038083902E8
:10004000031D23281A283808B900051ABA14051EFA
:10005000BA106400BA1C2E2830282F2871281A28BC
:1000600038080F3C031C4E28372087004E280030EC
:100070008A0038083E3E03188A0A82001F3403347F
:100080002D342734333436343E3403343F3437345C
:100090003B343E341C342F343C34383438080F3C65
:1000A000031C70285920013903198512031D851678
:1000B000702800308A003808603E03188A0A8200DF
:1000C000013400340134013400340134013401348A
:1000D000013401340134003401340034013401347A
:1000E0001A2838080F3C031C8F28782087008F2897
:1000F00000308A0038087F3E03188A0A82002034C4
:100100003C34123418340C34093401343C34003497
:1001100008340434013423341034033407343808E9
:100120000F3C031CB1289A20013903198512031DC5
:100130008516B12800308A003808A13E03188A0AC3
:1001400082000034013400340034013400340034BF
:1001500000340034003400340134003401340034FD
:0801600000341A286300B228E4
:02400E00C43FAD
:00000001FF

quarta-feira, 16 de outubro de 2013

instruções dos PIC 16F

TABELA COM INSTRUÇÕES DOS MICROCONTROLADORES PIC


Download: http://www.filedropper.com/picinstr


Fiz essa planilha faz tempo e resolvi compartilhar no Blog. Ela contem as instruções em linguagem de máquina dos PICs das séries 16F (palavras de 14 bits) e 18F (palavras de 16 bits), com o mnemônico, código binário, operandos e um resumo da operação realizada. Na planilha das instruções 18F dá pra simular e verificar o funcionamento de algumas instruções (lógicas, aritméticas, e de deslocamento), com os resultados nos registradores e bits de flags do status.

Acredito que essa tabela possa ser útil pra aprendizado de programação de PIC, principalmente pra quem gosta de programar em assembly.

Caminhando um pouco para a direita da planilha, podemos ver a tabela de simulação das instruções, onde a entrada de dados nos operandos (registradores e bits de status) deve ser feita nas células com caracteres em vermelho.

Observado que esse recurso só está implementado na planilha de instruções dos 18F, mas algumas instruções funcionam da mesma forma nos 16F.  Como o conjunto de instruções dos PIC é reduzido (RISC) não é muito difícil depois de um tempo decorar e aprender rapidamente o que faz cada instrução.

segunda-feira, 14 de outubro de 2013

Etiquetas para CIs

Etiquetas com pinagem de CIs


Quando vamos fazer um circuito em protoboard usando circuitos integrados sempre precisamos ter a pinagem e funções dos pinos à mão para fazer as conexões corretamente. Isso é especialmente incomodo quando temos vários cis e temos que ficar procurando a pinagem nas datasheets e databooks. Isso torna a montagem demorada e suscetível a erros, basta uma distração e podemos queimar um ci por bobeira.
Como tinha uma caixinha com vários cis TTL (tá certo, ninguém usa mais isso, mas a idéia serve pra qualquer ci), resolvi colar umas etiquetas com as pinagens dos cis em cima deles pra facilitar a identificação dos pinos.  Inicialmente eu apenas colava um pedacinho de etiqueta adesiva e desenhava ou escrevia as funções dos pinos. Mas o papel é pequeno demais e precisa escrever com lápis com ponta fina ou caneta bem fina, senão fica tudo ilegível.
Com tempo pude desenhar no Coreldraw e depois imprimir os desenhos e pinagens dos cis e assim ficar um pouco mais legível (o problema é o tamanho das letrinhas, mas com lente de aumenta ainda vai...).
Vejam as etapas:

Primeiro desenhar e escrever no Corel na escala correta (real), aqui uma amostra dos desenhos:

A seguir fazer a impressão (melhor em papel adesivo) e recortar (dá trabalho) os pequenos "cis" de papel:

A seguir colar os papelzinhos sobre os cis de verdade:


Usando o ci etiquetado na protoboard do meu laboratório:

A idéia serve pra todos os cis com tamanho suficiente pra ter uma etiqueta colada e pode ajudar desenvolvedores e estudantes em laboratório a montar os circuitos com menor chance de erro e maior facilidade.









sábado, 14 de setembro de 2013

Hi End Show 2013

HI END SHOW 2013


Como costumo fazer nos últimos anos, dei uma passada pra ver e ouvir bons equipamentos de áudio e vídeo no HI END SHOW da revista Clube do Áudio e Vídeo, que iniciou no último dia 12 e termina hoje dia 14 de setembro (mais cedo do que nos anos anteriores). Repetindo a fórmula do ano passado, a mostra se deu no hotel Maksoud, que embora luxuoso, sofre com corredores apertados e escuros, além disso algumas salas (quartos) onde eram apresentados os equipamentos eram pequenos.
Sobre os expositores, senti a falta de equipamentos da KEF, B&W, Beyerdynamics, Sennheiser e da Audiopax (em decorrência do falecimento do Eduardo Lima no ano passado, nunca mais teremos a degustação dos Maggiore e da longa palestra dele). Em compensação, uma grata surpresa comparada aos anos passados: muitas apresentações com amplificadores valvulados, em especial dos McIntosh (MC2301), Manley (Stingray), Avance (A50), Pathos, e  outros que não estavam tocando, como Triode, Audio Research e um ampli que usava umas válvulas 6C33 (triodos, com chifrinho na parte de cima).  Como o ambiente na maioria das salas era meio escuro, as fotos de celular não ficam boas, mas tirei algumas.




Como novidades pude conhecer as TVs de ultra definição da Samsung, e em especial um equipamento (Universal Devialet Air Streamer) da marca francesa Devialet (não deu foto, muito escuro), num elegante gabinete bem slim (podia ficar na horizontal ou na vertical como um quadro),  que integrava entradas USB, ethernet, analógicas (inclusive phono, AES EBU, e saída de potência de 110W (x2) a 500W (x2) que eu não entendi onde caberia uma fonte de alimentação neles.
De caixas, muitas Sonus Faber espalhadas, Avance, Monitor Audio 

Ao contrário do ano passado, os dez reais da entrada foram bem gastos. De brinde, como sempre, uma revista CAV do ano passado, com um CD de música clássica.  E quem sabe, com sorte ganhar no sorteio do representante da McIntosh, o livro dos amplificadores McIntosh (que custa R$ 500).

terça-feira, 10 de setembro de 2013

Gerador de áudio senoidal com AOs

GERADOR DE SINAIS SENOIDAIS


A forma de onda senoidal pode ser encontrada na tomada elétrica das nossas casas, numa frequência de 60Hz e tensão váriavel de 115V a 240V em geral. Ao contrário de ondas quadradas que podem ser facilmente geradas com circuitos digitais e apesar de ser uma forma de onda simples e conter apenas uma componente harmônica (a fundamental) a onda senoidal não é fácil de se obter com  circuitos eletrônicos. Uma onda senoidal é analógica e é muito útil pra se realizar testes e medições em áudio. Então se faz necessário ter um gerador de áudio senoidal e veremos duas formas interessantes de se obter uma onda senoidal com baixa distorção harmônica.  Um dos circuitos é antigo e analógico e o outro circuito é digital e pode ser obtido a partir de software inserido em um microcontrolador.

Na década de 1930, dois engenheiros decidiram constituir uma empresa para fabricar instrumentos eletrônicos e tiveram como encomenda dos estúdios Disney, a fabricação de geradores de áudio. A HP começou assim, fabricando geradores de áudio. E os dois fundadores (Will Hewlett e David Packard) criaram um oscilador que era baseado em uma ponte de Wien, onde a malha de realimentação positiva era formada por capacitores e resistores, que criava a defasagem necessária para um circuito amplificador começar a oscilar. Como essa malha atenuava o sinal para 1/3, a malha de realimentação negativa precisava compensar essa atenuação e dar um ganho de 3. Ocorre que para dar início a oscilação, inicialmente o ganho total precisava ser um pouco maior do que 1, assim a malha de realimentação negativa precisa ter um ganho inicial maior do que 3 e depois quando estiver estabilizado, ser de 3. Para isso eles bolaram um circuito simples e funcional. Aproveitaram que uma lâmpada incandescente possui uma resistência baixa quando fria e uma resistência crescente com o aumento da temperatura do filamento. Obviamente naquela época os amplificadores eram construídos com válvulas e não com transistores ou circuitos integrados. Mas pode-se montar um oscilador com ponte de Wien e um amplificador operacional com o mesmo princípio de operação e sem precisar de altas tensões, podendo ser alimentado por uma pilha de 9V.

O circuito do oscilador usa um duplo AO tipo TL072, onde um AO é usado como oscilador e outro como buffer de corrente e isolador. A frequência de operação é calculada pela fórmula:
F = 1 / (2 x PI x R x C), onde R é formado pelo potênciometro duplo de 47k logarítmico onde  cada resistor varável está em série com um resistor fixo de 100 ohms para limitar a frequência superior e os capacitores são iguais de 100nF. É interessante que o potênciometro tenha as duas resistências variáveis com valor o mais iguais possíveis, assim como os dois capacitores de 100nF.
No lado da malha de realimentação negativa, usar uma lâmpada tipo grão de arroz, de 12V 50mA, que tenha assim uns 240 ohms de resistência quando acesa, somada a um resistor de 100 ohms, resultando em uma resistência por volta de 300 ohms. Para ajustar o ganho final, deve-se ajustar o trimpot de 1k, para que tenha o ganho final de 3. O ajuste se faz com um osciloscópio e verificando a forma de onda na saída, de forma que tenha a maior amplitude sem que haja achatamento ou clipamento nas pontas da senóide. A fonte é uma bateria de 9V que tem um terra virtual no meio da tensão da bateria.
O esquema:


E alguns oscilogramas dos sinais em 100Hz, 1kHz e 10kHz:
100Hz e 2Vpp

1kHz e 2Vpp

10kHz e 2,2Vpp

Foto do gerador de áudio montado

Com o gerador de áudio, consegui obter até 8Vpp de amplitude e adicionei uma chave de 3 posições pra poder comutar os capacitores da ponte, assim tenho um gerador de 3 faixas de frequências. Pra incrementar mais um pouco e não ter que usar aqueles dials pouco precisos pra selecionar a frequência, adicionei um frequêncimetro digital com display de 3 dígitos e faixas de medição auto selecionáveis (999Hz, 9.99kHz e 99.9kHz) usando um PIC18F1220, que consegue medir até uns 30kHz.












O segundo circuito para gerar uma onda senoidal variável usa um circuito com técnica Direct Digital Synthesis (DDS). Esse é um sistema bem atual, onde se consegue uma altíssima resolução de frequências (chegando a 0,01Hz ou menos) e uma grande faixa de frequências, tudo controlado digitalmente e com alta precisão. A técnica DDS consiste em se ter uma tabela de fases e valor de amplitude (conversor fase-amplitude) do sinal de saída. Nessa tabela podemos ter variadas formas de onda e não apenas onda senoidais, mas também triangulares, dente de serra, quadrada, arbitrária e programável. Existem alguns cis especializados da Analog Devices como o AD9850 e o AD9833 que são programáveis via sinais digitais e possuem frequências de saída na casa das dezenas de MHz.
Um circuito DDS é composto basicamente de:
- Uma entrada ou gerador de clock digital, o clock de referência
- Um oscilador controlado numericamente (NCO) que por sua vez é composto de um registrador acumulador de fase, um registrador de incremento de fase e mais alguns registradores auxiliares
- Uma tabela de conversão fase para amplitude
- Um conversor digital - analógico
- Filtros passa baixas

Como funciona o DDS ? O registrador acumulador de fases geralmente tem um número relativamente grande de bits (por ex. 28 bits) e somente alguns bits de mais alta significância são usados para buscar um valor de amplitude na tabela de conversão (uma ROM que pode precisar de por ex. 10bits de endereço para buscar um valor de amplitude). O registrador de incremento de fase contém o valor que vai ser somado a cada período de clock ao registrador acumulador de fase. Quanto maior o valor do registrador de incremento, mais rapidamente o valor no acumulador de fase vai aumentar e mais rapidamente os 10 bits superiores aumentam, fazendo com que a tabela forneça os valores de amplitude variando mais velozmente. Ou seja, o valor do registrador de incremento de fase guarda uma relação direta com a frequência do sinal de saída.
Assim a frequência de saída será dada pela fórmula:
Fo = (valor incremento x frequência do clock)/ (2 ^ número de bits do acumulador de fase)
e a resolução de frequência será igual a:
Res = Frequência do clock / (2^ número de bits do acumulador de fase)

Para saber mais:
Tutorial DDS (em Inglês) da Analog Devices

Um gerador DDS pode ser implementado internamente num microcontrolador, para sintetizar sinais na frequência de áudio, pois haverá uma limitação quanto à velocidade de processamento (somas e conversão na tabela de busca) e o próprio clock do microcontrolador.

Eu escolhi trabalhar com um PIC 16F873 a 20MHz (inicialmente era 4MHz, mas era lento demais) com uma rede R-2R na saída de 8 portas para fazer a conversão digital-analógica. O restante é tudo firmware, aproveitando os registradores internos (memória RAM) do PIC para implementar os registradores de incremento e de acumulação de fase. A tabela de conversão fica na memória FLASH de programa.
O registrador de acumulador de fase será de 16 bits, portanto contará até 65535 e será circular (quando tiver overflow, inicia do zero ou próximo, dependendo do valor do incremento).
O registrador de incremento de fase será também de 16 bits e terá valor de duas vezes o valor da frequência escolhida. Assim a frequência escolhida será limitada a 20kHz (20000), de forma que nesse caso o registrador de incremento terá valor máximo de 40000. Como valor mínimo de frequência, estabeleci o valor de 10Hz. Cabe dizer que com as limitações de tamanho dos registradores usados, a síntese de frequências acima de 5kHz não fica perfeita, com distorção considerável.
A tabela de seno, será de 8 bits de endereço, com 8 bits de amplitude (a ser convertida para analógico pelo conversor DA de 8 bits). O período de clock será de aproximadamente 30us (32768Hz).

Para a conversão digital-analógica uma rede R-2R de 8 bits com resistores de 1k e 2k para obter um sinal de mais ou menos 4Vpp, mas totalmente acima dos 0V. Esse sinal passa por um filtro PI com dois capacitores e um indutor com frequência de corte na faixa de 22kHz. Pode-se passar finalmente o sinal por um buffer feito com AO e ganho unitário.

Como elemento de visualização, foi usado um display de cristal líquido de 2 linhas e 16 colunas, comum para se selecionar a frequência do sinal gerado. Com seis teclas: menu, enter, +1Hz (ajuste fino), -1Hz (ajuste fino), +100Hz e -100Hz (ajuste grosso), escolhe-se a frequência dentro da faixa de 10Hz a 20kHz e aperta-se enter, o sinal começa a ser gerado. Para selecionar ou parar o sinal, aperta-se menu.

O esquema:



















O firmware:
:10000000B2014629A00000308A0020087F39201B59
:10001000803C0D20A01B003C080082070034033404
:10002000063409340C3410341334163419341C34A7
:100030001F342234253428342B342E3431343334D5
:10004000363439343C343F34413444344734493411
:100050004C344E3451345334553458345A345C345F
:100060005E34603462346434663468346A346B34C9
:100070006D346F3470347134733474347534763451
:10008000783479347A347A347B347C347D347D34FA
:100090007E347E347E347F347F347F347F34040872
:1000A000A70006138613861383160613861386137A
:1000B000F030860583122708B2187B283A30A10059
:1000C000FC30DB203330A60090201030A1006830D7
:1000D000DB2090206430DA202230A60090202830E7
:1000E0007A200C307A2001307A2006307A20B2143F
:1000F00027087B283214A600321C89288613033C6B
:10010000031C8E288E200730A100D030DB20031482
:1001100008003214FE3C031941298617A60E321C32
:1001200032100617F030860526080F3986040613AC
:10013000A60E321890283230DA2003140800B313C8
:1001400029080319B3170530A8002730A300103081
:10015000B5200330A300E830B520A3016430B520FA
:10016000A3010A30B5202408BC28A2002508A1005C
:100170002408A0000A212008A000A8030319B31333
:1001800029080319C6282802031808002008031D9F
:10019000B313B31B0800303E3C29A301A200FF307B
:1001A000A207031CA307031C41290330A100E6306A
:1001B000DB20CF28A101FC3EA000A109031CE628FA
:1001C000FF300000A0070318E128A0076400A10F7A
:1001D000E0280800A2000330F628A2000130F6282B
:1001E000A2000630F628A2000430F628A800230852
:1001F0002102031DFD2822082002043003180130CB
:10020000031902302805031DFF3041290404031D92
:10021000FF304129A501A4011030A600210DA40D35
:10022000A50D2208A4022308031C230FA50203180E
:1002300020292208A40723080318230FA507031069
:10024000A00DA10DA60B0E29200841291030A800F1
:10025000A101A001A70CA60C031C34292208A007A9
:1002600023080318230FA107A10CA00CA50CA40CB4
:10027000A80B2A2924084129840031088A00300863
:100280008200831303138312640008008316FF3077
:10029000850020308600870107309F008312B80157
:1002A000B901E830BA000330BB000230A600A70154
:1002B0003A08A2003B08A3008A012621BC002508B9
:1002C000BD00FE308A01502001308A0150204630A6
:1002D0008A01502072308A01502065308A015020F6
:1002E00071308A01502075308A01502065308A01B2
:1002F00050206E308A01502063308A0150206930CE
:100300008A01502061308A01502020308A0150201B
:1003100044308A01502044308A01502053308A01F1
:100320005020FE308A015020C0308A0150207630A3
:100330008A01502061308A0150206C308A0150209F
:100340006F308A01502072308A01502020308A019B
:1003500050203D308A015020A9013A08A4003B08F2
:10036000A5004F30B000B1018A019F2064008A11BE
:100370000519D029BA0A0319BB0A3A08A0003B089C
:10038000A1005530A300F0308A01F0208A11031D2E
:10039000CD29F030BA005530BB0032308A01CD2073
:1003A00064008A11851AEB296430BA070318BB0A66
:1003B0003A08A0003B08A1004E30A30020308A017B
:1003C000F0208A11031DE8292030BA004E30BB000E
:1003D00032308A01CD2064008A118518062A013046
:1003E000BA020030031C013EBB023A08A0003B08E1
:1003F000A100A3010A308A01EA208A11031D032A01
:100400000A30BA00BB0132308A01CD2064008A1163
:10041000051A362A6430BA020030031C013EBB02C2
:100420003A08A0003B08A100A3010A308A01F3208A
:10043000BE003A08A0003B08A1004E30A3002030C7
:100440008A01ED20C0003E08840040088A01062190
:10045000C000C1006400400841048A110319332A16
:100460000A30BA00BB0132308A01CD200230A6002A
:10047000A7013A08A2003B08A3008A012621BC007C
:100480002508BD00B801B90164008A1185194A2AFE
:100490008A114F2A64308A01CD208A0161293908E6
:1004A0008A010220BE00BF01BE1BBF0380303E0791
:1004B00087003C08B8073D080318013EB9076400EF
:1004C0008A110518652A8A01612916308A01DA2005
:0A04D0008A014F2A63008A016A2A9C
:02400E00323D41
:00000001FF

quarta-feira, 4 de setembro de 2013

Aparelho Meteorológico


Simples e preciso ...

segunda-feira, 2 de setembro de 2013

Amplificador Philbrick

AMPLIFICADOR OPERACIONAL VALVULADO

Muita gente pode pensar que os amplificadores operacionais só existem em forma de circuitos integrados. Quem estuda com os livros de eletrônica aprende com operacionais antigos como o 741, que é o mais famoso, embora ultrapassado e obsoleto. Mas o amplificador operacional é mais antigo que os circuitos integrados e mesmo anterior aos transistores. Sua aparição se deu na década de 1940, para viabilizar os computadores analógicos (daí o seu nome: amplificador operacional = que realizava operações matemáticas). De fato um amplificador pode ser um somador de tensões, um multiplicador de tensões, um subtrator de tensões e outras operações matemáticas podem ser realizadas.
Em 1952, uma empresa chamada Philbrick lançou um circuito eletrônico  que agregava duas 12AX7 e mais alguns componentes para formar um amplificador operacional com funções muito similares ao que encontramos nos AOs de hoje;  Esse modelo de AO valvulado tinha o código de K2-W:


Suas características principais eram:
- Ganho em malha aberta de 15000  (bem pouco comparado aos 100000 ou 200000 dos AOs de hoje).
- Resposta em frequência: 100kHz
- Impedância de entrada: mais de 100Mohms
- Impedância de saída: 1kohm
- Alimentação: -300V e +300V  sem falar nos 6,3V para os filamentos

Veja a datasheet da K2-W e algumas aplicações:

Na segunda página podemos observar o esquema elétrica da K2-W, mostrando que a primeira 12AX7 forma um amplificador diferencial e a segunda é usada em um amplificador de tensão e um seguidor de catodo com entrada limitada por lâmpadas neons.


A seguir a datasheet de outro AO, o K2-X, que tinha especificações melhores: um ganho de malha aberta de 30000 e resposta de 250kHz.  Este usava uma 12AX7 e um 6AN8 (triodo + pentodo):










domingo, 1 de setembro de 2013

CI 555 discreto

CIRCUITOS DESINTEGRADOS

Não, não estou falando de uma placa que sofreu uma descarga de um raio emitido por alguma arma marciana (tipo dos desenhos do Pernalonga), mas da moda de montar circuitos eletrônicos utilizando transistores e outros componentes discretos no lugar de usar circuitos integrados que seriam mais simples, baratos e miniaturizados. Indo contra a maré dos microchips atuais, muita gente lança kits de relógios, computadores e mesmo kits para emular um circuito integrado conhecido. No meio audiófilo é comum se dizer que utilizar amplificadores operacionais feitos com componentes discretos teria uma qualidade sonora muito melhor do que circuitos construídos com AOs integrados.
Eu já conhecia computadores feitos com transistores, relógios digitais com transistores, onde as portas lógicas, flip-flops, contadores, registradores são todos compostos por transistores discretos, como os desses links:
computador de circuitos discretos
relógios digitais

Mas o Eduardo me passou um link pra dar uma olhada num circuito joule thief, e na mesma página havia um link para um kit curioso:  uma placa para montar um circuito integrado 555 com componentes discretos. É um kit sem muita utilidade prática, dado a dimensão dele comparada com um ci de 8 pinos DIP, é pouco prático pra ser usado, mas tem suas vantagens do ponto de vista didático e de aprendizagem. Deem uma olhada nas fotos:

Comparando o circuito desintegrado com o circuito integrado

A placa com todos os componentes discretos

O esquema do 555 discreto com 26 transistores

Diagrama de blocos do 555

Outro dia eu havia feito um circuito do 555 num simulador, mas não tive sucesso em fazê-lo funcionar, mas foi usando um diagrama de uma datasheet da Intersil, onde ainda havia os comparados e portas lógicas que compunham o flip-flop.  Agora com esse novo esquema mais desintegrado tenho uma outra alternativa para simulação.  Além é lógico da possibilidade de montar o circuito discreto pois os componentes são de fácil obtenção, sendo necessário apenas paciência, tempo e atenção.

Para quem quiser saber mais ou comprar o kit do 555:







sábado, 31 de agosto de 2013

Octoswitch

OCTOSWITCH - CHAVEADOR DE PEDAIS

Dado o know-how que obtive ao desenvolver o hexaswitch, consegui fazer um chaveador mais simples, usando um PIC com menos pinos. Essa versão não permite que se escolha bancos de presets, assim ele pode selecionar e armazenar apenas 8 presets (patches) de 8 loops, que ficam gravados na memória EEPROM de forma a não perder as configurações quando o equipamento for desligado.

Como o 16F628 possui apenas 16 portas de entrada/saída, e destes 8 são usados para acionar os relés/chaves dos loops e respectivos leds, sobraram 8 portas pra acionar um display e ler as chaves de seleção e programação. Aí começam os malabarismos pra aproveitar ao máximo as portas que sobraram. Como são 8 chaves (momentâneas) para selecionar os presets e mais duas chaves de controle (programa e bypass) totalizando 10 chaves. A princípio eu pensei em fazer uma matriz de chaves, mas isso consumiria mais portas do que desejava pois para acionar 8 leds também deveria ter um sistema de matriz ou multiplexação. Optei por usar um display de 7 segmentos para mostrar o número do preset selecionado e um decodificador BCD para 7 segmentos que é o ci CD4511, que usa 4 entradas em binário. Assim, tirando as 4 portas para acionar o 4511, sobraram 4 portas pra ler as chaves.
Havia a opção de usar outro ci que seria um codificador de 16 entradas para 4 saídas binárias. Mas como eu não queria usar mais integrados, resolvi usar uma técnica de codificação usando simples diodos, o que funcionou nas simulações. Em tese 4 entradas codificadas poderiam distinguir até 16 chaves. Mas como 10 eram suficientes e isso simplifica o layout, deixo sobrando 6 possibilidades, para futuras expansões.

O esquema é o abaixo:

E o firmware para o 16F628(A):

:10000000712883178001840AFF3E031D02286C2893
:1000100083161C141A0883169B0A6C280301831686
:100020009A001C1555309D00AA309D009C149C1808
:1000300017281C119B0A6C28A301A200FF30A207FD
:10004000031CA307031C6C280330A100DF302A2007
:100050001E28A101E83EA000A109FC30031C3328A2
:10006000A00703183028A0076400A10F302820182B
:100070003928A01C3D2800003D280800A2000530BA
:10008000A80023082102031D47282208200204306B
:1000900003180130031902302805031DFF306C28B6
:1000A000A501A4011030A600210DA40DA50D220864
:1000B000A4022308031C230FA502031866282208A4
:1000C000A40723080318230FA5070310A00DA10DF3
:1000D000A60B542820086C28831303138312640092
:1000E00008008316F03085008601831207309F00D8
:1000F0002030840060300220A03084005030022084
:10010000203084003030012083167E309B00831223
:100110000820B80083167F309B0083120820B900A6
:100120006400E1300502031C9728B801B901E830EA
:10013000A0000330A1003908A30038083E20031DA9
:10014000A2289028B80A0319B90A83167E309B00AA
:10015000831238080F2083167F309B0083123908E2
:100160000F200130BA0064003A08013C031DC42886
:10017000013085000130BB003B0883169B008312D1
:100180000820BD003D08860064003A08023C031DBB
:10019000D528023085000230BB003B0883169B0047
:1001A00083120820BD003D08860064003A08033C25
:1001B000031DE628033085000330BB003B0883168F
:1001C0009B0083120820BD003D08860064003A08A9
:1001D000043C031DF728043085000430BB003B08B5
:1001E00083169B0083120820BD003D088600640032
:1001F0003A08053C031D0829053085000530BB0081
:100200003B0883169B0083120820BD003D08860032
:1002100064003A08063C031D1929063085000630A3
:10022000BB003B0883169B0083120820BD003D08DD
:10023000860064003A08073C031D2A290730850020
:100240000730BB003B0883169B0083120820BD00CB
:100250003D08860064003A08083C031D3B2908302D
:1002600085000830BB003B0883169B0083120820E2
:10027000BD003D08860064003A08093C031D412981
:10028000512964003A080A3C031D4F2964003C18B8
:100290004C2986013C144F293D0886003C10AD21B5
:1002A000B3288501AD2164003A08013C031D5C2997
:1002B0000130BD063D08860064003A08023C031D7B
:1002C00065290230BD063D08860064003A08033CFB
:1002D000031D6E290430BD063D08860064003A08FF
:1002E000043C031D77290830BD063D0886006400E4
:1002F0003A08053C031D80291030BD063D088600E4
:1003000064003A08063C031D89292030BD063D08DB
:10031000860064003A08073C031D92294030BD0660
:100320003D08860064003A08083C031D9B29803084
:10033000BD063D08860064003A08093C031DAC294F
:100340003B0883169B0083123D080F203B08850065
:100350003D088600BA01B32851290508BE00F030D7
:10036000BE053E08A000A1011030A200A30150204C
:10037000BE0064003E08013C031DC1290130BA00E3
:100380000A2A64003E08023C031DC9290230BA0053
:100390000A2A64003E08043C031DD1290330BA0038
:1003A0000A2A64003E08083C031DD9290430BA001B
:1003B0000A2A64003E08033C031DE1290530BA0007
:1003C0000A2A64003E08053C031DE9290630BA00EC
:1003D0000A2A64003E08093C031DF1290730BA00CF
:1003E0000A2A64003E08063C031DF9290830BA00B9
:1003F0000A2A64003E080C3C031D012A0930BA0099
:100400000A2A64003E080A3C031D092A0A30BA0081
:100410000A2ABA0164003A08003C0319132A013081
:0C042000A3002C301D2008006300142AEB
:02400E00103F61
:00000001FF

Aqui um rascunho do layout em placa 10x5cm:


A operação é simples. Ao ligar o chaveador, entra no preset 1. As chaves P1 a P8 selecionam os presets com os loops (são 8) acionados indicados pelos respectivos leds.  A chave BYPASS simplesmente desliga todos os loops (e leds) e mantém o preset atual. Ao apertar BYPASS novamente, volta ao preset que estava com os loops que estavam ativados.  Para programar os loops em cada preset, basta escolher primeiro o preset a ser configurado e apertar PROGRAM, que o display vai mostrar 0 (indicando que está em modo de programa) e as chaves P1 a P8 passam a ligar e desligar os loops (P1 para o loop 1 e assim por diante). O led do loop aceso indica se ele vai estar ativo ou não. Para sair do modo de programa, basta apertar a chave de PROGRAM novamente que o display volta a apresentar o número do preset que foi programado.
O Nevio do Handmades, montou esse chaveador e fez alguns vídeos bem instrutivos demonstrando o funcionamento:
https://www.youtube.com/watch?v=CEMsefys2do
http://www.youtube.com/watch?v=xtyX6BHv2Ro



quarta-feira, 28 de agosto de 2013

Planilha de Eletrônica

PLANILHA de ELETRÔNICA


Uma das melhores ferramentas pra quem gosta de eletrônica é uma planilha eletrônica. Com ela se consegue fazer cálculos e guardar tabelas, fazer algumas simulações e gráficos. Fiz uma compilação de diversas planilhas esparsas em uma única, de forma a poder acessar rapidamente uma utilidade. Elas ajudam a fazer cálculos básicos com resistores, capacitores, leds, transistores, configurar alguns integrados conhecidos, tem tabelas de referência, conversão de unidades, cálculos de filtros, amplificadores, áudio, etc

Você pode baixá-la aqui:
http://www.filedropper.com/eletronica


Ela funciona no Excel mesmo com versão mais antiga, mas é necessário instalar os suplementos da planilha (funções avançadas, solver, etc). Para escolher uma utilidade, selecione nas abas inferiores. As entradas de dados geralmente estão em cor vermelha e célula amarela. Muitas unidades e sub-multíplos e múltiplos podem ser selecionados também por uma janela de seleção.

Veja algumas planilhas implementadas