Construtor de rádio - indicador LED do nível do sinal de baixa frequência. Medidor VU de pico de canal duplo no ATmega8 Vamos passar para o design

10.09.2021

Olá. As férias acabaram e você pode voltar a trabalhar. Provavelmente muitos já viram nossas fotos do indicador de nível LED - postes de amarração em LEDs inteligentes WS2812B. Resolvi contar mais sobre as colunas. Além disso, meus colegas me olham com uma expressão vazia: é uma coisa legal, mas pouca gente sabe disso. Precisamos corrigi-lo.

Pensei por onde começar e decidi isso desde o início. Indicador de nível, ou como também é chamado de VU -meter, há muito tempo que queríamos um com LEDs. Pode ser usado com sucesso como decoração, por exemplo, embutido em amplificadores, colocado próximo a equipamento de áudio ou monitor de computador. Não encontramos nenhuma solução pronta que gostássemos, então tivemos que fazer a nossa própria Medidor VU.

O primeiro desenvolvimento ficou assim:

Este indicador de nível foi feito pelo meu colega Constantino M. e dado a mim para reavivamento. Dois canais de 16 LEDs de cor única cada foram controlados por um microcontrolador ATmega8 através de dois registradores de deslocamento de 8 bits. Por economia e comodidade, foi utilizada indicação dinâmica: apenas 16 LEDs de uma coluna podiam acender ao mesmo tempo. Lancei o lenço, deu tudo certo, mas por algum motivo não consegui deixar bonita a mudança de nível das colunas.

Logo em seguida surgiu o desenvolvimento de um indicador de nível mais interessante que o anterior:

Constantino Eu fiz isso, antes de tudo, para mim. Lancei em alguns feriados, mas desmontei sem dar resultado. Claro, então peguei as pranchas para experimentar sozinho. Como protótipo, foi fabricado apenas um canal do indicador de nível. A coluna em si consiste em 32 LED RGB na forma de um módulo. Conecta-se a outro módulo com 4 registradores de deslocamento, através dos quais é realizado o controle. Hmm... À custa exibição dinâmica Os controles são únicos. Quatro registros de 8 bits controlam a seleção dos LEDs que devem acender em um determinado momento, e três pinos definem a cor (R, G ou B). Resta adicionar uma placa com microcontrolador e seguir em frente. Aqui conseguimos ir mais longe do que em versão anterior colunas. Primeiro tentei fazer tudo usando o Arduino Due:

Um microcontrolador operando a 84 MHz com arquitetura Arm interna era perfeito, pensei. A própria coluna suportava 8 gradações de brilho para cada cor de LED (R, G e B). Apenas uma cor poderia ser acesa por vez, portanto foi necessário transmitir uma das 24 combinações de valores aos LEDs a cada 1 ms. Além disso, foi necessário trabalhar com o ADC, realizar cálculos de logaritmos decimais e outros cálculos. Exceto no ambiente Arduino Não tive oportunidade de trabalhar com este microcontrolador, então ele não estava otimizado Arduíno -código. Mas mesmo apesar disso,lidou bem.

Por que estamos escrevendo um programa para algum controlador Arm pouco conhecido? Pensamos nisso e pegamos uma placa de depuração no microcontrolador STM8S105C6T6:

Tudo começou sem problemas. Desta vez o código foi transparente e portanto otimizado. Existiam vários modos de operação da coluna, mas os algoritmos não estavam totalmente desenvolvidos e, mesmo assim, já gostamos do indicador de nível. O que fazer com esse monte de fios, quem precisa e quem quer conectá-lo? Precisa inventar alguma coisa...

Tínhamos uma solução, mas desta vez não conseguimos implementá-la. Porque um dia - era uma quinta-feira normal - aconteceu o seguinte: outro dos meus, não menos valiosos, colegas Denis V. proferiu seu bordão:"Olha que coisa legal eu encontrei"! Era uma faixa de LEDs inteligentes WS2812B:


Necessita apenas de 3 fios para conectar (sinal, alimentação de 5 V e fio comum). Legal, adeus a uma braçada de fios extras - pensamos e encomendamos uma fita para teste:



Muito se tem falado sobre esta faixa de LED WS2812B na Internet - você sempre pode encontrar algo interessante e adequado. Principalmente as pessoas fazem várias “luzes” com isso. Acontece lindamente - claro, consumo"Branco quente"LIDERADO é 40 mA. Se a fita for longa, para porta USB Você não pode conectá-lo ao seu computador. É necessária uma fonte de energia suficientemente poderosa - um problema que precisava ser resolvido. Apesar dessa complexidade, fui atraído pela comodidade de controlar os postes por meio de um fio. Por que não fazer um construtor de indicador de nível com esta fita, para que você possa alterar os esquemas de cores, alternar modos... E isso ajudará nisso Placa Arduino Pro Mini no microcontrolador ATmega328. É fácil programar usando um adaptador UART-USB. Havia outra dificuldade: tempos muito curtos entre o carregamento dos dados."Luzes" , claro, as pessoas conseguiram... Mas durante o envio dos dados, ainda queríamos ter tempo para tirar valores do ADC, ler da memória, salvar, realizar cálculos... Portanto, enquanto a fita estava a caminho, consideramos a possibilidade de usar SPI de hardware, ou melhor, o sinal MOSI para organizar a transmissão com interrupções. O controlador acompanhará tudo? Ou teremos que otimizar o código, de alguma forma ser criativos, entrar no assembler - isso tinha que ser descoberto. Mas já sabíamos com certeza e desde a última implementação da coluna aprovamos: a quantidade de LEDs por canal será de 32 peças. No total, foi necessário processar 64 vaga-lumes inteligentes para duas colunas. Olhando para o futuro, quero dizer que o WS2812B foi dominado. Ainda vou sofrer com a parte de software, vou falar sobre o hardware - haverá uma continuação.

P.S. Outro desenvolvimento de colunas apareceu. A mesma solução que foi adiada um pouco devido à descoberta do WS2812B, mas, graças a ele, foi modernizada e simplificada. Isso permitirá que você use qualquer LED convencional (monocromático e RGB) e iluminação mais potente: até holofotes. Além disso, as barras são uma pequena parte do que pode surgir da nossa ideia. Mais sobre isso em outra ocasião.

PPS A postagem a seguir mostrará um diagrama de como conectar uma linha de sinal de áudio a um medidor de nível. E aqueles que estão interessados ​​e mal podem esperar para ver que tipo de colunas temos podem assistir a este vídeo:


Atenciosamente, Nikita O.

Apresento a vocês outro medidor de nível de áudio estéreo simples para um amplificador ou outro equipamento de áudio. O indicador possui 2 colunas de 20 LEDs e capacidade de indicar o nível máximo. É controlado pelo microcontrolador IO1 - Atmel AVRATmega8A ou mais ATmega8 ou ATmega8L. Este é o único circuito integrado do aparelho que fornece indicação de ambos os canais de áudio.

O indicador possui 20 divisões de LED em cada canal, 1 divisão corresponde a 2 dB. Faixa de exibição de -34 a +4 dB. Quando o nível do sinal de áudio excede 0 dB (18º LED), ocorre sobrecarga. Você pode usar colunas monolíticas (linhas de LEDs) ou LEDs individuais como LEDs de indicação. Os LEDs são controlados de forma multiplexada em 10 etapas, 4 LEDs em cada etapa, a frequência de multiplexação é de cerca de 100 Hz. Os resistores R1...R4 determinam a corrente e, portanto, o brilho dos LEDs. Os sinais dos canais esquerdo e direito são conectados às entradas conversor analógico para digital ADC0 e ADC1. O tempo de queda (atenuação) da escala é de cerca de 600 ms.

