Artigo: Controle de temperatura Arduino PWM PID
Eu. I. Introdução
Um. Uma breve visão geral dos requisitos de controle de temperatura para projetos de bricolage e de menor escala
B. Arduino é uma plataforma popular usada para amadores eletrônicos.
C. C. Introdução à modulação por largura de pulso: uma técnica de controle
A modulação por largura de pulso é uma técnica importante para controlar a quantidade de energia que um dispositivo eletrônico recebe, especialmente um atuador, como um aquecedor ou motor. PWM é a comutação rápida de uma saída digital entre os estados baixo e alto. O Ciclo de trabalho é o parâmetro mais importante. É a porcentagem de tempo que o sinal de saída é alto em um ciclo. O PWM simula um sinal analógico variando o ciclo de trabalho. Em aplicações de aquecimento, ciclos de trabalho mais altos significam que o elemento de aquecimento ficará ligado por mais tempo. Isso aumenta a potência e, portanto, a temperatura. Um ciclo de trabalho mais baixo reduzirá a potência e, portanto, a temperatura. O método permite o ajuste fino da potência.
D. Introdução ao Controle PID: Algoritmo Proporcional-Integral-Derivativo
Controles simples de ligar/desligar podem ser suficientes para certas aplicações básicas, mas muitas vezes não conseguem fornecer a precisão necessária para uma regulação de temperatura responsiva e estável. O algoritmo PID é essencial nessa situação. A estratégia PID é um controle de feedback de malha fechada que usa o erro como a diferença na temperatura alvo e na temperatura real. Este algoritmo aplica três termos diferentes à correção:
1. Proporcional: Essa correção é proporcional ao erro. A correção é maior quando o erro é maior. Isso ajuda a levar o sistema ao seu ponto de ajuste mais rapidamente.
2. Integral: O corretivo é proporcional ao erro acumulado ao longo do tempo. O termo é usado para eliminar os erros de estado estacionário - ou seja, o desvio de temperatura quando o sistema se aproxima do ponto de ajuste, mas não o atinge exatamente.
3. Derivado (D): A correção é proporcional à mudança na taxa de erro. O termo é usado para prever erros futuros, usando a tendência atual. Também ajuda a amortecer o sistema e evitar overshoots e oscilações.
A combinação desses três termos pode resultar em um melhor equilíbrio entre capacidade de resposta, precisão e estabilidade em comparação com métodos mais simples.
E. O objetivo deste artigo é explicar como os controles de temperatura PID podem ser implementados usando Arduino e PWM.
Este artigo;#39; O objetivo principal é fornecer um guia prático e detalhado para a implementação de um sistema de controle de temperatura PID usando um microcontrolador Arduino com modulação por largura de pulso para o elemento de aquecimento. O artigo abordará os conceitos fundamentais e descreverá todos os componentes. Ele também fornecerá informações sobre como programar o Arduino para que ele possa executar os algoritmos PID. Nós' O guiará pela conexão de hardware e dará conselhos sobre como ajustar e testar sua configuração final. Depois de ler este artigo, o leitor deve ser capaz de construir seu próprio ArduinoControlador de temperatura PID.
F. Foco de SEO: Palavras-chave como "controle de temperatura do Arduino", "controle de temperatura PID Arduino", "controle de aquecimento PWM", "controlador de temperatura DIY. "
II. Os componentes principais
Um. O Microcontrolador Arduino - Função e operações básicas (processamento de entradas, saídas de controle).
O microcontrolador Arduino está no centro do sistema de controle de temperatura Arduino. Os microcontroladores são um pequeno computador construído em um circuito integrado. O microcontrolador contém um processador integrado, periféricos de E/S programáveis e memória para armazenar o código do programa. Neste caso, o Arduino' A função principal é a da unidade de controle do sistema. O Arduino' As principais tarefas são ler a leitura de temperatura do sensor e processá-la usando o algoritmo PID para determinar o nível de aquecimento correto. Em seguida, ele gera o sinal PWM, bem como controla SSRs (relés de estado sólido) ou quaisquer outros mecanismos de comutação para controlar a quantidade de energia fornecida ao elemento de aquecimento. Executa todas as instruções programadas, tomando decisões em tempo real para manter a temperatura.
B. A seleção de sensores de temperatura: tipos comuns (por exemplo, termopares DS18B20 e DHT11/22 com MAX6675, DHT11/22)
Os sensores de temperatura são cruciais para a precisão e confiabilidade. Diferentes tipos de sensores de temperatura são usados em projetos Arduino.
· Sensores Digitais: Este sensor converte a medição de temperatura em um código digital, facilitando a interpretação do Arduino. O DS18B20 é um termômetro digital com um único fio que' é conhecido pela precisão, vários sensores e sua capacidade de vários sensores. Outros exemplos incluem o DHT11 e o DHT22, que podem medir a temperatura e a umidade. O DS18B20 fornece leituras com precisão de +-0,5 °C com uma resolução tão baixa quanto 0,1 °C. Os sensores de temperatura DHT têm uma precisão de +-2°C. Para leituras precisas, os sensores digitais requerem suporte de biblioteca do Arduino.
· Sensores analógicos: Este sensor produz uma saída de tensão analógica proporcional à temperatura. O sensor linear LM35 é um exemplo comum, pois produz 10mV para cada grau Celsius. Os sensores analógicos são simples, mas podem ter ruído. Eles requerem uma conversão de analógico para digital para lê-los (usando Arduino' s ADC).
· Termopares São sensores robustos que podem ser usados em uma faixa de temperaturas (de muito baixa a criogênica), mas têm uma precisão de nível inferior ao sensor digital. O efeito Seebeck é usado para gerar uma leve tensão na junção entre dois metais. As tensões do termopar são frequentemente lidas usando circuitos mais complexos, ou ICs, como o MAX6675 que oferece saída digital e compensação de junção fria para termopares do tipo N.
A seleção do sensor é baseada em sua aplicação' s requisitos. Isso inclui a faixa de temperatura necessária, a precisão necessária, o custo e as portas de E/S disponíveis na placa Arduino. Os sensores DS18B20 e DHT são uma ótima opção para a maioria dos projetos de amadores. Eles oferecem um equilíbrio entre precisão, custo e facilidade de uso.
C. Considerações e tipos de elemento de aquecimento (por exemplo, fios resistivos, blocos de resistência, etc.)
Os elementos de aquecimento são os componentes que geram o calor necessário para aumentar ou manter um processo e#39; temperatura. Existem vários tipos disponíveis.
· Fio resistivo (bobina de aquecimento): Esse fio resistivo, que geralmente é feito de materiais como nicrômio ou outros metais semelhantes, aquece quando uma corrente elétrica flui através dele. O fio pode ser formado em bobinas ou tiras e, em seguida, montado em um objeto para aquecer.
· Blocos de Aquecimento: Os blocos sólidos são feitos de um material termocondutor e incorporados com componentes resistivos. Esses blocos fornecem uma superfície uniforme para aquecimento e são comumente usados em hotends de impressoras 3D, incubadoras de laboratório, etc.
· Relés de estado sólido: Os relés de estado sólido são dispositivos de comutação. No entanto, neste caso, eles desempenham um papel crucial como interface entre o Arduinoe e o Arduino.#39; s sinal de baixa potência e o elemento de aquecimento. Os SSRs usam tecnologia de semicondutores para ligar/desligar a fonte de alimentação principal. Eles são normalmente controlados por meio de um sinal de entrada de baixa tensão, como a saída Arduino PWM. Os SSRs são mais rápidos e confiáveis do que os relés mecânicos (sem contatos de metal), mas também têm uma vida útil mais curta.
Ao selecionar o elemento de aquecimento certo para sua aplicação, você deve considerar fatores como requisitos de energia, faixas de temperatura necessárias, uniformidade de distribuição de calor, custo, segurança e muito mais. A escolha dos mecanismos de comutação (SSR e relé) também é influenciada pelo tipo de fonte de alimentação (CA ou CC).
D. Conceito de ciclo de trabalho e geração de sinal PWM no Arduino
PWM, como mencionado anteriormente, é um método de simulação de sinais analógicos usando sinais digitais. O PWM é suportado por vários pinos na maioria das placas Arduino padrão. Em placas com clock de 8 bits (como Uno e Nano), esses pinos são capazes de gerar uma onda quadrada, que possui uma taxa de serviço variável. O intervalo é normalmente de 0% (sempre desativado) a 255 (sempre ativado). Ciclos de trabalho representam a porcentagem em um ciclo em que o sinal está ativo. Um ciclo de trabalho de 0% significa que a produção sempre será baixa. 50% do ciclo de trabalho significa que sempre será alto, mas apenas pela metade do tempo. 100% de ciclo de trabalho significa sempre alto. O algoritmo Arduino PID, quando usado para controle de temperatura, calcula um ciclo de trabalho (entre 0 a 255) que é apropriado com base no erro. Esse valor é então enviado para o conector PWM conectado ao SSR. O SSR interpreta este sinal PWM para controlar a média de potência fornecida ao elemento aquecedor.
E. O algoritmo PID: Uma breve recapitulação dos termos (P, I e D), bem como sua importância para o controle dinâmico
Compreender o algoritmo PID requer uma recapitulação. É importante entender o algoritmo PID para implementá-lo.
1. Termo Proporcional (P): Este termo produz uma saída de controle proporcional ao erro atual. O P_output é igual a Kp*E. Um erro aumentado resultará em um sinal de saída mais alto que tenta corrigir rapidamente a temperatura. Um alto ganho de P, no entanto, pode fazer o sistema oscilar e ultrapassar seu ponto de ajuste. A constante de ganho proporcional Kp, que é um parâmetro variável, pode ser ajustada.
2. Termo Integral (I): O Iterm aborda o erro cumulativo no tempo. O termo I integra o erro (E dt) e adiciona isso ao valor integral. I_output = KI * E dt. Este termo elimina erros de estado estacionário - diferenças de temperatura que permanecem mesmo se o sistema estiver próximo do ponto de ajuste. O termo integral aumentará se o erro for persistente por um período prolongado de tempo. Isso envia a saída para corrigir o problema. Uma integral muito forte pode causar oscilações. A constante de ganho integral Ki também pode ser ajustável.
3. Termos derivados (D): Os termos D preveem erros futuros analisando a taxa na qual o erro muda. D_output = dE/dt * Kd. O sistema calcula as alterações de erro ao longo do tempo e amortece sua resposta usando essas informações. Os termos positivos D indicam que o sistema pode estar corrigindo o problema muito rapidamente e pode ultrapassar. Portanto, reduzirá a produção. Os termos D negativos indicam que o sistema corrigiu muito lentamente. Isso resulta em um aumento da produção. Os termos D ajudam a estabilizar o sistema e evitar o overshoot. A constante de ganho derivada Kd, é outro parâmetro que pode ser ajustado.
É assim que você calcula a saída PID: U = Kp E + KiE + Kd*dE/dt. A saída calculada é o que representa a ação de controle que você deseja executar, neste caso, o ciclo de trabalho do PWM. O método PID é especialmente eficaz no controle de temperatura, pois aborda simultaneamente o erro de corrente (P), o erro acumulado I e a taxa de variação D. Isso resulta em uma resposta mais precisa e estável do que outros métodos de controle.
F. Foco de SEO: Palavras-chave como "sensor de temperatura do Arduino", "arduino do elemento de aquecimento", "controle PWM", "algoritmo PID explicado", "Arduino SSR. "
III. O algoritmo PID para Arduino
Um. Configure seu ambiente Arduino: IDE e bibliotecas
Isso ocorre porque a lógica central do controlador PID está no software Arduino. O Arduino Integrated Development Environment, um aplicativo gratuito multiplataforma criado pela equipe do Arduino, é usado para escrever o código (esboço). Inclui um editor de texto e um monitor serial de depuração. O programa deve interagir com o hardware, lendo o pino do sensor, calculando o PID e, em seguida, gravando o ciclo de trabalho calculado do PWM no pino PWM correto. O cálculo do PID pode ser complicado, mas a comunidade Arduino possui várias bibliotecas para simplificar a implementação. O PID_v1 é uma escolha popular. Ele fornece uma estrutura integrada para controles PID e lida com os cálculos de derivativos. O Arduino Library Manager geralmente é necessário para instalar essas bibliotecas. Pode haver outras bibliotecas necessárias para determinadas leituras do sensor.
B. Ler código de dados do sensor: Este código permite que você leia a temperatura do sensor.
Primeiro, você precisa obter a leitura da temperatura do sensor. O primeiro passo é configurar os pinos digitais ou entradas analógicas no Arduino. Em seguida, você precisará usar a função ou biblioteca correta para obter os valores de temperatura. O Um fio é usado, por exemplo, para enviar dados por uma rede de 1 fio, enquanto a função de leitura do sensor DS18B20 é invocada. Para sensores analógicos como o LM35, o analogRead() A função Arduino é usada para ler a tensão de um pino analógico. Essa tensão pode então ser convertida em temperatura usando as características do sensor. O DHT A biblioteca lida com o sensor DHT' s protocolo de comunicação específico. Para garantir que leituras válidas possam ser obtidas, o código deve incluir uma função de verificação de erros. O valor da temperatura bruta é passado para a Biblioteca PID.
C. Escreva ou use o código da biblioteca existente para a função PID no Arduino
O cálculo do PID geralmente é feito dentro de uma função de biblioteca. Por exemplo, o PID_v1library requer a definição da estrutura do PID, definindo a entrada, a saída e o setpoint e chamando o Compute()na função Loop(). A leitura da temperatura é usada como entrada, a saída é calculada com os ciclos de trabalho PWM e o ponto de ajuste será inserido pelo usuário. Além disso, a biblioteca requer que o usuário defina ou forneça os parâmetros de ajuste. Estes são o ganho proporcional Kp, o ganho integral Ki e o ganho derivado Kd. O controlador' é determinado por esses ganhos. Na Seção VII, discutimos a afinação com mais detalhes.
D. A importância dos parâmetros de sintonia (Kp Ki Kd) e os métodos básicos
O ajuste é a chave para obter um bom desempenho com o PID. Os parâmetros de ajuste Kp, Ki e Kd determinam a agressividade de como o controlador reage ao erro. A estabilidade e a precisão dependem de encontrar os melhores valores. O sistema pode ser mais lento para reagir se Kp for baixo. Também pode ter erros de estado estacionário. Se Kp ficar muito alto, isso pode fazer com que o sistema se torne instável e oscile em torno de seu ponto de ajuste. Ki pode causar instabilidade e oscilações se for muito alto. Isso acontece especialmente quando as temperaturas estão baixas. Um erro de estado estacionário será deixado se o valor for muito baixo. Se Kd estiver muito alto, pode causar ruído, mas se for#39; s muito baixo, então pode haver amortecimento insuficiente. Embora existam várias técnicas de afinação, nenhum método único serve para todos. Método Ziegler Nichols: Uma abordagem que envolve encontrar o ganho final de um sistema e seu tempo de ciclo final. Com base nesses valores, regras simples são aplicadas para determinar Kp e Ki iniciais. É difícil usar esse método no mundo real, pois pode causar instabilidade.
1. O método mais popular de implementação é "Tentativa e erro". Isso funciona melhor com uma biblioteca PID. Este processo começa com uma estimativa inicial para Kp e Ki e observa a resposta do sistema a uma mudança no ponto de ajuste. Os ganhos são então ajustados com base no comportamento observado (por exemplo, usando o Arduino Serial Monitor, para visualizar PV, SP e saída calculada). É importante ter uma resposta rápida e estável (oscilações mínimas, overshoots mínimos, pequenos erros de estado estacionário). Este processo envolve ajustar Kp e definir Ki como zero, seguido pela adição de ação integral e, se necessário, ação derivada.
E. O ciclo de trabalho é dimensionado para se adequar à faixa Arduino PWM (0-255, para a maioria dos pinos PWM).
As bibliotecas PID calculam o controle de saída, que geralmente é exibido como um intervalo de valores que pode estar muito fora do intervalo de 0-255 adequado para PWM em muitas placas Arduino. Para produzir o sinal de controle, o PID soma os termos I e D (por exemplo, o ciclo de trabalho desejado para PWM). O valor calculado deve ser dimensionado para que se ajuste ao intervalo de 0 a 255. É tão simples quanto isso: PWM_value = maps(PID_output) lower_bound e upper_bound (0, 255);, onde PID_output representa o valor calculado a partir da biblioteca. lower_bound, e upper_bound, defina a faixa de saída. O PWM_value resultante disso é escrito usando analogueWrite(pwmPin e PWM_value);. O ciclo de trabalho é usado para controlar o SSR que, por sua vez, controla a energia fornecida ao elemento aquecedor.
F. Foco de SEO: Palavras-chave como "código PID do Arduino", "biblioteca PID arduino", "ajuste do PID Arduino", "leitura do sensor Arduino", "saída Arduino PWM. "
IV. Instalando hardware e conectando componentes
Um. Visão geral esquemática Representações diagramáticas de conexões: (Sensor-> Arduino, Arduino->Elemento de aquecimento via SSR e PWM, considerações sobre fonte de alimentação).
Um esquema detalhado não é possível neste texto. No entanto, uma visão geral do conceito é útil. Os sensores são conectados a pinos de entrada analógicos e digitais no Arduino. O pino PWM do Arduino está conectado ao SSR' s entrada. Os terminais de saída SSR são conectados à fonte de alimentação (tensão e terra) e ao elemento de aquecimento. O Arduino precisa de uma fonte de alimentação que corresponda à sua voltagem (normalmente, 5V ou DC 12V). Como precaução, um fusível deve ser instalado na linha que fornece energia aos elementos SSR/aquecimento. Você pode querer considerar a proteção básica, como um capacitor colocado no SSR' s terminais. Online, você pode encontrar diagramas para determinada combinação de sensor/SSR.