Sensor de posição do interruptor da luz de emergência

Antes de todos que projetam um sistema autônomo de iluminação de emergência, mais cedo ou mais tarde, surge o problema de ligar e desligar as luzes de emergência. Como fazer isso da maneira mais conveniente e transparente, para não estragar o design dos quartos com interruptores adicionais?


Uma das soluções sob o corte.


fundo


No mundo moderno, muitas coisas estão ligadas à fonte de alimentação ininterrupta. A maioria dos tipos de atividade intelectual já é inconcebível sem um computador e comunicações operando 24 horas por dia, 7 dias por semana. Isso não é bom nem ruim, e você precisa viver com isso. Especialmente se o seu local de trabalho não estiver em um escritório moderno, repleto de UPS e geradores a diesel de reserva, mas em um apartamento de um prédio residencial comum. E aconteceu que a confiabilidade do suprimento energético de moradias na maioria das cidades da ex-URSS deixa muito a desejar. Como resultado, o fio que conecta a tomada doméstica e a central elétrica mais próxima tem o péssimo hábito de quebrar periodicamente. Quando uma vez a cada seis meses, e quando e três vezes ao dia.

É por isso que, ao iniciar os reparos em um novo apartamento, eu inicialmente coloquei a fiação paralela no projeto para fornecimento ininterrupto de energia e iluminação.

Eu gostaria muito de ter à minha disposição um gerador poderoso com o ICE, capaz de fornecer energia normal a todo o apartamento, mas tive que abandonar essa idéia. Em uma casa particular, a questão não teria sido levantada, mas um apartamento é outro.

O primeiro problema é a remoção dos gases de escape, que não são absolutamente suficientes para colocar no apartamento de uma casa com aquecimento central. Bem, você não jogará fora a mangueira do lado de fora da janela, onde a fumaça é instantaneamente sugada pela janela do vizinho aberto mais próximo.

O segundo problema é o ruído. Sim, os geradores modernos de quatro tempos do inversor, quando você os ouve na rua, podem parecer muito silenciosos. E se você pendurar um silenciador adicional, ficará completamente silencioso. Mas acredite em mim, em um ambiente desenergizado, o que significa um prédio de apartamentos completamente silencioso, mesmo um estrondo tão silencioso será perfeitamente audível para todos os vizinhos.

Em suma, a idéia com o gerador morreu, tão claramente e não nasceu. Das restantes opções reais, apenas as pilhas permaneciam.

Além disso, permito-me uma narrativa simples de minhas provações emocionais e das decisões tomadas na primeira pessoa sem nenhuma pretensão à verdade universal. E imediatamente aviso que meus argumentos para alguém podem parecer pouco convincentes e que as decisões tomadas são controversas. Mas, no entanto, tudo o que é descrito aqui é atualmente implementado em hardware e executa as tarefas com êxito.

E se alguém estiver interessado no lado puramente prático da questão e não importa como cheguei a essa vida, ele pode pular muitas cartas e ir direto para a descrição da solução pronta.

Brevemente sobre como escolher o tipo de bateria


E embora essa edição não tenha nada a ver com o tópico do artigo, eu gostaria de inserir aqui também meus cinco centavos. Além disso, que inevitavelmente surgem em tais declarações discussões muitas vezes carrega um monte de lulz informações úteis.

Hoje, no século do rápido desenvolvimento da energia alternativa, começaram a surgir sistemas ininterruptos de fornecimento de energia fabricados industrialmente relativamente acessíveis para o lar, combinados com mini-usinas solares ou eólicas. Os mais avançados deles usam baterias de íon de lítio com um monte de "aprimoradores" eletrônicos da eficácia de todo o sistema.

No meu caso, não se pode falar em nenhuma mini-usina por motivos objetivos, e apenas a fonte de backup, renovável a partir de uma tomada comum durante a "iluminação", foi interessante. Portanto, foi decidido cultivar coletivamente todo o material eletrônico do apartamento UPS por conta própria. E como minhas mãos estavam completamente desamarradas, a primeira coisa que precisava ser decidida foi que tipo de bateria usar.

No começo, pensei assim: “Por que não o lítio? Juventude na moda elegante. Selado, energeticamente eficiente, durável ". Mas quando olhei para os preços, meu fervor de lítio diminuiu visivelmente. Uma pesquisa rápida em combinação com a aritmética escolar mostrou que mesmo 26650 bancos chineses "muito burros" com (é claro) os mais honestos 5000 mAH custarão cinco vezes mais do que uma bateria ácida da mesma intensidade energética. E se você escolher algo que não esteja na parte inferior do preço classificado por preço, a diferença chegará facilmente de 8 a 10 vezes.

E como você pode compensar uma diferença tão grande em valor?

Sim, o lítio armazena energia de forma mais eficiente a cada quilograma e metro cúbico, e uma bateria do tamanho de um bloco de cigarro dedica facilmente uma bateria de 10 kg de ácido-chumbo. Mas esse fato é tão importante para o uso estacionário?

Claro, um bom "lítio", mas com a abordagem correta, durará mais tempo. Mas dez vezes?

Ao mesmo tempo, do outro lado da balança, a potencial explosão de baterias de origem desconhecida, um algoritmo de carregamento mais complexo, problemas de descarte (todo sem-teto sabe onde usar uma bateria de chumbo para obter lucro, enquanto o lítio é muito mais complicado).

Em resumo, pela soma dos fatores, decidi adiar a idéia de lítio até a próxima iteração. Talvez daqui a alguns anos algo mude, mas, por enquanto, o chumbo é o nosso tudo.

