极其简单的且可精确步进调频的宽频方波发生器
不信幼儿 2021-05-04 03:01:27 因某些需求,要做一个测量多种小功率变压器的步进方波频响。觉得用micropython的PWM是最为方便及精确的。除掉再加一个反相器及功率输出部件之外,用一块ESP WROOM 32模板即可实现(已包括不用其他硬件的加减键)。反相器及功率输出就根据需求自行配置。
特性及用材:
1. 输出方波频率最高可达3MHZ
2. 输出方波频率值、最低方波频率值及步进频率,均可精确设置到1HZ
3. 占空比可根据需求自行设置 1 - 1023
4. 用触摸加减键步进方波频率
5. ESP WROOM 32模板
6. 触摸加减键就用ESP32的GPIO27及GPIO32脚,不用再加任何硬件
程序如下:
#test POWER PWM ESP32 20210504.py
from machine import Pin, PWM, freq, TouchPad
freq(240000000) #CPU工作频率设置240MHZ
#pinLED = Pin(2, Pin.OUT)
pwmFreqLow = 1000 # PWM最低频率设为1KHZ,可设置到10HZ
pwmFreqHigh = 3000000 # PWM最高频率设为3MHZ
pwmFreq = 100000 # PWM起始频率设为100KHZ
pwmStep = 1000 # PWM步进频率设为1KHZ
pwm20 = PWM(Pin(16), freq = pwmFreq, duty = 512) # PWM输出 占空比0.5
print(' 初始 PWM 频率 ' + str(pwmFreq) + ' HZ')
while True:
Touch32 = TouchPad(Pin(32)).read() #触摸键+,PWM频率加
Touch33 = TouchPad(Pin(27)).read() #触摸键-,PWM频率减
#print(str(Touch32) + " " + str(Touch33)) #打印触摸键值
if Touch32 < 800: #触摸键值有效
pwmFreq = pwmFreq + pwmStep # PWM频率加
if (pwmFreq > pwmFreqHigh): pwmFreq -= pwmStep
if Touch33 < 800: #触摸键值有效
pwmFreq = pwmFreq - pwmStep # PWM频率减
if (pwmFreq < pwmFreqLow): pwmFreq += pwmStep
pwm20 = PWM(Pin(16), freq = pwmFreq, duty = 512) # PWM输 占空比0.5
print('pwmFreq = ' + str(pwmFreq)) #打印PWM频率值
欢迎拍砖,一定洗耳恭听。