PWM com Arduino
O PWM em Arduino possui uma ampla gama de aplicações usadas para controlar dispositivos analógicos usando sinais digitais. A saída dos pinos digitais do Arduino pode ser categorizada em dois níveis de tensão alta, que é 5V ou baixa, o que denota 0V. Usando PWM em Arduino, podemos gerar um sinal com frequência constante, mas com largura variável de pulso. Exemplo mais comum de uso de PWM em Arduino está controlando o brilho de um LED e controlando a velocidade de um motor.
O sinal de modulação da largura de pulso tem duas características seguintes:
Pinos PWM no Arduino Uno
Arduino UNO tem um total de 14 pinos de saída digital de entrada, desses pinos digitais 6 pinos PWM estão disponíveis no Arduino Uno Board. Nos pinos de E/S digital do Arduino UNO. O número de pinos de PWM varia de uma placa para outra.
A velocidade do contador em Arduino determina a frequência dos sinais de PWM. No Arduino Uno, o relógio é igual ao relógio do sistema dividido pelo valor de Prescalers. Três Prescalers armazenam o valor do balcão. Esses três prescaladores são conhecidos como: CS02, CS01 e CS00. Como o número total de pinos de PWM são 6, então três balcões são usados em Arduino Uno, com Prescalers separados para controlar os pinos PWM.
Cronômetro/contra -registros | Pinos PWM |
---|---|
TCCR0B | Controla o pino 6 e 5 |
Tccr1b | Controla o pino 9 e 10 |
TCCR2B | Controla o pino 11 e 3 |
Cada um desses três registros pode configurar três faixas de frequência diferentes para sinais de PWM. Normalmente, por padrão, um Arduino UNO tem as seguintes frequências para pinos PWM:
Pinos Arduino | Frequência PWM |
---|---|
5 e 6 | 980MHz |
9, 10,11 e 3 | 500MHz |
Como usar pinos PWM em Arduino
Pinos digitais no Arduino podem ser configurados usando pinmode (), DigitalRead () e DigitalWrite (). Aqui a função pinmode () define um pino como entrada e saída. Quando configuramos os pinos digitais como a função DigitalRead () é usada ao definir um pino como a função de saída digitalWrite () é usada.
analogwrite ()
Para configurar os pinos PWM, usamos analogwrite () função. Esta função escreve um valor analógico para um pino digital. Pode definir o ciclo de serviço do sinal PWM. Quando a função analogwrite é chamada em um pino específico, uma onda quadrada constante com ciclo de trabalho definido é gerado. Esta onda quadrada permanecerá lá até chamarmos de uma nova função analogWrite () para esse pin ou escrever um novo valor usando DigitalRead () ou DigitalWrite () Função.
Sintaxe
Analogwrite (PIN, Valor)
A função analogwrite () leva dois argumentos:
Outro argumento que é opcional no caso de PWM é a frequência. Se isso não for especificado por padrão, é 500Hz.
O valor analogWrite () define o ciclo de trabalho para os sinais PWM:
Conclusão
PWM em Arduino é uma técnica ou método para controlar dispositivos analógicos usando sinais digitais. Todas as placas Arduino têm pinos de PWM a bordo. 6 pinos PWM estão presentes em Uno do total de 14 pinos digitais. Aqui discutimos como podemos configurar esses pinos usando a função analogwrite ().