, , . , , , .

Quanto às baterias de chumbo, também existem várias opções. A opção "certa" são as baterias de reserva especializadas, usadas no no-break, nas estações de base celulares e em outros locais semelhantes onde é necessário que sejam capazes de receber e fornecer grandes correntes, ocasionalmente sofrer uma descarga forte e, de fato, trabalhar sem distrair as pessoas. a serviço.

Outra opção "certa" são as baterias de tração para carregadeiras elétricas ou, o que diabos, um submarino a diesel. Essas baterias têm alta durabilidade e boa tolerância a descargas profundas, sem tirar do proprietário a oportunidade de "encher um pouco de água".

Bem, a opção "errada" é a bateria inicial da loja de carros mais próxima. Uma bateria assim pode ceder brevemente um quilowatt de energia à montanha, mas qualquer descarga é estressante para ela, como o trabalho para uma pessoa preguiçosa. E a glória das baterias descartáveis ​​está geralmente enraizada nas modernas baterias de cálcio: "descarregadas - troque".

Bem, espero que ninguém duvide de qual opção eu finalmente selecionei para implementação? Certo, terceiro. E as razões aqui estão não apenas no conhecido anfíbio verruga, mas também em um cálculo pragmático simples. As baterias iniciais são várias vezes mais baratas que todas as outras opções, às vezes se aproximando do lítio. E, em vez de sacudir uma bateria cara, você se sente muito mais livre em uma situação de indiferença saudável, quando a substituição resulta em perdas na quantidade de comida consumida por algumas semanas. Além disso, se você não deixar essas baterias esgotarem antes de perder o pulso, a vida útil delas no papel de backups é calculada por muitos anos. Você sempre pode colocar uma bateria com uma capacidade maior, ajustar o limite de descarga mais suavemente e ainda obter uma melhor relação preço / capacidade do que a bateria “certa”,sofrendo uma descarga profunda.

O principal nesta questão é fornecer ventilação pelo menos no nível do “orifício na parede” no local de instalação das baterias. Bem, organize a proteção banal contra curtos-circuitos, porque a baixa tensão da fonte de corrente diminui a vigilância e tudo pode terminar muito mal.

Guerra atual em um único apartamento


Após alguma garantia moral causada pela decisão final sobre o tipo de bateria, um novo motivo apareceu imediatamente para pensar com cuidado.

Deixe-me lembrá-lo que, inicialmente, eu queria um gerador de corrente alternada de 230 V. No entanto, depois de me reconciliar com a realidade objetiva e mudar mentalmente para as baterias, a inércia do pensamento já me levou ao conhecido mercado on-line chinês para escolher um conversor CC / CA adequado. E, no processo de estudar as características, o termo “onda senoidal modificada”, que foi esquecida, surgiu primeiro e depois o senso comum começou a levantar questões desconfortáveis.

A essência das perguntas foi a seguinte. Para cobrir todas as necessidades de energia do apartamento com uma bateria pequena, ainda não funcionará. Caldeiras, microondas, máquina de lavar, um poderoso computador de mesa ainda serão insuportáveis ​​em termos de energia. E a geladeira, o capô e até o ventilador banal não funcionarão adequadamente por causa dessa onda senoidal muito modificada. Obviamente, existem inversores com uma verdadeira onda senoidal, mas eles não são apenas mais caros, mas também menos eficientes. E a questão dos consumidores poderosos ainda não está resolvida.

Quais consumidores permanecem dentro do orçamento? Não existem muitos deles: eletrônicos de consumo, como laptops e telefones / tablets, um roteador, um servidor ARM, o clima é uma TV e, é claro, a iluminação. Além disso, a mensagem inicial do artigo (e minha motivação pessoal) é precisamente garantir o funcionamento da estação de trabalho de backup na forma de um laptop e o mínimo de conforto doméstico, como luz no banheiro.

Quase todos esses dispositivos exigem uma tensão constante de 5 a 21 V para sua operação e não há necessidade objetiva de aumentar primeiro a tensão da bateria para 230 V CA, depois abaixá-la e endireitá-la novamente para mais ou menos o nível inicial. Nessas transformações, é fácil perder até 50% de energia, o que eu não sorri.

Em resumo, foi assim que surgiu a ideia de usar uma rede de corrente contínua de baixa tensão como alternativa. E após um cálculo aproximado das perdas nos fios, os 12 (13,8) V iniciais se transformaram em 24 (27,6) V. mais práticos

No começo, eu queria tirar até 36 (41,4) B, mas depois de estudar as características de alguns componentes eletrônicos que planejava usar para trabalhar com toda essa economia, tive que moderar meu apetite.

Assim, em uma fiação alternativa com uma seção transversal de 3,5 mm 2 de cobre puro, a tensão foi aplicada em última análise a partir de duas baterias de carro conectadas em série.

, . ( ) . , .

Para permitir aos consumidores nos quartos, mais uma tomada foi adicionada a cada bloco “grande” de tomadas. E para que ninguém confundisse uma tomada comum com uma de reserva, os produtos do tipo "americano" com contatos planos de diferentes larguras foram instalados como o último. Isso, em primeiro lugar, não permitirá que o aspirador seja conectado à rede DC e, em segundo lugar, uma tomada diferente da européia, sempre usa a mesma polaridade ao usar o plugue “correto”.


