Controle de brilho do LCD. Controlando o brilho da luz de fundo da tela Nextion no FLProg

31.08.2023

Os usuários do sistema operacional Windows 7 geralmente encontram problemas configurações de brilho da tela. Para corrigir esse problema, veremos todas as maneiras disponíveis de ajustar o brilho da tela em Janelas 7. Ajustar a luz de fundo da tela é um processo bastante simples que até mesmo um usuário novato pode realizar. Depois de se familiarizar com o material, você será capaz ajuste o brilho você mesmo laptop ou computador desktop.

Ajustando o brilho usando ferramentas padrão do Windows 7

Para definir o brilho de um laptop ou PC multifuncional usando 7 ferramentas padrão, primeiro você deve ir para Painéis de controle. Você pode ir ao Painel de Controle através do menu " Começar"ou digite o programa" Executar» comando de controle

Após o lançamento Painéis de controle você precisa ir para a seção "".

Agora você pode aumentar ou diminuir a luz de fundo da tela. Para fazer isso, defina o controle deslizante " Brilho do ecrã» para uma posição que corresponda às preferências de luz de fundo do seu monitor.

Você também pode ir para as configurações plano de energia e expor brilho, em que o laptop funcionará com bateria ou rede elétrica.

Alterando as configurações de iluminação da tela usando o driver da placa de vídeo

Outra maneira interessante de alterar a iluminação do display é ajustá-la usando drivers de placa de vídeo. Para nosso exemplo, consideraremos um motorista da empresa Nvidia. Para abrir as configurações do driver da placa de vídeo, você precisa clicar com o botão direito em um espaço vazio da área de trabalho. Um menu de contexto deve aparecer.

Neste menu, selecione o item “ Painel de controle NVIDIA"(isso pode ser diferente para outra placa de vídeo), após o qual o painel de configurações do driver da placa de vídeo será aberto.

Agora neste painel você precisa ir ao menu “ Vídeo\Ajustar configurações de cores para vídeo».

No menu de ajuste de cor, vá para “ 2. Como fazer ajustes de cores"e ajuste o interruptor" Com configurações NVIDIA" Ao selecionar estes parâmetros, você poderá ajustar quatro propriedades, incluindo brilho da tela. Para aumentar ou diminuir o brilho da tela, arraste o controle deslizante para mais ou menos e você verá como a luz de fundo da tela muda.

Os fabricantes de placas de vídeo também possuem programas que regulam a iluminação da tela usando o driver do adaptador de vídeo. Informações E AMD.

Também na Internet você pode encontrar diversos programas que ajustam a luz de fundo do display. Todos esses programas funcionam acessando o driver do adaptador de vídeo. Ou seja, em essência, eles fazem o que você pode fazer no painel de controle da placa de vídeo (no nosso caso Nvidia). O mais interessante de todos esses programas é Fluxo. Sua principal característica é ajuste automático da luz de fundo da tela, que depende da hora do dia.

Um exemplo de ajuste da luz de fundo do laptop usando a tecla Fn

Por exemplo, usaremos um netbook Lenovo s110 com sistema operacional Windows 7.

Ele usa a tecla modificadora Fn em combinação com as teclas de cursor ← e → para ajustar a luz de fundo. Para aumentar a luz de fundo do laptop Lenovo s110, você precisa usar a combinação de teclas Fn + →. Para diminuir a luz de fundo você precisa usar a combinação Fn + ←.

Ao aumentar ou diminuir a luz de fundo, você verá como o valor do indicador gráfico muda. O programa é responsável por este indicador Recursos de teclas de atalho.

Como você pode ver, aumente ou diminua as configurações de iluminação da tela do laptop usando o botão " Fn", muito simples. Você pode usar este exemplo em outros laptops, pois os princípios de uso de teclas modificadoras são os mesmos.

Principalmente em laptops SAMSUNG NP350 atalhos do teclado:

  • para aumentar o brilho - Fn + F3;
  • diminuir - Fn + F2.

Ajustando manualmente a luz de fundo do monitor

Para usuários de computadores desktop, as configurações de iluminação da tela podem ser ajustadas na própria tela. Por exemplo, usaremos um monitor LG Flatron W1943SS. Para ajustar a iluminação, você precisa acessar seu menu. Para fazer isso, pressione a tecla MENU no painel de controle do monitor.

Depois disso, pressione a tecla AUTO/SET. Uma janela de ajuste de brilho deve abrir onde você pode alterá-lo.

