我大概讲一下实现的原理:正弦波移相φ,当使得大于sin(φ)的值为1,其他值为-1,占空比就跟这个φ值之间有联系。
占空比原理图如下所示。
结果上图,可以实现调节占空比,方波频率,方波个数。
下面是函数的代码:
function y=squarewav(Vm,f,K,n) %参数为幅度,频率,占空比,以及波形个数
% 正弦信号
% f = 1000;% 正弦波频率
w = 2*pi*f;% 正弦波角频率
% Vm = 2;% 正弦幅值
u = (0.5-K)*pi;% 相位
N = 4000;% 调节采样率,采样率越大,波形误差越小
M = n*N;
Fs = N*f;% 采样率:1/f_sameple为采样时间间隔,通常以N倍的信号源来表示
t = [0:M]/Fs;% 采样时间向量(始终采N个点,即刚好采信号源的一个周期)
y_sin = Vm*sin(w*t+u);
for i=1:M+1
if(y_sin(i)>=y_sin(1))
y_plus(i) = Vm;
else
y_plus(i) = -Vm;
end
end
figure
subplot(2,1,1)
plot(t,y_sin,t,y_plus,'r',t,0,'-')
subplot(2,1,2)
ylim([-2.5 2.5])
plot(t,y_plus,'r',t,0,'-')
ylim([-2.5 2.5])
关于STM32 定时器 PWM 实时调节占空比时,预装载特性
最近在调试项目的时候遇到一个奇怪的现象:在调试状态下,给定时器捕获比较寄存器赋不同值,能产生不同占空比的波形(图1).反映到器件上也有不同的电压显示,但是在设备运行的时候,就不行了(图2). 图1 图 ...
Arduino利用TimerOne库产生固定频率和占空比的方波
TimerOne地址: /archive/p/arduino-timerone/downloads ex: #include "TimerOne ...
(五)转载:通用定时器PWM输出
1.TIMER输出PWM基本概念 脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有 ...
nrf51822裸机教程-PWM
先简单介绍一下PWM的原理. 原理很简单. 假设COUNTER是个从0开始递增的计数器.我们设置两个值counter0和counter1在COUNTER计数到counter0的值时候翻转 ...
【转载】 stm32之PWM