Para essas tomadas, foram feitos adaptadores para laptop, diminuindo a tensão para os 18-20 V desejados e equipados com os conectores correspondentes. É claro que os saltos foram feitos com as habituais cargas USB de cinco volts para cada pequena coisa. Bem, apenas no caso, um par de pequenos conversores de 24/230 V foi comprado, com uma potência de 50 e 200 watts.

Casos para carregar com um plugue americano, os mesmos cabos de alimentação e placas prontas de conversores de pulso foram encomendados da China. Um ferro de solda era necessário apenas para conectar os fios.

Não falarei sobre a usina neste artigo, especialmente porque não há nada de interessante, então irei direto a um dos problemas "inferiores", a saber, a questão da utilização da energia acumulada pela bateria para fins de iluminação.

Iluminação


Assim, ao conectar o apartamento em paralelo à fiação principal, foram desenhados fios de uma rede CC alternativa com tensão de 24 (27,6) V. Entre outras coisas, um laço consistindo em um par desses fios foi enrolado em cada caixa de comutação e, em seguida, juntamente com os fios da rede de 230 V levou às luzes do teto (se houvesse várias na sala, o fio alternativo levaria a apenas uma).

O que fazer com a saída da rede DC no campo da lâmpada é uma questão de abordagem individual. Como fonte de luz, uma faixa regular de LED de 24 volts foi escolhida. Seus segmentos de diferentes comprimentos (na proporção da área da sala), dependendo do design dos acessórios, eram montados diretamente em suas caixas ou colados nas superfícies das quais brilhava bem e de onde não seria muito impressionante.

De qualquer forma, isso é um problema mais estético do que técnico, e agora é outra coisa.

Portanto, na caixa de cada comutador, tenho um loop de um fio de fase de uma rede de 230 V para ligar a luz "comum" e um loop de ambos os fios de uma rede DC para iluminação de emergência. Disto e dance.

No final, o desafio diante de mim era criar um determinado dispositivo que pudesse separar três estados um do outro:

  • Rede elétrica OK → apague as luzes de emergência.
  • A rede CA está desenergizada, os contatos do interruptor estão fechados → acenda a luz de emergência.
  • A rede CA está desenergizada, os contatos do interruptor estão abertos → apague a luz de emergência.

Consideramos que as ações são unilaterais, ou seja, desligar a iluminação já desligada não muda nada. Esses estados podem ser diferenciados entre si se as tarefas de determinar a operação da rede CA e a posição dos contatos do comutador forem resolvidas. Ao mesmo tempo, tive as seguintes condições iniciais:

  1. O gerenciamento da iluminação principal e da iluminação de emergência deve ser completamente transparente a partir de um órgão diretivo, sem “fazenda coletiva” dos botões adicionais.
  2. , , , .
  3. , .
  4. – , .
  5. - .
  6. ( ), .
  7. .

Obviamente, a ausência de rede elétrica CA nas caixas zero acabou sendo um erro de cálculo muito complicado do projeto. Sem ele, a determinação da presença de tensão na entrada do comutador se torna impossível. Tecnicamente, seria possível usar o fio negativo de uma rede de corrente contínua como zero, mas isso contradiz o parágrafo 5 completamente indestrutível dos meus termos de referência.

Sensor


No entanto, existe uma alternativa para medir a tensão da rede. Não é necessário determinar a presença de tensão, basta determinar a presença de corrente no fio da fase com os contatos do interruptor fechados. Afinal, se houver corrente, haverá tensão. Além disso, a “leitura” exata da corrente permite que a iluminação de emergência seja ativada não apenas no caso de falta de energia, mas também no caso de queima de lâmpadas banais. Este método não permite determinar o estado da rede CA quando o comutador está desligado, mas esse estado não me incomoda, porque Quando o interruptor é desligado, a iluminação de emergência também não deve funcionar.

Determinar a presença de corrente no fio é bastante simples, especialmente se essa corrente estiver alternada. Aqui você pode aplicar, por exemplo, um sensor Hall que detecta o campo magnético ao redor do fio. Mas você pode conviver com um transformador de corrente comum , que consiste em um circuito magnético de anel com um enrolamento. Um fio de corrente alternada é passado através do anel, o que cria um campo magnético no circuito magnético. Este campo, por sua vez, induz uma corrente secundária no enrolamento, proporcional à corrente primária no fio. Assim, este dispositivo simples permite medir a força da corrente alternada em qualquer fio, sem quebrá-lo e geralmente sem nenhuma conexão galvânica com o circuito primário.

O trabalho das pinças de corrente, uma ferramenta muito útil para qualquer eletricista, baseia-se no mesmo princípio.

Se houver um transformador próximo ao comutador, basta medir a tensão em seu enrolamento secundário para descobrir se alguma corrente está fluindo no circuito da lâmpada. A presença de corrente, como eu disse, em uma primeira aproximação indica dois fatos: existe uma tensão na rede 230 V e o comutador está fechado. O primeiro desses fatos é essencial para a operação do dispositivo de ativação da iluminação de emergência.

O segundo "parâmetro de entrada" do meu futuro dispositivo deve ser a posição dos contatos do comutador.

O “brainstorming” iniciado entre colegas de hobby trouxe várias opções para determinar a posição do comutador, que se resumia principalmente à modificação do design, a fim de adicionar outro par de contatos a ele. Aqui o escopo da imaginação é bastante amplo.

Era possível pegar um duplo em vez de um único interruptor e "paralelizar" mecanicamente suas metades para que elas se tornassem um todo. Essa opção não diferia na estética externa e não solucionava o problema naquelas salas em que a iluminação era de circuito duplo e o interruptor era duplo inicialmente.

