Aqui você vê as diferenças entre duas revisões dessa página.
Próxima revisão | Revisão anterior | ||
programacao-arduino:pwm [2018/12/20 17:35] patrickof criada |
programacao-arduino:pwm [2020/11/26 09:08] (atual) bandeira |
||
---|---|---|---|
Linha 1: | Linha 1: | ||
=======PWM========= | =======PWM========= | ||
- | 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 encontram exemplos de //duty cycle//: | + | 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: |
\\ | \\ | ||
\\ | \\ | ||
Linha 7: | Linha 7: | ||
\\ | \\ | ||
- | Essa função funciona em algumas portas do Arduino e 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. | + | 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. |
\\ | \\ | ||
\\ | \\ | ||
- | {{ wiki:arduino_uno.jpg }} | + | {{ :programacao-arduino:arduino.png?400 |}} |
\\ | \\ | ||
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//). | 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//). | ||
Linha 25: | Linha 25: | ||
void loop() { | void loop() { | ||
- | // Varia o duty cycle de 0 à 255 na porta 3 gerando um tensões variadas | + | // Varia o duty cycle de 0 à 255 na porta 3 gerando tensões variadas |
for(int duty =0; duty<256; duty++) | for(int duty =0; duty<256; duty++) | ||
analogWrite(3,duty); | analogWrite(3,duty); |