O dispositivo também é equipado com uma indicação de nível de pico, que pode ser ativada por meio de um jumper na placa identificado como IM (Indicador de Máximo). O medidor de nível de áudio é alimentado por uma fonte de alimentação de 5V e o consumo de todos os LEDs é de cerca de 45mA. Os capacitores C1 e C2 devem estar localizados o mais próximo possível do microcontrolador IO1.

Arquivo do artigo "Indicador de nível de sinal de áudio 2x20 LEDs no Atmega8"
Descrição: Código fonte (Assembler), arquivo de firmware do microcontrolador
Tamanho do arquivo: 2,64KB Número de downloads: 798

Apresento a vocês um projeto simples de indicador de sinal de áudio, característica distintiva Esse projeto de outros é que no circuito usei 32 LEDs para cada canal, o que acabou sendo uma fila longa. No coração do dispositivo - Microcontrolador AVR ATmega8535, ULN2803 - switch Darlington de 8 canais, também usado amplificador operacional, Acho que seu propósito é igualmente claro. A sensibilidade do indicador é ajustada pelos resistores R32 e R33, para cada canal separadamente. Este projetoé meu trabalho de diploma, o que fiz há alguns anos, me deparei com o diagrama quando estava vasculhando as pastas do meu PC e decidi enviá-lo para o site.

O diagrama é bastante volumoso, não abreviei a designação dos LEDs, você pode ver o diagrama abaixo:

Quanto aos LEDs, é conveniente substituí-los por tiras de LED especiais e terão uma aparência melhor.

Todo o dispositivo foi montado em uma protoboard, placa de circuito impresso Não fui eu que desenhei, mas quem gostou do projeto pode desenhar uma placa de circuito impresso e enviar para o fórum. Todos os componentes de rádio do circuito podem ser substituídos por outros semelhantes, os valores dos resistores e capacitores podem ser definidos para valores semelhantes. Os transistores podem ser substituídos por quaisquer outros semelhantes. Oscilador de cristal Você pode configurá-lo para 14-16 MHz, não é crítico. Fotos do aparelho abaixo:

Ao programar um microcontrolador, não há necessidade de configurar fusíveis, ou seja, selecione o controlador que precisamos no programa, abra o firmware e clique em flash. Se o dispositivo for montado sem erros, o circuito funcionará imediatamente.

Lista de radioelementos

Designação Tipo Denominação Quantidade ObservaçãoComprarMeu bloco de notas
IC1 AVR MK 8 bits

ATmega8535

1 Para o bloco de notas
IC2, IC3 Transistor composto

ULN2803

2 Para o bloco de notas
IC4A, IC4B Amplificador operacional

LM358

1 Para o bloco de notas
1º-4º trimestre Transistor bipolar

BD140

4 Para o bloco de notas
Q5 Ressonador de quartzo16MHz1 Para o bloco de notas
C1-C4, C11, C14 Capacitor100 nF6 Para o bloco de notas
C5-C8 Capacitor10 nF4 Para o bloco de notas
C9, C10, C15, C16 Capacitor220 nF4 Para o bloco de notas
C12, C13 Capacitor eletrolítico10 µF2 Para o bloco de notas
T17, T18 Capacitor22 pF2 Para o bloco de notas
R1-R16 Resistor

68 ohms

16 Para o bloco de notas
R17-R20, R23, R24, R30, R31, R36, R37 Resistor

1 kOhm

10 Para o bloco de notas
R21, R22, R29 Resistor

1,5 kOhm

3 Para o bloco de notas
R25, R26, R34, R35 Resistor

47 kOhm

4 Para o bloco de notas
R27 Resistor de ajuste100 ohms1 Para o bloco de notas
R28 Resistor

470 ohms

1 Para o bloco de notas
R32, R33 Resistor de ajuste20 kOhm2

Continuando o tema “LED ajustável” e perseguindo o objetivo de experimentar um smart Faixa de LED na base W.S.2812 B(NeoPixels) nasceu um novo dispositivo - Ajustarfaixa— indicador de nível avançado!

