analogWrite()
Descrição
Aciona uma onda PWM (descrição (Em Ingês)) em um pino. Pode ser usada para variar o brilho de um LED ou acionar um motor a diversas velocidades. Após a função analogWrite() ser chamada, no pino haverá uma onda quadrada com o duty cycle (ciclo de trabalho) especificado até a próxima chamada de analogWrite() (ou uma chamada de digitalRead() ou digitalWrite() no mesmo pino). A frequência do sinal PWM na maioria dos pinos é aproximadamente 490 Hz. No Uno e placas similares, pinos 5 e 6 usam uma frequência de aproximadamente 980 Hz.
Na maioria das placas Arduino (as placas com o ATmega168 ou ATmega328), essa função funciona nos pinos 3, 5, 6, 9, 10, e 11. No Arduino Mega, essa funciona nos pinos 2 a 13 e 44 a 46. Placas mais antigas com o ATmega8 suportam analogWrite() apenas nos pinos 9, 10, and 11.
O Arduino DUE suporta analogWrite() nos pinos 2 a 13, mais pinos DAC0 e DAC1. Diferente dos pinos PWM, DAC0 e DAC1 são conversores Digital-Analógicos, e saídas analógicas legítimas.
Você não precisa chamar pinMode() para configurar um pino como saída antes de chamar analogWrite().
A função analogWrite() nada tem a ver com os pinos analógicos ou a função analogRead().
Sintaxe
analogWrite(pino, valor)
Parâmetros
- pino: o pino escolhido do Arduino. Tipos de dados permitidos: int.
- valor: o duty cycle: entre 0 (sempre desligado) and 255 (sempre ligado). Tipos de dados permitidos: int
Retorna
Nada
Código de Exemplo
Controla a saída para um LED proporcionalmente a um valor lido de um potenciômetro.
Hardware Required
Wiring Diagram
This image is created using Fritzing. Click to enlarge image
Arduino Code
For more detailed instruction, see Arduino - Potentiometer fade LED
※ Notas e Advertências:
- As ondas PWM generadas nos pinos 5 e 6 terão duty cycles maiores que o esperado. Isso acontece porque ocorrem interações com as funções millis() e delay(), as quais compartilham o mesmo timer (temporizador) interno usado para gerar essas saídas PWM. Isso será constatado principalmente em duty-cycle baixos (ex. 0 - 10) e podem resultar em um valor de 0 não desligando completamente a saída nos pinos 5 e 6.
- The analogRead() and analogWrite() functions do NOT read and write the same thing. analogRead() function reads the analog value which is converted from the voltage. analogWrite() function writes PWM signal. If you use the analogWrite() function first, and then use analogRead() function to read the value on the same pin, the read value is diferent from the wrote value. In other word, analogRead() function uses ADC (Analog to Digital) converter, but analogWrite() function does NOT use DAC (Digital to Analog) converter.
- The analog input pins can be used as digital pins, referred to as A0, A1, etc. The exception is the Arduino Nano, Pro Mini, and Mini's A6 and A7 pins, which can only be used as analog inputs.
Ver Também
- Linguagem : analogRead()
- Linguagem : analogReference()
- Linguagem : analogWriteResolution()
- Exemplo : Arduino - Fade LED
- Exemplo : Arduino - Servo Motor
- Exemplo : Blink
- Definição : PWM
※ ARDUINO BUY RECOMMENDATION
Arduino UNO R3 | |
Arduino Starter Kit |