Outras opções envolviam a introdução de um microinterruptor ou um interruptor reed com um ímã no mecanismo do comutador. Mas, depois de estudar os projetos dos disjuntores aplicados, essas opções também desapareceram. A base de cerâmica monolítica de um bom comutador simplesmente não deixa chance, mesmo para um microinterruptor compacto, e o ímã e a palheta não funcionavam devido ao toque muito pequeno da tecla e à histerese na curva de operação / liberação do comutador de palheta.

«» , . , , , . , , , .

Em resumo, era necessário criar um método que não exigisse modificação do comutador. E este método foi encontrado.

Descrevi acima um transformador de corrente, que permite determinar a presença de corrente alternada em um fio sem ruptura e contato galvânico. Mas qualquer transformador é um dispositivo bidirecional (em contraste com o mesmo sensor Hall), seus enrolamentos primário e secundário são intercambiáveis.

Se aplicarmos corrente alternada ao enrolamento secundário de um transformador, ele induzirá tensão nas extremidades do fio rosqueado no anel. E, o mais importante, a energia consumida pelo enrolamento da fonte dependerá de a corrente secundária no fio encontrar seu caminho para o movimento circular.

E aqui fica mais interessante. Um fio passa através do anel, que é imediatamente, em alguns centímetros, conectado a um dos contatos do comutador. Resta apenas fornecer a essa corrente um caminho de retorno do outro lado do comutador para obter um dispositivo para "detectar" a posição dos contatos. E pela razão de que essa corrente é alternada, um capacitor convencional pode se tornar uma ponte para ela.


Em princípio, para fechar este circuito sob certas condições, um capacitor não é necessário. Se uma corrente de frequência suficientemente alta for "bombeada" para o transformador, a capacitância perdida entre os fios será suficiente para passar.


Então, o que é necessário para organizar esse detector:

  1. Transformador de corrente.
  2. Medidor de tensão de saída do transformador.
  3. Fonte de corrente alternada de alta frequência.
  4. Medidor de corrente que flui através do enrolamento de um transformador invertido.

O mais difícil em termos de seleção dos parâmetros ideais é um transformador, que no modo transformador de corrente deve fornecer uma tensão aceitável com uma frequência de 50 Hz e, no modo ativo de "detecção" do estado do disjuntor, ter um coeficiente de transmissão aceitável a uma frequência de centenas de KHz. Não é possível simular esse elemento em um programa de modelagem de circuitos eletrônicos, e mesmo com o cálculo matemático tudo se tornou muito difícil. Eu tive que pegar um ferro de soldar nas mãos e passar horas dirigindo várias opções em busca dos melhores.

O número de voltas e a resistência ideal à carga foram selecionados empiricamente e não o fato de eu não ter perdido a melhor relação. Como resultado das experiências, a seguinte construção apareceu:

  • Núcleo de ferrite com uma permeabilidade de 10.000, tamanho 10x6x4 mm.
  • Enrolamento 30 voltas com fio esmaltado de 0,25 mm.
  • A carga ativa do enrolamento é de 1 kOhm.

A permeabilidade magnética é bastante grande, provavelmente, faria sentido usar um anel para 5000 ou até 2000 unidades, mas em quantidades suficientes eu tinha esses anéis. Em geral, a permeabilidade nesse caso é um valor de compromisso. Muito baixo torna o transformador inadequado para operação a uma frequência de 50 Hz e muito alto estraga tudo em frequências acima de centenas de quilohertz.

Vários experimentos confirmaram a realidade da ideia e os seguintes resultados foram obtidos:

  • No modo de transformador de corrente, o coeficiente de transmissão acabou por ser de cerca de um milivolt por watt de potência de fluxo (tensão 220-230 V).
  • No modo apalpador, dependendo da frequência e capacitância do vazamento, a diferença de corrente nos contatos fechados e abertos do comutador alcançou duas a três vezes.

Isso é tudo. Ambos os valores são mais que suficientes para uma fixação confiável da corrente de fluxo e para determinar a posição dos contatos do interruptor. Depende apenas da implementação específica.


Em ferro


Ao contrário da maioria de seus outros projetos, aqui já nos estágios iniciais da deliberação, foi decidido usar imediatamente o microcontrolador. Com base nas necessidades e na experiência, a escolha recaiu sobre o ATtiny13A. Este chip possui um ADC e pode usar uma fonte de referência interna de 1,1 V em vez da tensão de alimentação. Existe um PWM ótimo para gerar um sinal sonoro. E, que mais tarde se mostrou importante, existe uma EEPROM que permite armazenar dados de calibração.

, « , , - «» , ».

. . . , , , .

Aqui você precisa combinar pelo menos um gerador, um medidor de tensão e algum tipo de gatilho para armazenar o estado atual entre as medições. Em geral, qualquer esboço especulativo exigia pelo menos três casos apenas no "núcleo", e o controlador era muito mais prático.

A tensão do transformador de corrente com uma carga de 10 a 20 W é de 10 a 20 mV e é muito pequena para fornecê-la à entrada DAC com um limite de 1,1 V. Portanto, além do controlador, você também precisa de um amplificador com um coeficiente de transferência de cerca de 100 para aumentar a tensão de sinal mínima. até centenas de milivolts.