Também gostaria de observar que as configurações do monitor não dependem de qual sistema operacional ou driver está instalado. Eles são regulados exclusivamente no monitor. Cada monitor de um fabricante diferente possui suas próprias opções de configurações manuais. Você pode conhecer os detalhes de ajuste dos parâmetros de iluminação da tela de um determinado monitor no manual, que acompanha a venda ou pode ser baixado em formato eletrônico no site do fabricante.

Vamos resumir

Este material mostra que mesmo um usuário iniciante de PC pode aumentar e diminuir o brilho da tela no Windows 7. E esperamos que nosso material ajude você a aprender como alterar o brilho do monitor do seu computador.

Vídeo sobre o tema


Com o iPhone X, a Apple usou pela primeira vez um painel de exibição baseado na tecnologia OLED. E se as vantagens dos monitores OLED são óbvias, raramente se fala sobre suas desvantagens. Uma dessas desvantagens é a oscilação da tela em baixos níveis de brilho devido ao uso de modulação por largura de pulso para controlar o brilho dos LEDs em baixos níveis de brilho. Na linguagem do usuário médio, a tela pisca no escuro.

Os fabricantes escolhem a frequência de oscilação da tela de forma que a maioria dos usuários não perceba. A frequência mais comumente usada é 240 Hz. Mesmo se excluirmos um grupo significativo de pessoas que notam tal oscilação, ainda há aqueles que não percebem a oscilação, mas experimentam aumento da fadiga, lacrimejamento, inflamação e vermelhidão dos olhos, e até enxaquecas. Não são tão poucas essas pessoas: dependendo do estudo e da metodologia utilizada, seu número varia de 20 a 30% de todos os usuários.

Em dispositivos Android, a oscilação do OLED geralmente pode ser resolvida com a instalação de um aplicativo que exibe um filtro de escurecimento; você pode até manter o controle automático de brilho se usar o aplicativo Lux Dash para isso (escreveremos sobre como configurá-lo corretamente para desligar a tremulação da tela em um dos artigos a seguir).

Acontece que o iOS possui um mecanismo integrado que permite obter um efeito semelhante e eliminar completamente a oscilação da tela no escuro. Vejamos as etapas necessárias para isso, mas primeiro responderemos à questão de por que os monitores OLED precisam de cintilação.

Por que os OLEDs piscam: controle de brilho PWM

A oscilação nas telas OLED é resultado direto do mecanismo usado para controlar o brilho desses painéis. Para alterar o brilho da tela (tanto LCD convencional, no qual as matrizes IPS são baseadas, quanto OLED), você pode reduzir a tensão fornecida aos LEDs de luz de fundo (ou LEDs individuais no caso de OLEDs) ou usar os chamados modulação por largura de pulso.

A modulação por largura de pulso controla o brilho da imagem ligando e desligando os LEDs. Quanto menor o período de ativação da luz de fundo e quanto maior a pausa entre as ligações, menor será o brilho percebido pelo olho humano. Isto é o que parece:

É a cintilação, e não o componente azul prejudicial da cor ou as cores supersaturadas dos OLEDs, que causa aumento da fadiga e enxaquecas. A cintilação causa maior tensão nos olhos no escuro, quando a pupila está dilatada ao máximo e flashes brilhantes literalmente bombardeiam a retina.

OLED sem cintilação: mito ou realidade?

É possível montar uma tela OLED sem piscar? Sim, isso é bem possível, mas na prática raramente é usado. Um dos poucos exemplos de tais telas é a matriz P-OLED, que foi instalada nos smartphones LG G Flex 2. A desvantagem dessas telas eram os seguintes efeitos, que apareciam com brilho mínimo:

Seria um erro acreditar que a LG tornou a matriz muito pior do que os seus concorrentes. As matrizes Samsung naquela época tinham qualidade semelhante - com uma grande diferença. Os painéis OLED que a Samsung instala em todos os seus carros-chefe piscam em todos os níveis de brilho – até mesmo em 100%. Por que a imagem em uma matriz tremeluzente parece muito mais nítida do que em um OLED sem tremulação?

O efeito está associado à dispersão de parâmetros entre LEDs adjacentes. A dispersão está presente em matrizes de todos os fabricantes, mas se manifesta em maior medida quando baixa tensão é aplicada aos LEDs. O efeito é um pouco semelhante ao ruído digital ao fotografar em ambientes escuros com uma velocidade de obturador curta. Quanto menos fótons atingirem os elementos sensíveis à luz da matriz – e quanto menos fótons forem emitidos pelo diodo OLED – maior será a probabilidade de ocorrer um erro, “ruído digital ao contrário”.

