Resultados da busca - %E5%8D%8E%E5%AE%87%E5%BD%A9%E7%A5%A8%E6%9C%89%E6%89%98%E5%90%97%E3%80%90%E2%94%8B%E7%A8%B3%E5%AE%9A2%E2%92%8F7%E2%92%8F01705%E2%94%8B%E6%89%A3%E3%80%93%E3%80%91
duino (Atmega328), porém como a funcionalidade delas parece genérica (ou seja, vc pode conectar a uma infinidade de fontes de sinais diferentes), e portanto podem conter "spikes" originários de outros equipamentos externos ao seu circuito, estarei provendo uma proteção também genérica. Essa proteção genérica é bem efetiva, mas claro não é "indestrutível", e dependendo do que vc ligue ali (por exemplo um sinal que tenha energia bem alta, e não estou falando de tensão, e sim de energia!!!), pode ser necessário uma proteção mais "reforçada", usando opto-acopladores por exemplo).
Assim, segue a sugestão de proteção na figura a seguir (clique na figura para "zoom"):
Note que seu circuito original do "SCT-013", está na região "amarelo claro" da figura, e veja que mantive as referências dos componentes exatamente como estava no seu circuito original (R21, R22, etc).
Na região "azul claro", está o circuito de proteção para "A3", contra eventuais sinais danosos vindos do sensor SCT (que podem ocorrer se vc "abrir" o sensor, ou se ocorrer um distúrbio na rede elétrica induzindo um "spike" muito alto no secundário do sensor).
Observe que vc pode eliminar "R102" e "R103". Neste caso, "R102" seria substituído por um "curto", e "R103" não seria montado. Mas acho de bom senso vc manter os dois, pois dará flexibilidade maior ao seu sistema (além de prover um loop fechado para o circuito de polarização do sensor).
Já na região "rosa claro", está o circuito de proteção para uma entrada digital. Observe que é bem parecido com o anterior, e o que mudam são os valores dos resistores, que agora são adequados para sinais digitais.
Sobre esse circuito para a entrada digital, você não deve montar "R203" se estiver usando a configuração "INPUT_PULLUP" para a entrada. Só monte "R203" se vc estiver usando a configuração "INPUT" apenas.
Já "R202" pode ser eliminado (substituído por um "curto"), mas ele provém uma proteção adicional para a entrada, então se vc o manter será mais eficiente a proteção.
Veja que no circuito que publiquei acima, desenhei o circuito de proteção para apenas uma entrada digital. Mas cada entrada deve ter seu próprio circuito individual.
No geral: preste atenção aos valores dos componentes que coloquei nos circuitos de proteção (se tiver alguma dúvida sobre os valores, pergunte). Para "R101" e "R201", se possível use resistores de 1/4 W (250 mW). Já os demais resistores podem ser de 1/8 W ou menor ainda.
Uma sugestão adicional: vi que vc está usando o 74HC595. Se for possível, use o 74HC594, que possui a mesma pinagem do "595". A diferença, é que vc pode prover um circuito de "PUC" (Power Up Clear). Isso vai impedir que seus Relés acionem acidentalmente quando vc ligar a alimentação do Sistema. A única diferença na pinagem entre o "594" e o "595", é o pino "13", que no "595" tem a função "OE#", enquanto no "594" tem a função "RCLR#" (também chamado de "PCLR#"). Este circuito é mostrado a seguir:
Observe que se vc tiver vários "594", precisa ter apenas um circuito "PUC" para todos eles, conectando a saída do "PUC" ao pino "13" de todos os "594".
Caso queira comparar, seguem os circuitos lógicos do "594" e "595" (veja que marquei a diferença dos sinais do pino "13"):
Infelizmente, o pessoal por aí afora viciou no "595", e usa o mesmo em circuitos onde o "594" é uma opção melhor (devido ao "PUC"). O que ocorre é que o "595" foi projetado para aplicações de barramento "tri-state", o que não é o caso de 99,9% dos casos que tenho visto por aí em tudo que é lugar. Vai ser difícil aprenderem sobre isso.
Espero ter ajudado.
Abrçs,
Elcids
…
Adicionado por Elcids Chagas ao 21:14 em 4 fevereiro 2019
ondutividade, o que tens é justamente isso, um sensor de condutividade do solo, e não de umidade.
O parâmetro de acionamento teria que ser na base do setpoint mesmo, que não é muito, digamos, cientifico.
Eu trabalharia com um HS-HR31 ou um HS-1101. O problema é que fora feitos pra trabalhar no máximo 95% de umidade, não sei como se comportariam no solo encharcado. Ai tem que estudar um encapsulamento que permita uma leitura direta.
---edit---
Sensor ideal encontrado:
"
Dew sensor---------------Model: HDS05
High quality & precision!
HDS05 the dew sensor is a kind of switching-mode element and only sensitive to high-humidity, working under DC. It's used to protect equipments from dew because its high precision and quick response.
1. Features:
*Small, light *High sensitivity under high-humidity circumstance
*Switching function
*Quick response * Anti-pollution *Excellent reliability and stability
2. Technical specification:
Working voltage
0.8V DC
Working temperature range
0-100Celsius
Working relative humidity range
0-100%RH
Dimensions
8*10*0.7mm
Resistance
75%RH, 10K ohm(average)
93%RH, 100K ohm(average)
95%RH, 200K ohm(min)
http://www.satistronics.com/myfiles/file/Module/HDS05.pdf
…
s o próprio EMI gerado pelo circuito, é mais de 90% provocado pelo overshoot (intensidade e frequência). E certamente esse EMI será um imenso problema em equipamentos comerciais (se for muito alto, nem será aprovado em ensaios de certificação).
Então agora podemos abrir o jogo um pouco mais, assim colaborando com outros que venham aqui no LDG procurando informação relacionada.
Vamos resumir as coisas assim:
1) o chaveamento da corrente em L2, gera impulsos de tensão que tendem a ser os impulsos unitários, porém estes são do mundo real (tem amplitude limitada e a largura do pulso não é zero). Estes impulsos nada mais são portanto, do que "pacotes" de energia que que são enfiados pela guela do capacitor na saída do seu Conversor DC/DC. Cada novo impulso acrescenta um novo pacote de carga "dQ" ao Capacitor de saída, o que por sua vez se traduz num delta de tensão. Sem uma carga resistiva na saída, com o passar do tempo, a tensão sobre esse Capacitor tenderá a alcançar praticamente quase o mesmo valor do impulso, e isto ocorre porque simplesmente estamos pegando um "pacote" de carga "dQ", e jogando em cima de um valor de capacitância de saída muito alto (no seu caso, C4 de 2000uF), e pela equação V = Q/C, pode-se calcular não somente o degrau de tensão dV, mas a própria tensão final sobre o Capacitor após cada novo impulso.
2) mas ao termos uma carga resistiva na saída, parte de cada "dQ" é também usado para alimentar esta carga resistiva, o que implica que esta carga resistiva atua justamente como o "outro lado do cabo de guerra", e assim "trabalha" no sentido de reduzir a tensão sobre o Capacitor de saída. Ao final das contas, espera-se que a taxa de impulsos por segundo, seja suficiente para equilibrar esse cabo de guerra, fazendo com que a tensão sobre o Capacitor se estabilize em torno de um valor médio (na realidade, ela acaba oscilando em torno do valor médio, e este é o ripple real na saída). A taxa de impulsos é a própria frequência de chaveamento, e ela acaba por bombear impulsos de "dQ" para o Capacitor de saída. Maior taxa (frequência), compensação mais rápida. Menor taxa, compensação mais lenta. Um algorítimo de controle de malha fechada, então nada mais faz do que ajustar essa taxa para que a saída tenha o comportamento de tensão esperado: quase constante para uma tensão DC, ou em "arco" crescente ou decrescente para uma saída senoidal. Claro que neste último caso, você poderá variar a própria tensão de entrada (como vc mencionou que já o fez), e assim terá também uma variável a mais na sua equação, que será a intensidade de cada pacote de energia "dQ", e assim tendo um maior controle sob o comportamento da tensão de saída.
3) o fato de ser Buck, Boost, é apenas o resultado da manipulação da intensidade e frequência dos pacotes "dQ", já que estes acrescentam energia ao Capacitor de saída, determinando a tensão sobre este capacitor, ou seja, simplesmente um resultado da conversão V = Q/C, considerando que parte da energia acumulada no Capacitor de saída está sendo drenada por uma carga resistiva (formando o "cabo de guerra" entre consumo e "bombeamento" de energia).
4) e o fato de ser saída positiva ou negativa, é apenas a configuração de como vc direciona os impulsos "dQ" para o Capacitor de saída, ou seja: determinado pela polaridade do Diodo na saída (no seu circuito, D2), que é o elemento chave nisto. Obviamente a polaridade do Capacitor deverá estar de acordo com a tensão resultante desse direcionamento.
5) as diversas configurações mostradas no "slyu036" da Texas, nada mais são do que uma exploração das possíveis variações do que foi descrito acima, inclusive recombinando os circuitos e aplicando o controle adequado ao chaveamento para se obter as características de conversão DC/DC desejadas.
6) uma pequena parte do "dQ" do impulso, acaba injetando energia em um "inesperado" Circuito Tanque LC, composto pelo próprio Indutor do chaveamento de corrente e pela capacitância parasítica existente ali, resultando na oscilação amortecida de alta frequência determinada por Freq = 1/(2*Pi*raiz(LC)). Observe que qualquer chaveamento da corrente do Indutor, irá provocar o impulso de tensão, devido ao Ldi/dt, e havendo alguma capacitância parasítica formando um Circuito Tanque LC, certamente existirá o overshoot senoidal amortecido, na frequencia natural do tanque LC.
7) sempre haverá dois overshoots, pois o indutor é chaveado duas vezes em cada ciclo do seu PWM. Em um dos edges do PWM, a capacitância parasítica do Diodo formará com o Indutor, o circuito tanque LC, resultando em um overshoot. No edge seguinte, será a capacitância parasítica entre Gate e Dreno do MOSFET que se juntará ao Indutor para formar o tanque LC, e um overshoot com outra frequencia e intensidade ocorrerá.
8) e finalmente: como capacitores também são elementos de acoplamento de tensão, uma capacitância parasítica entre dois pontos, acoplará o overshoot no outro nó correspondente ao outro lado desse capacitor. É por isso Dário, que no seu próprio sinal PWM também acaba aparecendo o overshoot (mesma frequência, mas com outra intensidade, que pode ser calculada por um divisor de tensão com impedâncias imaginárias).
Agora sobre o tratamento:
1) observe que estes circuitos procuram usar diodos do tipo "Schottky", pois estes além de serem rápidos tem uma menor "capacitância de barreira" que os diodos "PN" convencionais. Os "Schottky" também tem uma menor resistência de corpo (BULK), o que diminui as perdas por efeito Joule. Observe que nos APNs, vc sempre verá diodos "Schottky" sendo usados (naquela plaquinha da China, também).
2) observe qual a capacitância parasítica intrínseca entre Dreno e Gate do MOSFET, e claro ela deve ser a menor possível, e se deve tomar o cuidado para não acrescentar circuitos ali que causem aumento significativo dessa capacitância entre Dreno e Gate. Observe também que devido ao proprio liga/desliga do MOSFET, capacitâncias parasíticas entre Dreno e Source também podem injetar um "dQ" no Dreno, causando também um overshoot. Logo, a chave aqui, é escolher MOSFETs que tenham sido projetados para chaveamento em circuitos conversores DC/DC de alta frequência, pois certamente suas capacitâncias terão valores menores. Usar MOSFETs originalmente projetados apenas para um ON/OFF convencional, poderá ser um tiro no pé.
3) o Capacitor Eletrolítico de Alumínio de alto valor usado como parte essencial do conversor DC/DC, não irá amenizar o overshoot na saída, porque este tipo de Capacitor tem também uma alta indutância equivalente (ESI), e portanto não filtra a alta frequência do overshoot. Para esta tarefa, sempre se deve usar em paralelo com o Eletrolítico de Alumínio (no seu caso o "C4" de 2000uF), ou um Capacitor de Tântalo ou um de Cerâmico, os quais tem uma baixa indutância equivalente. Veja que nos datasheets desses conversores DC/DC integrados, sempre é especificado o acréscimo de um Capacitor de Tântalo ou do tipo Cerâmico, justamente pelo motivo delineado. Usar combinação de Tântalo e Cerâmico, também é uma ótima alternativa, principalmente em termos de custo e eficiência.
4) usar técnicas pontuais caso seja realmente necessário, como os "snubers" do artigo que vc citou (o do Marcin Walczak). Mas antes disso, deve-se obrigatoriamente aplicar as técnicas convencionais citadas acima (todas devem ser usadas, sem exceção). Caso o overshoot ainda resulte ser acima do mínimo aceitável para sua aplicação, então parte-se para aplicar técnicas pontuais e especializadas.
Fico por aqui, pois um pouco mais disso vai me dar overshoot.
Mas claro, se houver algo mais que eu possa ajudar e esteja ao meu alcance, vamos em frente.
Abrçs,
Elcids…
Adicionado por Elcids Chagas ao 5:46 em 14 março 2019
. Por isso, acho que, TALVEZ, sua dificuldade seja MUITO introdutória, pois existem 999999999999 vídeos que falam sobre isso. Entretanto, ninguém é dono do saber e, qualquer pessoa quando não sabe por onde começar, costuma perguntar a alguém, e da mesma forma, a ideia do fórum é ajudar a todos, então vamos lá. :)
Primeiro vamos do básico
- O Arduino possui 18 portas digitais (sendo que 5 delas também são analógicas - A0 até A5).
- As portas digitais realizam leituras ou escritas, enviando/recebendo um "ALTO/HIGH/'1'/5v" ou "Baixo/LOW/'0'/0v". Lembrando que a corrente máxima de saída é de 40ma, mas costumo ver o pessoal contraindicando o uso com esta corrente.
- As portas analógicas, quando definidas por código para este serviço, servem apenas para a leitura, oferecendo uma escala de 0 á 1023. (0 = 0v, 1023 = 5v).
Na programação do Arduino, temos 2 funções principais:
- Setup (configuração inicial)
- Loop (aqui o código fica girando eternamente).
Como seu objetivo é acionar 4 relés através de 4 botões, você pode utilizar 4 pinos digitais para LEITURA, e mais 4 pinos digitais para ESCRITA. Para isso, vamos definir na função "SETUP" a configuração dos pinos.
pinMode(4, INPUT); // Define o pino 4 como entrada.
pinMode(5, INPUT); // Define o pino 5 como entrada.
pinMode(6, INPUT); // Define o pino 6 como entrada.
pinMode(7, INPUT); // Define o pino 7 como entrada.
pinMode(8, OUTPUT); // Define o pino 8 como SAIDA.
pinMode(9, OUTPUT); // Define o pino 9 como SAIDA.
pinMode(10, OUTPUT); // Define o pino 10 como SAIDA.
pinMode(11, OUTPUT); // Define o pino 11 como SAIDA.
Como temos 4 pinos de saida, por padrão define-se a situação dele como "ALTO/BAIXO" a depender da ação desejada.
No seu caso, como deseja iniciar com tudo desligado, adicionaríamos mais esta linha:
digitalWrite(8, LOW); //Define como "Baixo/LOW/'0'/0v" o pino 8
digitalWrite(9, LOW); //Define como "Baixo/LOW/'0'/0v" o pino 8
digitalWrite(10, LOW); //Define como "Baixo/LOW/'0'/0v" o pino 8
digitalWrite(11, LOW); //Define como "Baixo/LOW/'0'/0v" o pino 8
A titulo de debug, você pode iniciar a serial:
Serial.begin(9600);
======== Aqui finalizam as configurações iniciais. =========
Agora vamos para a parte da função do Loop. O primeiro passo é ler os valores das entradas digitais e atribuir uma ação, para isso iremos utilizar a seguinte chamada:
if (digitalRead(4) == HIGH) { //Aqui criamos uma condição para "quando o pino 4 estiver 'alto')
digitalWrite(8, HIGH) // caso a condição seja verdadeira, definimos o pino 8 como ALTO.
Serial.println("botão 4 ON"); // visualiza no serial monitor a informação quando esta for verdadeira.
} // concluir a condição inicial
else { // Caso a condição seja falsa, ocorre uma ação diferente
digitalWrite(8, LOW) // Neste caso, o pino 8 ficará como baixo
Serial.println("botão 4 OFF"); // visualiza no serial monitor a informação quando esta for verdadeira.
} // finaliza a condição falsa
Observe que o mesmo irá ocorrer para todos os outros pinos.
Observe também que, desta forma, os pinos só ficarão como ALTOS enquanto a entrada estiver recebendo tensão. Logo, se seu botão for um pushbutton (daqueles que ele só fica habilitado enquanto estiver pressionado), será necessário que ele fique sempre pressionado para a entrada ficar em alto.
obs- Caso seja necessário que o botão se comporte como um interruptor, será necessário adaptar o código ou trocar o botão.
Sabendo disso, o próximo passo é ligar os fios e os botões. Aqui não tem mistério.
1- Os botões costumam ter 2 pinos.
2- Ligue o +5v a um destes pinos, e o outro ligue numa entrada digital. Repita o processo para todos os botões/pinos.
obs- A ligação de +5v pode ser feita de botão para botão também, entretanto, o segundo pino do botão não pode ser ligado aos outros. Cada botão deverá ir separadamente para uma entrada digital (neste caso, as entradas 4 á 7).
obs2- se quiser pode colocar um resistor para cada entrada digital, talvez promova alguma segurança (alguém aqui saberá lhe informar melhor, pois os testes que fiz, para este fim, foram muito curtos).
O próximo passo, dependerá do seu rele. Pois tem uns módulos cheio de wifi/usb/uhf/vhf/gps/nasa/dragonballZ/etc.. Se for os modelos simples de 5v, basta ligar a saída digital (8~11) na entrada de sinal de cada um deles, e o GND conectado ao Arduíno.
Ouvi falar que o relé tem um retorno... não tenho certeza. Mas qualquer vídeo que fala sobre módulos de rele irá apontar isso (pois posso estar me confundindo).
No rele, você tem: "saida normalmente aberto", "saida normalmente fechado", "entrada para alimentação". A diferença entre eles é a seguinte:
- Quando o arduino der um sinal baixo/low, o "normalmente aberto" irá fazer a ponte entre a entrada e a lampada.- Quando o arduino der um sinal alto/HIGH, o "normalmente fechado" é que irá fazer a ponte.
(obs: Alguns reles trabalham de forma inversa)
Sendo assim, você conecta o positivo (ou GND) ao rele, e o outro direto na outra ponta (positivo ou GND) (é bom realizar uma pesquisa, pois não sei se os relés funcionam como transistores (NPN/PNP).
obs- não esqueça que os relés costumam ser alimentados por uma fonte secundária.
Edit: Precisei realizar algumas edições, logo, está concluído agora: 21:15h kkkkk…
Adicionado por tiago merces ao 22:03 em 22 agosto 2020
sinal é mostrada para os diversos modelos SCT-013, e onde evidenciei (na cor rosa) o modelo SCT-013-020:
(clique na figura para "zoom")
Veja que o modelo SCT-013-020 é do tipo "saída de tensão". Isso apenas significa que este Sensor já possui um Resistor entre os pinos de saída do transformador de corrente, o que implica que vc não precisa acrescentar um outro Resistor na saída. Este Resistor interno já existente, propicia que a saída tenha um "span" de 1V para uma faixa de medição de 20A. Em outras palavras: para uma corrente de 0A (zero Amper) a tensão entre os pinos de saída do SCT-013-020 será de 0V (zero Volts), e para uma corrente de 20A a tensão de saída será de 1V.
Isto é importante, pois se vc conectar outro Resistor em paralelo com os pinos de saída, resultará em um achatamento não linear da faixa da tensão de saída (a qual neste caso sempre resultará ser menor que 1V). Então para o SCT-013-020, é melhor deixar a saída aberta, sem Resistor adicional conectado em paralelo com a mesma. Atente a isto, uma vez que vc disse estar colocando um Resistor de 97 Ohms.
Mas isto não muda a questão da adequação do sinal para que o mesmo seja melhor convertido através do ADC (seja Arduino UNO, seja ESP32, seja qualquer outra CPU). Me refiro à polarização com dois Resistores formando um divisor de tensão, a fim de gerar um "GND Virtual". Este circuito de adequação pode e deve continuar a ser usado. Mas a qualidade da aquisição de sinal pode ser aprimorada, uma vez que conhecemos a faixa de sinal (1V) e principalmente a faixa de frequência desse sinal, neste caso 60 Hz (frequência da Rede Elétrica AC). Ou seja pode-se acrescentar um Filtro "anti-Alising", a fim de evitar problemas "insolúveis" em termos de ruídos indesejados. Mas isto é bem simples de fazer e posso te mostrar posteriormente como implementá-lo (e isto depende totalmente da Taxa de Amostragem, da qual falo mais adiante).
Agora voltando à questão do seu problema de medição em si.
Eu analisei o Hardware de conexão do módulo LAN8720, descrito pelo Frank Sautter (no link que vc forneceu). Observe que o LAN8720 não é um módulo Ethernet como vc descreveu. Ele é apenas um "PHY" (como eu já desconfiava), e capaz de operar no modo "RMII", o que implica que ele é a camada física mais baixa da Interface Ethernet. Mas isto é apenas um esclarecimento. E como eu disse, analisei a conexão de Hardware do módulo LAN8720 que o tal Frank implementou. Ela está correta, e inclusive aquela "gambi" que ele fez para contornar a questão do CLK do RMII e do GPIO0 do Boot do ESP32 também está ok (há uma ressalva, mas falo sobre isso logo adiante).
No entanto, acho que seria mais robusto alimentar o módulo LAN8720 com um Regulador de 3.3V separado (pode ser um regulador idêntico ao já existente na placa do ESP32). Para tal, aconselho aquelas plaquinhas que possuem algo como o AMS1117-3.3, pois elas já possuem os Capacitores necessários. E o uso de um Regulador separado, evitará problemas posteriores caso vc precise "expandir" seu Sistema.
Sobre aquela "gambi" que o tal Frank fez no Hardware, fique atento. Nem todos os Módulos Osciladores "prontos" possuem o "Enable" do sinal de saída. Veja que no próprio circuito original do Módulo LAN8720, isto não está previsto, conforme evidencio na figura mostrada a seguir:
(clique na figura para "zoom")
Assim se este "Enable" não existir, a "gambi" não terá efeito. E eventualmente um lote ou outro do Módulo poderá ter sido montado com um Oscilador sem o Enable (já que esta característica não é utilizada no circuito original do Módulo).
Também analisei também o trecho de código que vc postou da parte do cáculo do valor RMS da Corrente, e me parece que está Ok. Mas há um outro problema: da forma como vc está fazendo, não caracteriza uma Aquisição temporizada, a qual é absolutamente necessária, visto que a Corrente aquisitada tem uma frequência de 60Hz. Logo, se vc não temporizar a Aquisição dos Samples, de forma que a Taxa de Amostragem seja coerente com o sinal de 60Hz, vai implicar que vc pode ter valores errôneos. E esses erros serão totalmente dependentes dos códigos executados no background do ESP32 (ou seja: difícil ou praticamente impossível de prever). Então, vc precisa mudar isto, o que é bastante simples também. Claro, essa adequação deve estar conforme o funcionamento do ambiente do Mongoose-OS (que vc disse estar usando). Mas precisa ser feito, do contrário seu Sistema de Aquisição estará "ao vento". E note: não é porque já funcionou em uma situação, que irá funcionar em outras.
Mas também há grande possibilidade de haver alguma coisa inadequada no seu Hardware, especificamente no circuito de conexão do SCT-013-020 até o ESP32. Coloque aqui como está esta conexão, e assim poderei dizer se ela está ok ou não. Além disso me permitirá calcular e te mostrar como acrescentar um Filtro anti-Alising para o sinal a ser aquisitado (não se preocupe, é simples e de muito baixo custo). Mas por favor: coloque um desenho, ou um diagrama, ou uma foto que seja claro e não deixe dúvidas sobre um ou outro ponto (porque é muito ruim analisar coisas que não estão realmente claras em termos de circuito).
Segue o esquemático do Módulo LAN8720: "LAN8720-Schematic.pdf"
Abrçs
Elcids…
Adicionado por Elcids Chagas ao 21:15 em 29 maio 2020