Em geral, a tensão do sinal de saída de um transformador de corrente depende não apenas da potência da carga, mas também de sua natureza. Uma carga puramente ativa, como a lâmpada de Ilyich, por exemplo, produz uma onda senoidal de nível de milivolt. Uma lâmpada LED da mesma potência, com uma simples pulsação, produz rajadas curtas a volts e acima. Poderíamos brincar disso, mas, primeiro, eu queria fazer um dispositivo universal e, em segundo lugar, no apartamento havia uma lâmpada com uma fonte de alimentação externa equipada com um circuito PFC (ou seja, com uma característica de consumo próxima a ativa).

Não atormentarei o leitor com opções intermediárias e darei imediatamente o diagrama final do dispositivo.


Aqui, a tensão CC através do regulador linear econômico LM2931-5.0 alimenta o controlador. Em termos de alojamento, funcionalidade e pinagem, esse estabilizador é semelhante ao popular 78L05, mas difere dele em menor consumo intrínseco (cerca de 500 μA a uma carga de 10 mA) e maior tolerância a rajadas curtas de tensão de entrada. Se você planeja trabalhar com uma tensão não superior a 20 V, pode usar um análogo ainda mais econômico do LP2950-5.0.

LP2950-5.0 30 . 24 . - , , , , . 50%, 100%.

O transformador não é mostrado no diagrama, mas seu enrolamento está conectado aos pinos TR1 e TR2.

Como elemento chave para alternar a carga, é usado um transistor MOS de canal P de baixa corrente 2SJ196 (uma corrente de até 1 A deve ser suficiente para qualquer lâmpada de LED), mas qualquer outro adequado para a pinagem, a corrente máxima e a tensão de drenagem máxima podem ser usadas.

Além do controlador e da chave dos elementos ativos, dois transistores são usados. Um é necessário para controlar o obturador da chave, operando sob a tensão da fonte de emergência. O segundo atua como um sinal de amplificador da saída do transformador de corrente.

Nesse ponto, você poderia usar amplificadores operacionais, mas em termos de detalhes o ganho era mínimo e você teria que esquecer de trabalhar em frequências acima de várias centenas de quilohertz.

Não é o sinal amplificado do próprio transformador que é alimentado ao ADC, mas seu envelope, que pode ser medido por uma única amostra e não por "streaming" da digitalização por algum tempo. Para isolar o envelope, são utilizados dois diodos Schottky, conectados de acordo com o circuito de duplicação de tensão. Essa inclusão forma um detector de amplitude clássico, no qual a queda de tensão nos próprios diodos é amplamente compensada.

O princípio de operação do sensor é simples. Primeiro, considere o algoritmo de ações necessárias para medir a corrente no fio.

No modo de medição atual, o pino PB0 é colocado no modo de saída e é aterrado por um zero lógico. Isso evita que quaisquer sinais do controlador sejam enviados para o ponto TR1. Em paralelo, as mesmas ações são realizadas no pino PB3, como resultado do qual a saída superior do capacitor C2 é aterrada. Esse capacitor, juntamente com o resistor R1, cria um filtro passa-baixo com uma frequência de corte de cerca de 1500 Hz. Graças a esse filtro, o papel de vários ruídos de alta frequência na formação do sinal medido é bastante reduzido.

Em seguida, um nível alto é aplicado ao PB4 para alimentar o amplificador de sinal. Após a conclusão dos transientes, uma corrente de 50 Hz da saída do transformador é amplificada e chega ao retificador, onde carrega o capacitor C8.

A carga do capacitor C8 é medida usando ADC1 e, a partir do valor de tensão obtido, é tirada uma conclusão sobre a corrente “primária” que flui através do transformador.

A detecção ativa é realizada de maneira diferente. Primeiro, o pino PB0 é convertido em um solucionador de PWM e um sinal é alimentado com uma frequência de centenas de quilohertz para unidades de megahertz. Este sinal é um pouco atenuado por um divisor resistivo e alimentado ao enrolamento do transformador de corrente no ponto TR1. O capacitor C1, junto com um braço do divisor R4, cria um filtro passa-baixo com uma frequência de corte de cerca de 1,5 MHz, o que reduz o nível de harmônicos de alta frequência de pulsos retangulares.

Depois de passar pelo enrolamento do transformador, o sinal da sonda do ponto TR2 chega ao mesmo amplificador e detector, da mesma forma, no final, carrega o capacitor C8 a uma tensão proporcional à carga no circuito "externo" do transformador. Da mesma forma, a carga do capacitor é medida usando o ADC do microcontrolador.

Agora explicações para alguns "soltos".

O resistor R5 é projetado para limitar a tensão no portão do interruptor de energia, que para MOSFETs de baixa tensão geralmente não deve exceder 20 V. No meu caso, a rede DC tem uma tensão de até 30 V, o que determinou a necessidade de um divisor 1: 3, obtido em conjunto com R3. Quando alimentado por uma fonte inferior a 20 V, o resistor R5 não é necessário (substituído por um jumper).

Os capacitores C4 e C5 são conectados em paralelo para obter uma capacitância de 2 μF. Este par de capacitores é digno de nota, pois deve transmitir igualmente bem os sinais das frequências baixa e alta. Aqui seria possível usar uma conexão paralela de um capacitor eletrolítico de várias microfarads e uma cerâmica de cem ou duas nanofarads, mas um "eletrólito" de capacidade tão pequena não gera ganho de tamanho quando comparado com a "cerâmica" de microfarads. É verdade que não era possível comprar um capacitor de cerâmica em duas microfarads, então coloquei duas da mesma.

, 50 2 , . , . . 100 , , . .