A loja me forneceu a fita para teste. Se você gostou do aparelho e quiser repeti-lo, a fita na Ucrânia pode ser adquirida na mesma loja - link para feeds. Para a Rússia, ele pode ser adquirido de outro dos meus parceiros, TIXER.RU (eles prometeram reabastecer a linha em um futuro próximo).


Vamos passar para o design.

O circuito é elementar - apenas algumas peças e ATtyni13. Espero que você saiba como escrever firmware no MK? Não? Então você.

O comprimento padrão da fita é de 30 pixels. O número de pixels de exibição pode ser alterado especificando na fonte o valor da constante “Number_Pixels” igual ao número real de pixels (os efeitos serão recalculados automaticamente para o novo valor).

Apesar de diagrama simples, o indicador de nível acabou sendo interessante! Com uma grande seleção de opções de exibição de régua. O dispositivo usa uma paleta especial estilizada como uma chama. Assim, cada valor de nível terá sua própria cor na paleta:


Dispositivo
– é exibido visualmente na fita nível de entrada. Esta é uma espécie de grande coluna de LED.

O indicador pode funcionar em 9 modos de exibição de nível de entrada. Para percorrer os modos, pressione o botão “ Modo" O modo selecionado é armazenado na memória não volátil e será ativado automaticamente quando o dispositivo for reiniciado.

Modos:
0 – Desligado – a fita está desligada
1 – Simples – faixa regular de uma só cor
2 – Barra – régua do azul ao branco conforme a paleta
3 – Inv_Bar – régua do branco ao azul conforme a paleta
4 – Cor – toda a linha fica destacada em uma cor dependendo do comprimento
5 – Ponto – ponto colorido indicando o nível
6 – Solid_Color – todos os pixels acendem em uma cor dependendo do valor do nível
7 – Fogo – fogo estilizado – quanto maior o nível, maior a chama
8 – Caos – iluminação caótica de pixels (varia dependendo do nível)
9 – Scroll – mudança de nível ao longo da faixa

O dispositivo, além de exibir o nível do sinal de entrada, também pode operar em modo automático. Para fazer isso, você precisa fechar a chave “Demo” no chão. No modo Demo, o nível do dispositivo muda aleatoriamente e automaticamente.

Como o dispositivo é elementar, para demonstrar suas capacidades montei-o em uma placa de ensaio em alguns minutos:

E isso é o que aconteceu:



Materiais para montagem do dispositivo:
- Materiais para montagem do dispositivo

Âmbito de aplicação do indicador de nívelAjustarfaixa:

— A primeira coisa que vem à mente é a visualização musical.
— Além disso, acho que ficaria ótimo se eles fossem usados ​​para iluminar o tacômetro de um carro (dependendo da velocidade, a iluminação mudará de cor).
— A seguir vem a iluminação dos botões de controle de nível.
— Criando também lâmpadas originais para vida útil da bateria no modo de demonstração (o modo de disparo parece muito impressionante mesmo sozinho).
— Visualização da temperatura (por exemplo, você pode usar um termômetro analógico barato LM35) ...


Atualização 2016
Victor001 feito bom trabalho para conectar o som ao dispositivo. Ficou ótimo. O firmware também foi ligeiramente alterado - veja o arquivo.


O circuito do indicador revelou-se incrivelmente simples e realmente corresponde à tarefa em questão - próstata, componentes de fácil acesso e 100% de repetibilidade. Quando montado corretamente funciona imediatamente. Toda a configuração se resume a definir os níveis de compressão e saída amplificador de microfone. O principal e único requisito é não definir o ganho ao máximo. A presença de um compressor não é uma panaceia e, ao trabalhar com um microfone, ainda tem seus próprios limites de regulação. Você pode, é claro, “beliscar” o sinal com um regulador de compressão, mas a mobilidade da tela será prejudicada. A melhor solução é o controle de ganho Ku fornecido no primeiro amplificador operacional do filtro passa-baixa. Ao operar a partir de uma entrada linear, o compressor funciona notavelmente bem sem ajustes adicionais.