A Samsung resolveu o problema sempre fornecendo a tensão máxima aos LEDs e ajustando o brilho usando o ciclo de trabalho dos pulsos. Mas a oscilação constante da tela não agrada a todos, e vários fabricantes optaram por uma abordagem híbrida: até um determinado valor, o brilho é ajustado reduzindo a tensão dos LEDs; Depois de ultrapassar um nível mínimo especificado (geralmente 15-50%), uma redução adicional no brilho é obtida usando PWM.

Se falarmos especificamente sobre o iPhone X, o brilho nele é ajustado da seguinte forma (de acordo com o iXBT):

Até o nível de 50% não há cintilação; uma redução adicional no brilho é obtida piscando a uma frequência de 240 Hz. Isto foi demonstrado de forma convincente pelos revisores alemães do site Notebookcheck.net:

Como verificar a tremulação da tela

A tela do seu telefone está piscando? Mesmo que seus olhos não percebam nenhuma cintilação, sua presença ou ausência pode ser facilmente verificada em casa, sem nenhum equipamento especial. Tudo o que você precisa fazer é abrir uma página com fundo branco em seu smartphone (por exemplo, about:blank no navegador Safari ou Chrome), colocar o telefone em um quarto escuro, reduzir o brilho ao mínimo e apontar a câmera de outro smartphone na tela. Se virmos algo semelhante ao que é mostrado no vídeo abaixo, a tremulação da tela está presente:

Para determinar em que nível de brilho a tela para de piscar, abra o centro de controle e mova suavemente o controle deslizante de brilho. O desaparecimento das listras diagonais significa que não há PWM em um determinado nível de brilho.

Foi estabelecido experimentalmente que o iPhone X tem um nível mínimo de brilho sem cintilação de 50%. Mas se você mantiver o brilho nesse nível, em ambientes escuros o dispositivo será desconfortável de usar. O objetivo é reduzir o nível efetivo de brilho da tela, mas evitar oscilações.

Acontece que isso é bem possível. Para isso, existe um modo especial nas configurações do iOS, que pode ser encontrado nas configurações Acessibilidade > Exibir acomodações.

Neste modo, a tela é escurecida por um filtro de software. Para ativar este modo, você precisa ir em Exibir acomodações e ativar o controle deslizante. Agora você precisa clicar na inscrição Exibir acomodações e ativar o controle deslizante Reduzir ponto branco (veja a imagem). Experimente começar com um valor entre 85 e 100% e ajuste para um nível que seja confortável para os seus olhos (o brilho da tela na central de controle deve estar em 50%).

Desative o PWM em três cliques

Assim, conseguimos ativar um filtro de software que desativa a oscilação da tela em níveis baixos de brilho. Porém, usar um telefone com o filtro sempre ligado é inconveniente: sob luz forte a tela sempre ficará escura.

No iPhone X, ligar e desligar o filtro pode ser feito pressionando três vezes o botão lateral, que nas gerações anteriores de aparelhos desempenhava as funções de ligar e desligar o telefone. Para fazer isso, você precisa encontrar a opção Atalho de acessibilidade nas configurações e atribuí-la para ativar ou desativar a função Reduzir ponto branco (veja as capturas de tela).

Isso é tudo. Após ativar esse recurso, obtivemos o iPhone X, cuja oscilação da tela pode ser ligada e desligada rapidamente pressionando três vezes o botão lateral. Agora você pode usar o aparelho no escuro sem cansaço e desligar rapidamente o filtro escuro pressionando o botão lateral três vezes.

Informações adicionais

E novamente pegaremos o sensor de luz BH1750. Desta vez proponho não apenas obter dados sobre o nível de iluminação, mas também ajustar o brilho de qualquer dispositivo de iluminação com base nesses dados. Semelhante a ajustar o brilho da tela de um tablet ou smartphone - quanto mais brilhante a luz ambiente, menos brilho de iluminação é necessário e vice-versa, quanto mais escuro for, mais brilhante será o LED, as lâmpadas ou qualquer outra coisa. Sim, tudo isso pode ser organizado com base em um fotodiodo ou fotorresistor, mas tais dispositivos precisam ser configurados, calibrados e assim por diante. No caso de utilizar o sensor de luz digital BH1750, não há necessidade de realizar essas ações, pois tudo já foi calibrado antes de nós, os dados prontos são transmitidos através do barramento I2C, que só precisa ser comparado com a condição; . Em palavras simples, liguei e tudo imediatamente começou a funcionar sem movimentos desnecessários. Se você estiver interessado na ideia, continue.