Os resistores R4 e R1 formam uma divisão de tensão, que iguala mais ou menos a tensão alternada de cinco volts na saída PWM com a tensão de saída do transformador de corrente.

O capacitor C8, como mencionado anteriormente, acumula a tensão a ser medida. É melhor se for um capacitor de alta qualidade com uma corrente de fuga mínima.

Menção especial merece o “pente” TP1 / TP2 de dois pinos conectado à perna de reset do microcontrolador. Esses contatos são usados ​​não apenas para reiniciar, mas para entrar no modo de calibração, descrito abaixo. Simplesmente, após a implementação de toda a lista de desejos, o controlador não tinha mais pinos livres e a necessidade de adicionar um controle simples apareceu durante a depuração do firmware. Então eu tive que usar o pé de reset do controlador para esse fim.

«» AVR RESET GPIO. , . , . , , , , RESET.

Em geral, o circuito acabou sendo bastante simples e toda a "mágica" é implementada no firmware do microcontrolador. No entanto, após a fabricação do protótipo, descobriu-se que a capacitância da fiação para operação confiável da "sonda" geralmente não é suficiente. A diferença de corrente através do transformador simplesmente se compara ao nível de interferência e a operação do circuito se torna não confiável.

Portanto, tive que abandonar o anel de ferrite pendurado livremente nos fios e adicionar um circuito de alta tensão diretamente à placa em uma nova revisão do dispositivo, a fim de facilitar a tarefa de sondagem.

O objetivo aqui é adicionar um capacitor dedicado, ativado para que o caminho mais curto para fechar o caminho para a corrente de RF através dos contatos do comutador.


O capacitor C10 deve ser projetado para uma tensão de pelo menos kilovolts, e sua capacitância deve ser escolhida de acordo com um princípio de compromisso, para que a confiabilidade da operação seja suficiente para uso prático e que a corrente capacitiva perdida através da lâmpada não seja muito grande. Na prática, você pode tentar "brincar" com essa denominação, se necessário.

De qualquer forma, um interruptor equipado com esse sensor não pode mais ser percebido como ideal. Pelo contrário, é semelhante a um interruptor com um indicador; portanto, em primeiro lugar, pode causar luz dispersa ou tremulação de lâmpadas LED de baixa qualidade e, em segundo lugar, pode causar um choque elétrico, embora não seja forte. Portanto, você nunca precisa trabalhar com a fiação de iluminação, contando apenas com o interruptor na parede, sempre desligue o “interruptor” na entrada.

E, como eu ainda tinha que adicionar parte da rede CA à placa, adicionei dois bloqueadores de fechamento lá, o que não permitirá que a corrente de sondagem de alta frequência passe para a fiação. O valor prático da frequência da tensão de sondagem pode atingir vários MHz e eu, como radioamador, estou muito cansado da ideia de aumentar a quantidade de interferência na rede com minhas próprias mãos.

As bobinas L1 e L2 devem ser energizadas, enroladas com um fio de espessura perceptível nos núcleos do tipo haltere ou anel. Os choques de sinal no projeto axial do "resistor" não podem ser usados.

A volta principal do transformador de corrente agora é um pedaço de fio rosqueado através do anel e soldado aos pontos TR3 e TR4 na placa. É melhor se esse fio estiver blindado enquanto conecta a tela ao TR5 e TR6 nos dois lados do anel.

TR6 , . - , . , .


O código do firmware e o arquivo HEX montado são anexados no final do artigo, juntamente com o circuito e o layout da placa de circuito impresso.

O algoritmo do detector sintonizado é simples. A cada três segundos, o controlador acorda do sono profundo, faz medições e, se necessário, altera o estado da tecla de controle em uma direção ou outra. Assim, a reação a uma mudança na posição do comutador pode ter um atraso de até três segundos. Não é muito conveniente, mas isso é feito, em primeiro lugar, para economizar energia da fonte de backup e, em segundo lugar, para reduzir significativamente o intervalo de pesquisa, não permite a duração dos transientes em diferentes estágios de medição. O intervalo mínimo pode ser considerado igual a um segundo, mas o circuito estará no modo de consumo ativo quase o tempo todo.

Bem, em conclusão, sobre a configuração. Devido ao fato de que diferentes sensores precisam trabalhar em condições completamente diferentes, de acordo com a corrente consumida pela lâmpada, o comprimento e outras características da fiação, o nível de interferência e similares, era impossível colocar um conjunto universal de parâmetros adaptativos no firmware. Portanto, cada sensor após a instalação requer uma única calibração no local.

O sensor entra no modo de calibração cada vez que é ligado, enquanto não há dados de calibração ou após o fechamento dos contatos TP1 e TP2. A entrada do primeiro estágio da calibração é indicada por uma lâmpada de emergência que pisca cinco vezes.

Depois de piscar cinco vezes, são dados 7,5 segundos para colocar o interruptor na posição “desligado”, se já tiver sido ligado antes. Após esse período, o nível de interferência sempre presente na rede CA é medido. O valor obtido é usado como ponto de partida para medições no ciclo de serviço. Também neste momento, o disjuntor é detectado em diferentes frequências para a seleção subsequente da frequência mais "contrastada".

Em seguida, o segundo estágio de calibração começa e a lâmpada de emergência pisca duas vezes. São necessários 7,5 segundos para colocar o interruptor na posição "ligado" e, após o tempo limite, o programa mede a corrente consumida pela lâmpada. Se a lâmpada tiver vários níveis de brilho, depois de ligar, você deve imediatamente mudá-la para um mínimo, para que no futuro o sensor funcione corretamente com qualquer um dos níveis disponíveis.

