pwmWrite()¶
Writes a PWM wave to a pin. You can use this to make an LED get brighter or dimmer, control a servomotor, etc. After a call to pwmWrite(), the pin will output a steady square wave with the given duty cycle. You can change the duty cycle later by calling pwmWrite() again with the same pin and a different duty.
The pins which support PWM have PWM
listed underneath their number
on your board’s silkscreen. These pin numbers are available to your
program in the boardPWMPins
board-specific array. The number of pins which are capable of PWM on
your board is given by the BOARD_NR_PWM_PINS
constant. See your
board’s documentation for these values.
The Arduino function analogWrite() is an
alias for pwmWrite()
, but it is badly named, and its use is
discouraged.
Contents
Example¶
Sets the output to the LED proportional to the value read from the potentiometer:
int analogPin = 3; // potentiometer connected to analog pin 3
void setup() {
pinMode(BOARD_LED_PIN, OUTPUT); // sets the LED pin as output
pinMode(analogPin, INPUT_ANALOG); // sets the potentiometer pin as
// analog input
}
void loop() {
int val = analogRead(analogPin); // read the input pin
pwmWrite(BOARD_LED_PIN, val * 16); // analogRead values go from 0
// to 4095, pwmWrite values
// from 0 to 65535, so scale roughly
}