Construiremos o dispositivo de acordo com o seguinte esquema:

O esquema acabou sendo o germe de uma ideia, pois pode e deve ser modernizado para diversos casos de uso, mas falaremos mais sobre isso depois.

Tudo aqui já nos é familiar. Atmega8a é usado como microcontrolador como o microcontrolador mais versátil e popular. Você pode usar um microcontrolador em qualquer pacote - não há diferença, exceto na ordem dos pinos nos gabinetes. A exibição é realizada em uma tela LCD baseada em HD44780. No meu caso, utilizo uma tela com 4 linhas de 20 caracteres cada, mas você também pode usar o tamanho 1602 - não é exibida muita informação na tela, então cabe tudo. O resistor variável R2 é necessário para ajustar o contraste dos caracteres no display. Ao girar o controle deslizante deste resistor, obtemos as leituras mais claras na tela para nós. A retroiluminação do display LCD é organizada através dos pinos “A” e “K” na placa do display. A luz de fundo é ligada através de um resistor limitador de corrente - R1. Quanto maior o valor, mais escura será a retroiluminação do display. No entanto, este resistor não deve ser negligenciado para evitar danos à luz de fundo. O próprio display é conectado ao microcontrolador usando um circuito de 4 bits. O resistor R3 é necessário para evitar o reinício espontâneo do microcontrolador em caso de ruído aleatório no pino PC6. O resistor R3 puxa a potência positiva para este pino, criando de forma confiável um potencial através dele. O resistor R4 puxa a perna do sensor para o solo, que é responsável pelo endereço do microcircuito para a interface I2C você pode ver todos esses números no código fonte, que está localizado no final do artigo; Para o funcionamento adequado da interface I2C, são necessários os resistores R7 e R8. Com a ajuda deles, uma unidade lógica é formada nas linhas devido ao fato de serem puxadas para a potência positiva. Ao gerar um zero lógico, as linhas são aterradas por um mestre ou escravo (microcontrolador ou sensor).

A fonte de alimentação principal do circuito é de 3,3 volts, determinada pelos parâmetros elétricos do sensor de luz BH1750. 5 volts são necessários apenas para alimentar o display; se você usar, por exemplo, uma tela do Nokia 5110, que também requer 3,3 volts para alimentá-lo, poderá omitir o regulador de tensão de 5 volts do circuito. Estabilizadores de tensão para 5 volts e 3,3 volts podem ser usados ​​​​absolutamente qualquer para tensões semelhantes, você pode usar estabilizadores lineares e pulsados;

Agora com relação à modernização do circuito. A base será sempre o próprio sensor e o microcontrolador, bem como o circuito de potência. O display LCD, com esta funcionalidade, é necessário apenas para depuração. Pode ser excluído do circuito quando usado de forma autônoma. Este é o primeiro. A segunda é a saída do circuito, ou seja, o LED HL1 - um LED não consegue iluminar um grande espaço e é necessário usar algo mais massivo - LEDs potentes, lâmpadas incandescentes ou qualquer outra coisa. Portanto, tais dispositivos de iluminação com consumo relativamente alto de corrente e tensão não podem ser facilmente conectados ao microcontrolador, caso contrário simplesmente queimaremos o microcontrolador. Para fazer isso, você precisa usar drivers ou outros circuitos. Se as lâmpadas incandescentes usam tensão alternada, você precisa usar um acoplador optossimistor e um triac poderoso para controlar o brilho da lâmpada (você só precisa ajustar o firmware para controlar o optossimistor). Para lâmpadas LED, o PWM pode ser aplicado na porta de um transistor de efeito de campo e através dele ligar os LEDs (sem esquecer de limitar ou estabilizar a corrente), ou utilizar drivers controlados para eles. Em geral, existem muitas opções - para cada caso existe uma. O circuito apresentado será o original com as funcionalidades básicas estabelecidas. Aqui está a ideia.

O seguinte circuito foi montado e depurado em uma placa de depuração em conjunto com o módulo BH1750:

A lógica operacional não é complicada - lemos o valor de iluminação do sensor e convertemos esse valor em um sinal PWM. Você só precisa selecionar a relação entre o sinal PWM e o nível de luz.

Para depurar o trabalho, foi utilizada uma lanterna de bolso para alterar a iluminação.