O início do terceiro e último estágio de calibração é marcado por três vezes piscando a luz de emergência e requer que o interruptor permaneça no modo “ligado” e a rede de iluminação seja desenergizada em um nível mais alto (ou seja, com o disjuntor principal ou secundário no painel) o mais tardar pelos mesmos 7,5 segundos Nesse caso, é realizada uma segunda sonda do disjuntor já ativada em diferentes frequências e, levando em consideração os valores obtidos no primeiro estágio, a frequência é selecionada na qual a diferença de corrente através do interruptor ligado e desligado é máxima.

A conclusão bem-sucedida da calibração é indicada por um único piscar da lâmpada de emergência e, se a rede de iluminação após o terceiro estágio ainda estiver desenergizada, ligando a iluminação de emergência no próximo ciclo de operação de votação.

Se os valores medidos de correntes e resistências em diferentes condições estiverem muito próximos e não puderem ser usados ​​para uma detecção confiável, a calibração falhará. Nesse caso, a lâmpada de iluminação de emergência pisca duas vezes quando a posição do interruptor não é bem-sucedida ou três vezes quando o consumo padrão da lâmpada de iluminação é muito baixo.

No caso de falta de vontade persistente do sensor em calibrar com um piscar duplo no final, tente aumentar a capacidade do C10.

Total


O dispositivo acabou sendo bastante simples, compacto o suficiente para caber em uma caixa de comutação, mas sem dizer que é muito fácil de configurar. Obviamente, ele não se baseia no componente de uma "casa inteligente" moderna, porque não possui 5G, controle de nuvem e até WiFi WiFi banal com GPS não é fornecido. No entanto, oito desses dispositivos desempenham sua única função e nada mais é necessário em condições de blecaute.

Código fonte do firmware (Atmel Studio 7)
#define F_CPU 9600000 //   (  : avrdude.exe -U lfuse:w:0x7a:m -U hfuse:w:0xff:m)

#include <avr/io.h>
#include <avr/wdt.h>
#include <avr/sleep.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#include <avr/eeprom.h>

//#define PROTEUS

typedef unsigned char bool; //   
#define true  (0 == 0)
#define false (0 != 0)

#define MAX_U10BIT 0b0000001111111111 //      

#define INTERVAL         3   //  , 
#define CUR_MINIMAL_DIFF 50  //      , LSB
#define RES_MINIMAL_DIFF 50  //      , LSB
#define FREQ_DIV_OFFSET  2   //     
#define FREQ_MAXIMAL_DIV 6   //     

EEMEM unsigned int  EEPROM_cur_edge;
EEMEM unsigned int  EEPROM_res_edge; 
EEMEM unsigned char EEPROM_frequency_dividor;

unsigned int cur_edge, res_edge; //   ,   EEPROM    
unsigned char frequency_dividor; //   ,   EEPROM    
unsigned char clk = 0; //   watchdog
bool tp_reset = false; //   TP1  TP2

//   
static void init_vars(void) {
  if(MCUSR & (1 << EXTRF)) { // ,       TP1  TP2
    tp_reset = true;
    MCUSR &= ~(1 << EXTRF); //  EXTRF       ,   
  }
}

//  
static void init_pins(void) {
  DDRB |= (1 << PB0) | (1 << PB1) | (1 << PB2) | (1 << PB4); //       
}

//    watchdog
static void init_interrupts(void) {
  sleep_enable(); //   

  WDTCR = (1 << WDCE) | (1 << WDE); //  watchdog
  WDTCR = (1 << WDTIE) | WDTO_1S; // watchdog      ,  1 

  sei(); //  
}

//   
void init_settings(void) {
  cur_edge = eeprom_read_word(&EEPROM_cur_edge); //   
  res_edge = eeprom_read_word(&EEPROM_res_edge); //   
  frequency_dividor = eeprom_read_byte(&EEPROM_frequency_dividor); //   
}

//   
static void toggle_load(bool state) {
  if(state) {
    PORTB |= (1 << PB1);
  } else {
    PORTB &= ~(1 << PB1);
  }
}

//  
static void blink_load(unsigned char count) {
  for(unsigned char i = 0; i < count; ++i) {
    _delay_ms(200);
    toggle_load(true);
    _delay_ms(200);
    toggle_load(false);
  }
}

//   (   )
static void stop(void) {
  set_sleep_mode(SLEEP_MODE_PWR_DOWN);
  while(true) sleep_cpu();
}

//   
static void toggle_amp(bool state) {
  if(state) {
    PORTB |= (1 << PB4); //     PB4
    _delay_ms(250);      //       200 .
  } else {
    PORTB &= ~(1 << PB4);
  }
}

//  
static void toggle_lpf(bool state) {
  if(state) {
    DDRB |= (1 << PB3); //  PB3    (  "0")     C2
  } else {
    DDRB &= ~(1 << PB3); //  PB3    ( )   C2  
  }
}

//    
static void toggle_gen(bool state) {
  if(state) {
    TCCR0A |= (1 << COM0A0) | (1 << WGM01); //    ( )    OC0A      OCR0A
#ifndef PROTEUS
    TCCR0B |= (1 << CS00); //    1
#else
    TCCR0B |= (1 << CS00) | (1 << CS02); //    1024
#endif
    OCR0A = FREQ_DIV_OFFSET + frequency_dividor; //   ,         OC0A
  } else {
    TCCR0A = 0; //  
  }
}

