- Projetos Finalizados
- Projetos em Andamento
- Treinamentos
- Conhecimentos
-
- Conceitos
- Outros
PWM, do inglês Pulse Width Modulation, é um método para simular sinais analógicos utilizando sinais digitais. Essa técnica consiste na emissão de uma onda com frequência constante mas com períodos de nível lógico alto variado. Esse período é chamado de duty cycle. Abaixo se uma ilustração da “onda” gerada:
Essa função funciona em algumas portas do Arduino, podem variar de acordo com a versão do Arduino e são sinalizadas, na maioria, com o símbolo “~” . No caso do Uno, as únicas portam quem comportam essa função são: 3, 5, 6, 9, 10 e 11.
Para gerar esse tipo de onda, utilizamos a função analogWrite(pino, valor), onde pino é o pino configurado como saída e valor é o duty cycle, podendo variar entre 0 (0 % duty cycle) e 255 (100% duty cycle).
/* Código que gera na porta 3 uma saída que varia de 0 à 5 volts */ void setup() { // inicializa o pino como saída pinMode(3, OUTPUT); } void loop() { // Varia o duty cycle de 0 à 255 na porta 3 gerando tensões variadas for(int duty =0; duty<256; duty++) analogWrite(3,duty); }