Além disso, se uma fonte de luz aparecesse repentinamente (pode ser acidental), o LED acenderia abruptamente, o que não é muito confortável, portanto, o controle suave do nível PWM é implementado. Ou seja, por exemplo, havia pouca iluminação - o LED estava aceso, um curto pulso de luz atingiu acidentalmente o sensor, digamos, dos faróis de um carro, o LED teria apagado abruptamente e acendido novamente de repente, se não para a regulação suave. Ou seja, com uma mudança brusca na iluminação, o PWM não muda abruptamente, mas tende a atingir o valor calculado, aumentando ou diminuindo apenas uma unidade com um ligeiro atraso. E tantas vezes o aumento ou diminuição ocorre até que o valor requerido seja alcançado. O código-fonte em linguagem C pode ser visualizado no final do artigo.

Além disso, para programar o microcontrolador nesta versão, é necessário conhecer a configuração dos bits fusíveis:

E o artigo vem com firmware para o microcontrolador conforme diagrama apresentado, código fonte no programa AVR Studio e um vídeo de demonstração (mudança suave no brilho do LED dependendo do nível de luz, que é ajustado com uma lanterna).

Lista de radioelementos

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

ATmega8A

1 Para o bloco de notas
IC2 Sensor de luzBH1750FVI-E1 Para o bloco de notas
VR1 Regulador linear

L7805AB

1 Para o bloco de notas
VR2 Regulador linear

AMS1117-3.3

1 Para o bloco de notas
C1, C3, C5, C7 Capacitor100 nF4 Para o bloco de notas
C2 470 µF1 Para o bloco de notas
C4 Capacitor eletrolítico220 µF1 Para o bloco de notas
C6 Capacitor eletrolítico10 µF1 Para o bloco de notas
R1 Resistor

22 ohms

1 Para o bloco de notas
R2 Resistor de ajuste10 kOhm1 Para o bloco de notas
R3 Resistor

10 kOhm

1 Para o bloco de notas
R4, R7, R8 Resistor

4,7 kOhm

3 Para o bloco de notas
R5 Resistor

Fabricantes de equipamentos portáteis, estações de trabalho, laptops, telefones celulares e videogames usam monitores de tela plana para exibir texto e imagens. Potenciômetros mecânicos têm sido tradicionalmente usados ​​para ajustar o contraste e o brilho da tela. Porém, hoje eles estão sendo substituídos por dispositivos de controle digital. Para ilustrar um circuito com controle digital de brilho e contraste, serão utilizados dois potenciômetros digitais da família Dallastat DS1668/DS1669, que na prática podem ser substituídos por qualquer outro potenciômetro digital.

Os modelos DS1668/DS1669 foram escolhidos devido à sua interface simples de botão para controlar a posição do controle deslizante. A interface de botão é mais conveniente para ajustar o contraste de telas LCD planas e é, em essência, muito próxima dos potenciômetros mecânicos tradicionais. Mais importante ainda, o DS1668/DS1669 possui uma unidade de memória não volátil integrada que mantém a posição do pino do meio após o sistema ser desligado. A substituição de um componente mecânico por um digital proporciona benefícios adicionais nas áreas de controle, confiabilidade e automação do produto final. Além disso, o DS1669 pode ser controlado através de um processador central. Esta flexibilidade na aplicação não está disponível quando se trabalha com resistores variáveis ​​mecânicos. Como o DS1669 é uma solução monolítica integrada sem partes móveis, sua confiabilidade em comparação com soluções tradicionais é inegável. No circuito de ajuste de contraste, o potenciômetro DS1669 pode ser localizado na placa distante do botão da seção correspondente do painel de controle do display. DS1669 estão disponíveis em pacotes padrão DIP-8 e SOIC-8 para montagem automatizada de placas.

Visores de cristal líquido.

Os displays LCD podem ser divididos em duas categorias: módulos alfanuméricos e gráficos. Cada um deles, dependendo dos requisitos de alimentação, possui uma entrada de tensão de controle, que na maioria dos casos pode ser variada para ajustar o contraste. O contraste do display pode mudar devido a alterações na tensão de controle aplicada ou na temperatura ambiente. As mudanças de temperatura geralmente têm o efeito indesejável de reduzir significativamente o contraste da tela. Um resistor variável é usado para regular a tensão de controle nos casos em que um aumento na tensão pode superar o efeito da mudança de temperatura. Mas o mais importante é que o potenciômetro permite satisfazer qualquer desejo do usuário em relação ao brilho e contraste da tela.

Módulos LCD alfanuméricos.

