Component: PWM (Internal) (General Output): Difference between revisions
No edit summary |
m Text replacement - "style="background-color:#EAE1EA;"" to "class="mtx-class-propfolder"" |
||
| (5 intermediate revisions by the same user not shown) | |||
| Line 100: | Line 100: | ||
===ChangePeriod=== | ===ChangePeriod=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''ChangePeriod''' | ||
|- | |- | ||
| colspan="2" | Sets the overall period and prescaler of the output PWM signal. | | colspan="2" | Sets the overall period and prescaler of the output PWM signal. | ||
| Line 124: | Line 124: | ||
===Disable=== | ===Disable=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''Disable''' | ||
|- | |- | ||
| colspan="2" | Disables a PWM channel and allows the default output / input state to be resumed | | colspan="2" | Disables a PWM channel and allows the default output / input state to be resumed | ||
| Line 138: | Line 138: | ||
===Enable=== | ===Enable=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''Enable''' | ||
|- | |- | ||
| colspan="2" | Enables a PWM channel as an output overriding the default output pin state. | | colspan="2" | Enables a PWM channel as an output overriding the default output pin state. | ||
| Line 152: | Line 152: | ||
===SetDutyCycle=== | ===SetDutyCycle=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SetDutyCycle''' | ||
|- | |- | ||
| colspan="2" | Sets the PWM duty cycle in terms of on/off based on the current period setting. E.g. if period = 255 then duty of 128 is equal to 50% on and 50% off. 16-bit PIC users should use the 10bit duty function to access the full range. | | colspan="2" | Sets the PWM duty cycle in terms of on/off based on the current period setting. E.g. if period = 255 then duty of 128 is equal to 50% on and 50% off. 16-bit PIC users should use the 10bit duty function to access the full range. | ||
| Line 171: | Line 171: | ||
===SetDutyCycle10Bit=== | ===SetDutyCycle10Bit=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SetDutyCycle10Bit''' | ||
|- | |- | ||
| colspan="2" | PIC/AVR - Sets the full scale PWM duty cycle based on the current period setting. If period = 255 then Duty of 512 is equal to 50%. 16-bit PICs have a 16-bit period range available. If period = 65535 then Duty of 32768 is equal to 50%. | | colspan="2" | PIC/AVR - Sets the full scale PWM duty cycle based on the current period setting. If period = 255 then Duty of 512 is equal to 50%. 16-bit PICs have a 16-bit period range available. If period = 65535 then Duty of 32768 is equal to 50%. | ||
| Line 190: | Line 190: | ||
===SetFrequency=== | ===SetFrequency=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SetFrequency''' | ||
|- | |- | ||
| colspan="2" | Sets a PWM of the specifed frequency at a duty of 50% Ideal use is a frequency generator | | colspan="2" | Sets a PWM of the specifed frequency at a duty of 50% Ideal use is a frequency generator | ||
| Line 210: | Line 210: | ||
==Property reference== | ==Property reference== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-prop-icon.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''Properties''' | ||
|- | |- | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]] | ||
| width="90%" | | width="90%" class="mtx-class-propfolder" | Connections | ||
|- | |- | ||
|- | |- | ||
| Line 240: | Line 240: | ||
| colspan="2" | Allows the PWM hardware pin to be reassigned to another pin | | colspan="2" | Allows the PWM hardware pin to be reassigned to another pin | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]] | ||
| width="90%" | | width="90%" class="mtx-class-propfolder" | PWM Frequency | ||
|- | |- | ||
|- | |- | ||
| Line 274: | Line 274: | ||
| colspan="2" | Displays the frequency of PWM cycles per second. | | colspan="2" | Displays the frequency of PWM cycles per second. | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]] | ||
| width="90%" | | width="90%" class="mtx-class-propfolder" | Calculations | ||
|- | |- | ||
|- | |- | ||
| Line 303: | Line 303: | ||
| colspan="2" | Applies the calculated period and prescaler settings to the PWM component default settings. | | colspan="2" | Applies the calculated period and prescaler settings to the PWM component default settings. | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]] | ||
| width="90%" | | width="90%" class="mtx-class-propfolder" | Simulation | ||
|- | |- | ||
|- | |- | ||
Latest revision as of 14:36, 13 July 2026
| Author | Matrix Ltd |
| Version | 12.0 |
| Category | General Output |
PWM (Internal) component
Pulse Width Modulation, a versitile way of generating a digital pulse using mark / space modulation. Uses the capture compare peripherals onboard most Microcontrollers to generate accurate waveforms without any intervention from the processor. Useful for generating audio, controlling the speed of motors, brightness of LED etc.
Version information
Library Version, Component Version, Date, Author, Info 11, 11.0, 15-10-24, BR, Fixed change frequency and duty for ESP32 12, 12.0, 15-10-24, MW, Fixed Digital version as visually looks wrong
Detailed description
No detailed description exists yet for this component
Examples
Here is a basic example to control the PWM duty based on an ADC reading.
Digital PWM trace
Here is another basic example which ramps the PWM duty cycle up and down. If the PWM output pin is connected to a LED and series resistor then the LED will smoothly transition between on bright and off.
Macro reference
ChangePeriod
Disable
| Disable | |
| Disables a PWM channel and allows the default output / input state to be resumed | |
| Return | |
Enable
| Enable | |
| Enables a PWM channel as an output overriding the default output pin state. | |
| Return | |
SetDutyCycle
SetDutyCycle10Bit
SetFrequency
| SetFrequency | |
| Sets a PWM of the specifed frequency at a duty of 50% Ideal use is a frequency generator | |
| Frequency | |
| Enter frequency in Hz | |
| Return | |
Property reference
Component Source Code
Please click here to download the component source project: FC_Comp_Source_PWM_Output.fcfx
Please click here to view the component source code (Beta): FC_Comp_Source_PWM_Output.fcfx