//  
static void toggle_adc(bool state) {
  if(state) {
    DDRB &= ~(1 << PB2); //  PB2    ( )
    ADMUX = 0b01 | (1 << REFS0); // PB2, 1.1v reference
    ADCSRA = (1 << ADPS0) | (1 << ADPS1) | (1 << ADPS2) | //       = 128 (75 )
             (1 << ADIE) |  //    
             (1 << ADEN);   //  
  } else {
    ADCSRA = 0; //  
    DDRB |= (1 << PB2); //  PB2    (  "0")   C8
    _delay_ms(50); //      C8
  }
}

//  
static unsigned int do_adc(void) {
  set_sleep_mode(SLEEP_MODE_ADC); //   "" 
  do {
    sleep_cpu(); //      ,      ,   
  } while(ADCSRA & (1 << ADSC)); //        ,  

  return ADC;
}

/*
//  
static void blink_bin(unsigned int value, unsigned char count) {
  for(unsigned char i = 0; i < count; ++i) {
    _delay_ms(1000);
    toggle_load(true);
    if(value & (1 << (count - i - 1))) {
      _delay_ms(500);
    } else {
      _delay_ms(50);
    }
    toggle_load(false);
  }
}
*/

//   
static unsigned int get_current(void) {
  unsigned int cur;

  toggle_lpf(true); //  
  _delay_ms(150);
  toggle_adc(true); //  
  _delay_ms(50); //    C8
  cur = do_adc(); //  
  toggle_adc(false);
  toggle_lpf(false);

  return cur;
}

//    
static unsigned int get_resistance(void) {
  unsigned int res;

  toggle_gen(true); //  
  _delay_ms(150);
  toggle_adc(true); //  
  _delay_ms(50); //    C8
  toggle_gen(false); //   ,   C8     
  res = do_adc(); //     
  toggle_adc(false);

  return MAX_U10BIT - res; //      ,      
}

//   
static bool is_current(void) {
  return (get_current() >= cur_edge);
}

//   
static bool is_toggled_on(void) {
  return (get_resistance() <= res_edge);
}

//  
static void do_main(void) {
  toggle_amp(true); //  

  if(is_current()) {
    toggle_load(false); //  ,  
  } else {
    if(is_toggled_on()) {
      toggle_load(true); //  ,  
    } else {
      toggle_load(false); //  ,  
    }
  }

  toggle_amp(false); //  
}

//    
static bool first_on(void) {
  return (frequency_dividor == 0xff); //   EEPROM   0xFF,        FREQ_MAXIMAL_DIV
}

//  
static void calibrate(void) {
  unsigned int cur_off, cur_on, res_off, res_on, res_on_tmp, res_off_array[FREQ_MAXIMAL_DIV + 1], diff, max_diff, frequency_dividor_tmp;

  blink_load(5); //    ,    
  _delay_ms(7500); //      

  toggle_amp(true); //  

  cur_off = get_current(); //      ( )

  //      
  for(frequency_dividor = 0; frequency_dividor <= FREQ_MAXIMAL_DIV; ++frequency_dividor) {
    res_off_array[frequency_dividor] = get_resistance();
  }

  blink_load(2); //     
  _delay_ms(7500); //      

  cur_on = get_current(); //     

  blink_load(3); //     
  _delay_ms(7500); //      

  
  res_off = MAX_U10BIT;
  res_on = MAX_U10BIT;
  frequency_dividor_tmp = 0;
  max_diff = 0;
  //      
  for(frequency_dividor = 0; frequency_dividor <= FREQ_MAXIMAL_DIV; ++frequency_dividor) {
    res_on_tmp = get_resistance();

    //   ,      
    if(res_off_array[frequency_dividor] > res_on_tmp) {
      diff = res_off_array[frequency_dividor] - res_on_tmp;
      if(diff > max_diff) {
        res_off = res_off_array[frequency_dividor];
        res_on = res_on_tmp;
        frequency_dividor_tmp = frequency_dividor;
        max_diff = diff;
      }    
    }
  }
  frequency_dividor = frequency_dividor_tmp;

  toggle_amp(false); //  
  
  if(cur_on > cur_off + CUR_MINIMAL_DIFF) { 
    cur_edge = cur_off + (cur_on - cur_off) / 2; //    ,     
 
    if(res_on + RES_MINIMAL_DIFF < res_off) {
      res_edge = res_off - (res_off - res_on) / 2; //    ,      

      //   
      eeprom_write_word(&EEPROM_cur_edge, cur_edge);
      eeprom_write_word(&EEPROM_res_edge, res_edge);
      eeprom_write_byte(&EEPROM_frequency_dividor, frequency_dividor);
      
      blink_load(1); //  
    } else {
      blink_load(2); //    
      if(first_on()) stop();
    }
  } else {
    blink_load(3); //    
    if(first_on()) stop();
  }
}

ISR(WDT_vect) {
  WDTCR |= (1 << WDTIE); //    watchdog   ""    
}

EMPTY_INTERRUPT(ADC_vect); //     ,     

int main(void)
{
  init_vars();
  init_pins();       
  init_interrupts(); 
  init_settings();

  if(tp_reset || first_on()) {
    calibrate(); //          
  }

  //  
  while(true) {
    set_sleep_mode(SLEEP_MODE_PWR_DOWN);
    sleep_cpu(); //   watchdog

    if(++clk >= INTERVAL) {
      do_main(); //  
      clk = 0;
    }
  }
}


Arquive com diagrama, fiação e o projeto completo do Atmel Studio 7

All Articles