Qual é a maneira rápida e elegante de gerar PWM sem um microcontrolador para controlar um servo motor? Com potenciômetro ou outras formas de controlar o ciclo de trabalho com período de correção.
- desculpe pela bagunça, eu quero controlar um servo de hobby.
Respostas:
Eu recomendo o temporizador (GASP!) 555 no modo "astable" . Você encontrará tudo o que precisa no link, mas eu os copiei aqui apenas para você!
O modo Astable fornece uma frequência PWM variável e também permite um ciclo de trabalho ajustável (equações de tempo alto e baixo no link).
O circuito:
Nota: eu adicionaria uma tampa eletrolítica em Vcc (derivação positiva) e GND (derivação negativa) para reduzir o efeito de quedas na tensão da fonte de alimentação.
A frequência PWM:
Alguma defesa para minha resposta em comparação com outras neste post. A maioria das outras respostas requer uma forma de onda intermediária para gerar um sinal PWM variável, como o método de onda / comparador de triângulo comum. Não vejo muito sentido em construir um gerador de ondas triangulares (um circuito significativo em si) como um passo intermediário para resolver o seu problema.
O 555 é um ótimo chip analógico e faz exatamente o que você precisa. Eu gostaria que as pessoas não as odiassem tanto.
fonte
A maneira Ye Olde Phashioned de fazer PWM com ciclo de trabalho controlado analógico é comparar o sinal de controle analógico com uma onda triangular. Você cria um gerador de ondas triangulares que funciona na frequência PWM desejada. Isso é alimentado na entrada negativa de um comparador e o sinal de controle analógico na entrada positiva. O resultado é alto ou baixo, mas o ciclo de serviço é linearmente proporcional ao sinal de controle. Os amplificadores de áudio de classe D anteriores trabalhavam com esse princípio, por exemplo.
Em muitos casos, o PWM não precisava ser super linear, portanto a onda triangular não precisa ter arestas perfeitamente retas. Permitir que eles sejam um pouco exponenciais pode simplificar o circuito.
Adicionado:
Mark Rages apontou que, quando você diz "servo motor", pode estar se referindo aos pequenos motores passivos controlados por posição usados em modelos de aviões e similares. Minha resposta se aplica ao controle de um motor, supondo que você tenha uma tensão analógica proporcional à intensidade com que deseja acionar o motor. Não se aplica a esses "servos de hobby". Eles não são controlados pelo PWM no senso comum desse termo, mas pela largura dos pulsos que geralmente precisam ser de 1 a 2 ms repetidos a cada 20 a 50 ms ou mais. Se esta pergunta é realmente sobre servos de hobby, deve ser corrigida para deixar isso claro.
fonte
Onda triângulo. Comparador. Limiar de controle. Essa é a maneira básica de fazer isso.
Primeiro gere uma onda quadrada de 50Hz. Maneira mais simples:
Eu poderia ter feito isso com dois LM555s, mas precisaria de mais componentes externos.
editar (sobre microcontroladores)
Concordo com Olin (ver comentários) que a exclusão de um microcontrolador é míope (Olin disse "bobo"). Houve um tempo em que o desenvolvimento de um microcontrolador era complicado, mas hoje isso não é mais verdade. Você também pode ter uma interface de programação por alguns euros. A solução pareceria tão fácil que nenhuma solução que não seja do controlador pode competir com ela: você usa um ATTiny5 (Olin usa um PIC10F220) em um SOT23-6. Conecte um capacitor de desacoplamento às conexões de energia e o medidor de potenciômetro na entrada ADC. É isso aí! 3 (três) componentes. Converter a leitura do ADC em uma saída de largura de pulso é tão fácil que é quase ridículo, mesmo para um programador iniciante.
Depois de começar com eles, você verá que os microcontroladores geralmente oferecem uma solução mais simples e mais flexível do que com outros ICs ou componentes discretos.
uma nota
de sua outra pergunta que eu ver que você faça uso de microcontroladores. Por que você quer evitá-los aqui?
fonte
A maneira mais simples de gerar um sinal PWM é alimentar uma onda dente de serra ou onda triângulo em uma entrada de um comparador analógico e uma tensão de controle na outra. Se não for possível obter uma onda triangular pura, é possível aproximar razoavelmente uma passando uma onda quadrada através de um filtro RC, de modo que a saída do filtro oscila entre aproximadamente 1 / 4VDD e 3 / 4VDD e depois escalando a tensão de controle no comparador, de modo que a tensão de controle a, que deve produzir 0,01% do ciclo de trabalho, seja convertida para a tensão mais baixa da onda quadrada filtrada, e a tensão de controle, que deve produzir ciclo de trabalho de 99,99%, seja traduzida para a tensão mais alta do filtro filtrado onda quadrada. Isso produzirá uma largura de pulso que não é linearmente proporcional à amplitude, mas é próxima o suficiente para muitos propósitos.
fonte
Eu recomendo usar um IC de controle de fonte de alimentação de baixa tensão (BiCMOS) como o UCC3803 . A frequência de operação pode ser facilmente configurada com um simples R e C, e o controle do ciclo de serviço é feito facilmente com um potenciômetro. Ele operará em um trilho de 5V.
O UCC3803 é compatível com os pinos da série UCx84x de controladores PWM. Se você deseja fazer um PWM fácil, pode usar o esquema acima, omitindo R1, o 2N2222 e o 5k ISENSE ajustam o pote (apenas amarre o pino 3 no chão). Você provavelmente também pode omitir os dois resistores de 4,7k em série com o pot de ajuste do amplificador de erro e ir diretamente para Vref e Gnd, ou usar um divisor de tensão explícito se o ajuste não for necessário. (Você não especificou se precisa alterar facilmente o ciclo de serviço).
O IC é capaz de conduzir em torno de 1A de corrente. (Se o seu servomotor tiver uma entrada PWM, este é um ponto discutível.)
fonte