Os indicadores alfanuméricos são pequenos e são usados ​​em sistemas portáteis. Os requisitos de energia para tais módulos se resumem a uma única fonte de alimentação de 5 V que alimenta o display LCD e o driver lógico. Tensão adicional é necessária para fornecer energia às funções de controle do LCD (Fig. 1). A tensão de controle do módulo VO é obtida do potenciômetro VR. O valor nominal típico de tais potenciômetros varia de 10 a 20 kΩ. Os modelos de potenciômetros da série DS1669 possuem as mesmas classificações.


O potenciômetro DS1669 é adequado para qualquer módulo LCD com condições de potência semelhantes. A Figura 2 mostra uma configuração DS1669 que atende a todos os requisitos de alimentação e tensão de controle dos módulos LCD mostrados no Diagrama 65. O dispositivo é conectado como um simples botão para controlar o movimento do pino do meio. Você também pode usar uma topologia de botão duplo. Os controles de um e dois botões são descritos abaixo. O pino deslizante, RW, do potenciômetro DS1669 está diretamente conectado ao pino de tensão de controle do módulo LCD, VO. Para o circuito de alimentação mostrado na Fig. 1, nenhum componente adicional é necessário para operar o DS1669 com o módulo LCD.

Módulos LCD gráficos.

Os módulos gráficos são significativamente maiores em tamanho do que os displays alfanuméricos e operam com diferentes tensões de alimentação. Conforme mostrado na Figura 3, a fonte de alimentação para tais módulos consiste em uma fonte de alimentação de 5V para alimentar a lógica e uma entrada VLCDC para alimentar o módulo. A tensão de controle VO, que controla o contraste, é obtida da fonte lógica combinada de 5V e da fonte de alimentação do módulo VLCD através do potenciômetro R. Como é o caso dos displays alfanuméricos, o valor nominal do potenciômetro varia de 10 a 20 kOhm. A tensão no pino VO varia de 0 a (VLCD+ 5V) V. A tensão de alimentação do VLCD depende do tipo de display gráfico utilizado.

A faixa de tensão VO impede o uso direto do DS1669, bem como de outros potenciômetros fabricados pela Dallas Semiconductor. Para mitigar as dificuldades com o limite máximo de corrente do motor e a alta tensão necessária para este circuito, um potenciômetro digital é utilizado em conjunto com um amplificador operacional (Fig. 4). O objetivo de um amplificador operacional é gerar uma tensão de controle, VO, que esteja fora de especificação quando acionada por um potenciômetro digital. Além disso, o amplificador operacional limita a quantidade de corrente que flui através do motor e fornece toda a faixa de tensão de controle para o módulo LCD. A fonte de alimentação de 5V usada para alimentar a lógica do módulo também é usada para alimentar o potenciômetro DS1669 (ver Figura 4). O potenciômetro atua como um atenuador para o sinal de entrada de 5V para a saída não invertida do amplificador operacional. A saída do amplificador operacional controla a tensão de contraste do módulo LCD, VO, e é calculada pela fórmula: onde N é o número de posições do potenciômetro. Os valores nominais dos resistores R1 e R2 são selecionados de acordo com a fórmula: A seleção dos resistores R1 e R2 permite alterar a tensão de saída do amplificador operacional dependendo da fonte de alimentação nominal do módulo gráfico LCD (fornecido ao pino VO). O pino do meio está diretamente conectado ao pino não inversor do amplificador operacional, conforme mostrado no diagrama. Também é recomendado usar um diodo D1 Schottky (tipo 1N5818 ou equivalente) para fornecer proteção adicional contra picos de energia durante a ligação e desligamento.

Princípio operacional do DS1669.

Conforme observado, o potenciômetro DS1669 possui uma interface simples de botão UDC (Up/DownControl). O DS1669 pode ser configurado para controle de botão único ou de botão duplo. Neste caso, a entrada digital D permite controlar o potenciômetro através de um microcontrolador ou processador.

Os Esquemas 5 e 6 mostram ambas as configurações, respectivamente. Um fechamento de contato é definido como uma transição de alto para baixo no pino alto (UC), pino baixo (DC) ou entrada digital (D). Essas entradas ficam inativas quando estão altas.

O chip usa a largura do pulso de entrada como meio de controlar o movimento do motor. Um único pulso de entrada nas entradas UC, DC ou D altera a posição do controle deslizante em 1/64 da resistência final do potenciômetro. Aumentar ou diminuir essas entradas ativa o dispositivo e faz com que o contato feche. Um único pulso de disparo deve exceder 1 ms, mas não durar mais que 1 s. Isto é mostrado na figura. 7h.