Com fonte de alimentação, os circuitos ficam ainda mais simples. A escolha da fonte de alimentação foi baseada nos requisitos da fita WS2812B, mais precisamente no consumo de corrente, além de uma pequena margem. Obtemos 10 volts através de um conversor DC/DC.

O circuito do indicador revelou-se incrivelmente simples e realmente corresponde à tarefa em questão - próstata, componentes de fácil acesso e 100% de repetibilidade. Quando montado corretamente funciona imediatamente. Toda a configuração se resume a definir os níveis de compressão e a saída do amplificador do microfone. O principal e único requisito é não definir o ganho ao máximo. A presença de um compressor não é uma panaceia e, ao trabalhar com um microfone, ainda tem seus próprios limites de regulação. Você pode, é claro, “beliscar” o sinal com um regulador de compressão, mas a mobilidade da tela será prejudicada. A melhor solução é o controle de ganho Ku fornecido no primeiro amplificador operacional do filtro passa-baixa. Ao operar a partir de uma entrada linear, o compressor funciona notavelmente bem sem ajustes adicionais. A alimentação do circuito é ainda mais simples. A escolha da fonte de alimentação foi baseada nos requisitos da fita WS2812B, mais precisamente no consumo de corrente, além de uma pequena margem. Obtemos 10 volts através de um conversor DC/DC.

Aliás, para que os primeiros pixels não brilhem durante a pausa entre as trilhas, deve-se colocar um resistor de 100k em relação ao terra na entrada do MK. Eu perdi esse ponto quando estava desenhando o diagrama.


Existem selos de amplificadores no arquivo. Não indiquei a localização das peças do amplificador do microfone. Portanto, estou anexando a placa MU como uma unidade separada. Tudo está indicado nele. Preste atenção aos jumpers.


(Visitado 21.101 vezes, 1 visita hoje)

Indicador de intensidade do sinal 2 x 20 LED no ATMEGA8.

Em um dos sites estrangeiros, encontrei material sobre a montagem de um indicador de nível de sinal construído no microcontrolador Atmel AVR ATmega8A ou no antigo Atmega8 ou Atmega8L. Não adianta traduzir o artigo literalmente, pois o autor montou o circuito em uma placa de ensaio, mas mesmo assim você pode assistir o indicador em ação no vídeo que encontrará no arquivo. O indicador possui 20 divisões de LED em cada canal. A faixa de exibição é de -34 a +4 dB. Como LEDs indicadores, você pode usar postes monolíticos como DC20/20GGGWA, especificamente para estes Matrizes LED Desenhei a placa de circuito. Para começar, vou te dar diagrama esquemático indicador de nível de sinal:

Ao implementar o circuito, você também pode usar duas linhas de 20 LEDs comuns. Os resistores R1...R4 determinam a corrente e, portanto, o brilho dos LEDs. Os sinais dos canais esquerdo e direito são conectados às entradas do conversor analógico-digital ADC0 e ADC1. O tempo de queda (atenuação) da escala é de cerca de 600 ms. O dispositivo possui uma função de exibição de níveis de sinal de pico; pode ser ativado fechando o jumper “IM” (Indicador de Máximo); em vez do jumper, você pode instalar um botão ON/OFF de travamento.

O tipo de montagem do LED e suas dimensões são mostrados nas imagens abaixo:

Vista da placa indicadora de nível de sinal LED no formato LAY6:

Você encontrará o firmware do microcontrolador no arquivo (arquivo com extensão hexadecimal). A definição dos bits de configuração no PonyProg é mostrada na imagem a seguir.
(Valores hexadecimais: Fusível Baixo: A4, Fusível Alto: D9.)

Aviso!!! Não testei o circuito em hardware.

O tamanho do arquivo com materiais no indicador de nível de sinal no AVR Atmega8A 2 x 20 LED é de 4,8 Mb.

Se você encontrar erros ou tiver sugestões, não hesite em escrever comentários.