PWM
An IO class that provides access to the pulse-width modulation capability of pins.
Constructor
Section titled “Constructor”Creates a new PWM object instance.
PWM(options)Parameters
Section titled “Parameters”options
An object of properties used to construct the class.
pin- a pin specifier indicating the GPIO pin to operate as PWM output.
hz(optional) - a number specifying the requested frequency of the PWM output in hertz. The default is device dependent.
Exceptions
Section titled “Exceptions”If the constructor requires a resource that is already in use — whether by a script or the native host — an Error exception is thrown.
Instance Properties
Section titled “Instance Properties”Includes properties of the IO Class Pattern. Specific to this class:
format
Section titled “format”Always returns "number". The string value set by the constructor options or by the script at any time to change how it reads data.
resolution
Section titled “resolution”Read-only property indicates the number of bits of resolution in values passed to the write method, e.g 10.
Read-only property indicates the frequency of the PWM.
Instance Methods
Section titled “Instance Methods”Sets the current count on the IO instance.
write(value)Parameters
Section titled “Parameters”value
A number 0 and a maximum value based on the resolution of the PWM output.
Examples
Section titled “Examples”The class can be imported from the embedded namespace or found on the host device global object:
import PWM from "embedded:io/pwm";const PWM = device.io.PWM;Hello Dimming Blinky
Section titled “Hello Dimming Blinky”This example instantiates a PWM output to control an LED based on the global device pin names and fade it on or off using System.setInterval.
const led = new device.io.PWM({ pin: device.io.led,});
const range = (2 ** led.resolution) - 1;let step = 5;let value = 0;
System.setInterval(() => { value += step;
if (value < 0 || value > range) { step *= -1; value += step; }
led.write(value)}, 5)