Pulsos repetidos nas entradas do potenciômetro podem ser usados ​​para mover o controle deslizante mais rapidamente (Fig. 7b). Os requisitos para pulsos repetitivos de entrada são os seguintes: eles devem ser separados por um intervalo de pelo menos 1 ms. Caso contrário, o DS1669 os trata como um único pulso. Pulsos maiores que um segundo farão com que o controle deslizante se mova continuamente a cada 100 ms após o primeiro segundo. O tempo total para atingir o valor limite do potenciômetro com pulso contínuo pode ser calculado pela fórmula: 1 (seg) + 63 x 100 ms = 7,3 (seg) A configuração de um botão permite ao usuário controlar a posição do controle deslizante em ambas as direções com um único botão. A figura mostra uma configuração típica de tal circuito. A entrada UC é usada para aumentar e diminuir a resistência do motor, ou seja, implementa o modo de operação de um botão. A entrada DC não tem função operacional neste modo, mas o pino deve estar conectado a uma alimentação positiva (VCC).

O pino digital (D) está no modo inativo. Ao ligar o dispositivo, é necessário conectar o circuito conforme mostrado na Figura 5, então o potenciômetro fornecerá operação com um botão. A entrada CC deve ser conectada a uma fonte de tensão positiva (VCC). A direção do movimento do contato intermediário em uma configuração de botão único é determinada pelo passo primário. A mudança na direção do movimento do motor é realizada através de um período de inatividade na entrada do UC por um segundo ou mais. Além disso, com a configuração de um botão, quando o controle deslizante atinge sua posição final, sua direção muda. Isso acontecerá independentemente de a entrada ser um pulso constante, contínuo ou único. Quando o potenciômetro é configurado com dois botões, cada direção do controle deslizante é controlada pelo pino UC para cima e pelo pino DC para baixo, respectivamente. Não há modo de espera para alterar a posição do controle deslizante no modo de dois botões. Quando o motor atinge sua posição extrema, a direção de seu movimento não muda. A posição do controle deslizante será fixada no ponto final até que o contato de entrada de movimento reverso seja ativado. Todos os contatos de controle de botão UC, DC e D são carregados externamente com um resistor de 100 kOhm. Os pinos UC e DC são protegidos internamente contra saltos de contato e não requerem componentes externos para gerar o sinal.

Memória de posição do motor não volátil.

Quando a energia é desligada, o chip DS1669 lembra a última posição do controle deslizante. Esta função é fornecida pela unidade de memória EEPROM integrada. Na operação normal, a posição do controle deslizante é determinada pelo multiplexador de entrada. Periodicamente, o multiplexador atualiza os dados EEPROM das células de memória. A ordem de atualização das células foi otimizada pelos desenvolvedores para maior confiabilidade, durabilidade e eficiência. Além disso, a operação de atualização é totalmente aberta ao usuário. Se as configurações do Dallasstat forem alteradas após a inicialização, o novo valor será salvo com um atraso de até 2 segundos. Após salvar as medições iniciais, as alterações subsequentes na estrutura da memória EEPROM ocorrerão somente se a posição do controle deslizante mudar em mais de 12,5% da resistência final do potenciômetro. Quaisquer outras alterações após a inicialização inferiores a 12,5% não são armazenadas nas células de memória EEPROM. Como o Dallasstat possui um multiplexador 64-1, uma alteração de 12,5% corresponde a uma alteração no quarto bit menos significativo (LSB). Alterações ou salvamentos na memória EEPROM têm um atraso de 2 segundos para garantir que os dados sejam atualizados. A memória EEPROM possui 80.000 ciclos de gravação nominais. Se a memória atingir sua capacidade total, o Dallastat manterá sua funcionalidade enquanto estiver ligado. No entanto, ligar novamente o potenciômetro retornará ao nível de resistência armazenado pela última vez antes do esgotamento da memória.

Mikhail Kryukov
Cidade de Moscou.

Atualmente estou trabalhando em um projeto Arduino usando um display TFT. Recentemente, quis adicionar uma função aparentemente simples a ele - uma função de controle de brilho. Encontrei na documentação da biblioteca o método necessário para trabalhar com display TFT (Biblioteca UTFT): setBrightness(br);

O que nós precisamos?

  • Como base, usei Frearduino ADK v.2.2 baseado no processador ATmega2560
  • Mega Escudo TFT LCD v.2.2
  • A tela em si é TFT LCD SSD1963 de 7" ()
  • Biblioteca UTFT - uma biblioteca universal para trabalhar com monitores TFT (você pode encontrar a própria biblioteca, bem como a documentação)
  • Ferro de solda

Vamos lidar com o hardware

