极其简单的且可精确步进调频的宽频方波发生器

不信幼儿 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频率值

欢迎拍砖,一定洗耳恭听。
...全文
110 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
不信幼儿 2021-05-05
  • 打赏
  • 举报
回复
加了一个CD4096及LM298驱动器,利用上面的精确步进调频的宽频方波发生器,已完成了20W环形功率变压器的精确工作数据。

27,382

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