How to change PWM Frequency of Arduino USING MATLAB SIMULINK Support package

69 views (last 30 days)
Hello,
i have problem with my project. I use Arduino uno and Simulink. For the control i need a PWM signal with 3000 Hz - 5000 Hz but the Simulink support package (PWM) has only 490 Hz and i can change only the duty-cycle.
What can I do?
I would welcome your response
  15 Comments
Joseph Humphreys
Joseph Humphreys on 26 Feb 2020
@Ken Noé
Can you use your S-functions for an Arduino Mega 2650? I've tried using it for an Uno and it works but when I switch to the Mega 2650 there is no output from the PWM pin.
Daniel Velazquez
Daniel Velazquez on 9 Jul 2021
You can change the frequency in Simulink just double click on the PWM block in the Frequency drop down menu select: Specify and write your desired frequency in Hz.
The problem is the higher the frequency (>100kHz) the lower the resolution of the PWM, but at 5kHz you should have no problem.
...as of July 8, 2021 with ATMEGA 2560.

Sign in to comment.

Answers (1)

Greg Wolff
Greg Wolff on 15 Aug 2019
You cannot change the PWM frequency of the PWM block found in the Arduino hardware support package.
You can however create custom device driver blocks. There is a good resource here:
that has various examples, all built around supporting Arduino boards.

Communities

More Answers in the  Power Electronics Control

Categories

Find more on Arduino Hardware in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!