Abrindo o circuito de display, você pode ver que o conversor mp3032 possui três entradas: LED-A, PWM, 5V. Inicialmente, o PWM está inativo. Esta entrada não é usada de forma alguma. A luz de fundo é controlada por LED-A.


Se você olhar na parte de trás da tela, encontrará uma área chamada "Controle de luz de fundo". É aqui que encontraremos essas mesmas entradas. Para controlar a luz de fundo usando o método PWM, você precisa ter certeza de que tudo está ao contrário: o LED-A está inativo, o PWM está ativo. Para fazer isso você terá que revender o jumper. Aqui está uma foto de como deveria ser:

Parte de software

Como nossa biblioteca não pode fornecer o que precisamos, nós mesmos escreveremos a função necessária. Para fazer isso, abra a documentação do controlador que controla o display (SSD1963). O SSD1963 é controlado por meio de comandos especiais que são transmitidos do Arduino por meio de saídas especiais, descritas na documentação:

O controle é feito da seguinte forma: Saída do Arduino via RS (D/C na tabela) 0 se vamos transmitir um comando, 1 se vamos transmitir dados. Após transmitir o comando, RS muda para 1 e então os parâmetros necessários são transmitidos. Todos os comandos e parâmetros são transmitidos através das saídas D0-D7. Se você tiver um ATmega2560, todas as oito saídas serão combinadas na porta C.

Então, primeiro vamos escrever uma função para transmissão de dados pelo barramento. Para facilitar o uso, escreverei diretamente em UTFT.h:

Void Lcd_Writ_Bus(uint8_t bla) ( digitalWrite(WR,LOW); //Configura SSD1963 para ler digitalWrite(CS, LOW); PORTC = bla; //Transfere dados para o barramento na forma de um byte digitalWrite(CS,HIGH) ;digitalWrite(WR,ALTO);

Também vale prestar atenção nos nomes dos métodos, pois a biblioteca já pode conter funções com os mesmos nomes.
Vamos adicionar duas funções aos comandos e dados de saída:

Void Lcd_Write_Com(uint8_t data) ( digitalWrite(RS,LOW); //Muda o RS para o modo de leitura de comando, ou seja, 0 Lcd_Writ_Bus(data); ) void Lcd_Write_Data(uint8_t data) ( digitalWrite(RS,HIGH); //Muda RS para modo de leitura de dados, ou seja, 1 Lcd_Writ_Bus(dados)

Agora a própria configuração da luz de fundo. Para saber como fazer tudo isso, abra a documentação e procure o comando para configurar o PWM.

Observação:
O PWM pode ser controlado usando DBC - um sistema de controle de brilho dinâmico, mas para simplificar, não o usei. Se desejar, você pode encontrar as informações necessárias na mesma documentação.

Então, aqui está o que precisamos:

Ou seja, primeiro devemos transmitir o comando “0xBE”, e depois, como 3 parâmetros, transmitir a frequência do sinal, a duração do ciclo de trabalho, bem como o terceiro parâmetro que determina se o DBC está habilitado ou não (0x01 - desabilitado , 0x09 - habilitado).

Para ajustar o próprio brilho, basta alterar a frequência do ciclo operacional. Como estamos transmitindo dados como um byte, os valores do loop podem ser de 0 a 255. Decidi definir 9 níveis de brilho (de 0 a 8). Portanto, todos os 256 valores devem ser divididos em 9 etapas. Mas também vale a pena prestar atenção ao fato de que se os passos forem iguais, o brilho não mudará tão suavemente quanto gostaríamos. Ou seja, já, por exemplo, na 4ª etapa o brilho estará quase no máximo, e da 4ª para a 8ª etapa mudará quase imperceptivelmente. Diante disso, resolvi utilizar uma progressão geométrica com denominador 2. Ou seja, o brilho será calculado através da seguinte fórmula: (2^lvl) - 1, onde lvl é o nível de brilho de 0 a 8. Observe que como os valores começam em zero, você precisa subtrair um. Claro, você mesmo pode escolher as etapas e seus valores, mas dei um exemplo bastante simples. Agora o código em si:

Void setBright(byte lvl) ( byte brilho(1); for (byte i(1); i<= lvl; i++) //Возведение в степень brightness *= 2; Lcd_Write_Com(0xBE); //Вывод команды Lcd_Write_Data(0x01); //Ставим частоту 760Гц Lcd_Write_Data(brightness-1); //Выводим длину рабочего цикла Lcd_Write_Data(0x01); //Отключаем DBC }

Agora você pode usar UTFT.setBright(byte lvl);