制作一个自己的灭弧器
本帖最后由 薛定谔的猫 于 2014-8-27 15:37 编辑

在特斯拉线圈中一个很重要的部分就是灭弧器。

传统的555灭弧器普遍存在低ontime下不稳定,难以精确定量输出,数据不直观,RC设计繁琐,制作良品率低等问题。

而使用单片机的灭弧器又对玩家的技术水品要求比较高,但是单片机精确定量,直观显示的优势又是显而易见。

这里我们抛砖引玉,使用目前市面上非常常见的开源硬件arduino来制作一个简单易用的灭弧器。

(仅简单的介绍一个实例,不对单片机的技术细节问题作出介绍,有问题欢迎大家多多交流)


1、Hardware

格式工厂QQ图片20140827044656.jpg      格式工厂QQ图片20140827044710.jpg


这里我们使用高压局前段时间开发的一款硬件,基于arduino UNO设计,MCU使用MEGA328,USB2TTL使用FT232,增加了光纤头,MIDI接口等外设。

shield上有USB2MIDI,I2C扩展并口(主要用来驱动1602 2004等并口显示屏)等芯片,附带了四个脉冲按键和两个E12编码器。

由于开发阶段仓促和前期考虑不周等原因,这俩板子现在有一打bug(图中可以看到大量跳线),所以暂不对大家开放

首先讲一下硬件的连接部分。

为了实现1602显示状态,两个编码器设定灭弧的频率和工作周期,并且用光纤头输出等功能,我们在硬件上做出如下设计:

1)减少IO使用,用I2C扩展芯片PCF8574T扩展出四线并口用于驱动LCD(具体接法和本文用到的arduino I2C1602库见附件);
                                                            
attachment icon IIC模块资料.zip 1.19MB ZIP 63次下载

2)使用中断方式读取编码器状态,需要将编码器连接在mcu的外部中断脚上,mega328有PD2、PD3两个中断引脚,就是arduino UNO板子上的数字IO口 2、3
                                                             QQ截图20140827051231.jpg

3)我们随便找一个IO用于输出灭弧信号,这里使用的是PD5,arduino的IO5
                                                             QQ截图20140827051454.jpg


这样基本的硬件已经搭建完成了。


2、Software

1)首先我们介绍灭弧器的核心部分,就是如何产生并输出一个特定频率和脉宽的波形。
    
    这里我们用mega328的timer1,CTC模式来产生频率。
    arduino的晶振频率是16MHz,8分频产生500KHz的信号 ,每周期就是0.5us,可以基本达到我们需要的频率精度。
    再设置比较器的值,来输出我们需要的频率 。


    



   这里我们就得到默认的50HZ的灭弧信号了

   然后是输出


    


这时就能从我们定义的输出引脚输出灭弧信号了。



3)改变灭弧信号的值。

    这里可以用多种方法方法改变灭弧信号,我们用比较直观的数字编码器来改变频率和脉宽

    
    我们使用的旋转编码器接法时序为
                    ← CCW(逆时针)
A   -----------             --------------  HIGH
                   ----------                    LOW

                   → CW(顺时针)
B  --------             ------------------  HIGH
              ----------                         LOW
     QQ截图20140827055139.jpg

     ENA脚下降沿触发时查询B脚的电平,若为低电平时,由时序图可知为顺时针方向旋转(CW),位置增加1
    
     而ENA脚上升沿触发时查询B脚的电平,若为高电平时,由时序图可知为顺时针方向旋转(CW)。
    
     ENB脚下降沿触发时查询B脚的电平,若为高电平时,由时序图可知为逆时针方向旋转(CCW),位置减少1
    
     而ENA脚上升沿触发时查询B脚的电平,若为低电平时,由时序图可知为逆时针方向旋转(CCW)。


    使用中断读取编码器位置后  对bps和ontime重新赋值,再复位定时器,输出新的灭弧信号

    




于是,这个arduino灭弧器大部分的功能就已经完成了。


3)显示状态,


   把当前灭弧器的状态直接显示在LCD上,更加直观
   这里我们直接调用I2c 1602的库文件来简化代码,这个库文件在上面的附件中有。
   由于1602并不适合快速刷新,在中断里面又不能放太多操作,所以我们在主循环中检测到BPS或者ONTIME变化时再改变显示内容,以提升显示效果,
   内容很简单,直接看代码

    




    





以上就是整个灭弧器的功能了,非常简单,这只是目前基于这个硬件的一个初步功能,直接上传ino文件供大家交流


attachment icon arduino interrupterV0.9.attach 3.65KB ATTACH 46次下载


目前的效果


格式工厂microMsg.1408849330177.jpg    格式工厂1408847274959.jpg

这只是目前初步实现的一部分功能,一个试验,将来会基于这个硬件做更多的开发,加入midi灭弧  音色控制等等功能。

上学期C语言差点挂科,花了两天时间大致学习了一下arduino,凭着我个人的一知半解完成的整个程序的编写,内容肯定存在很多不足之处,还请大家指正。














+50  科创币    rudolf   2014-08-27   再接再励
+25  科创币    kcltxinshou   2014-08-27   赞扬
+100  科创币    ry7740kptv   2014-08-27   本期最佳作品奖
+500  科创币    1211   2014-08-28   赞扬
+100  科创币    sukeytang   2014-08-28   赞扬
来自:高压与强磁 / 高电压技术动手实践:实验报导
 
薛定谔的猫 作者
7年4个月前
1楼
本帖最后由 薛定谔的猫 于 2014-8-27 07:30 编辑

精度测试,感谢奇侠侠用屌屌的示波器测了一堆数据,

首先是设定1234Hz  56uS



   QQ图片20140827070133.jpg      QQ图片20140827070142.jpg


恩 频率差了1Hz


下面是测到的数据

QQ截图20140827070836.jpg


可以看出 在极小脉宽和比较高的频率时,灭弧器的输出误差比较大,但是在常用的灭弧信号范围中,输出的精度能够达到要求,基本上是可以使用的。
回复
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
薛定谔的猫作者
7年4个月前
2楼
本帖最后由 薛定谔的猫 于 2014-8-27 07:30 编辑

恩 存在一个开机显示有四个乱码的问题,转动编码器之后就消失,目前原因不明。

如图  

格式工厂1408835955928.jpg
回复
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
大帅哥
7年4个月前
3楼
是买的套件自己焊的吗
回复
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
大帅哥
7年4个月前
4楼
是买的套件自己焊的吗
回复
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
薛定谔的猫作者
7年4个月前
5楼
大帅哥 发表于 2014-8-27 07:39
是买的套件自己焊的吗


这个是高压局自己开发的
回复
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
魔羯司令在此
7年4个月前
6楼
這有點複雜了。實現精準可以直接用高頻晶振進行分頻,用計數器來做。比較簡單
回复
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
tromso
7年4个月前
7楼
开源, 这是造福大家啊。。。
回复
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
1176764177
7年4个月前
8楼
薛猫年会那个金属壳子灭弧器是用的usb协议么??
回复
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
kcltxinshou
7年4个月前
9楼
薛定谔的猫 发表于 2014-8-27 07:29
精度测试,感谢奇侠侠用屌屌的示波器测了一堆数据,

首先是设定1234Hz  56uS


这款示波器得多少钱啊
回复
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
薛定谔的猫作者
7年4个月前
10楼
魔羯司令在此 发表于 2014-8-27 10:46
這有點複雜了。實現精準可以直接用高頻晶振進行分頻,用計數器來做。比較簡單


这里用的定时器,原理一样的 加了一些婆婆妈妈的功能
回复
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
薛定谔的猫作者
7年4个月前
11楼
1176764177 发表于 2014-8-27 14:02
薛猫年会那个金属壳子灭弧器是用的usb协议么??


midi 内置了usb2midi
回复
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
1176764177
7年4个月前
12楼
嗖嘎我以为用的avr做的usb协议
回复
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
ry7740kptv
7年4个月前
13楼
能加个Audio Sampling就更好了~
回复
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

所属专业
上级专业
同级专业
薛定谔的猫
学者 机友 笔友
文章
74
回复
446
学术分
2
2010/08/15注册,6 天前活动

西安理工大学电气工程及其自动化 硬件与射频

%7B%22isDisplay%22%3Atrue%7D
视频暂不能访问,请登录试试
仅供内部学术交流或培训使用,请先保存到本地。本内容不代表科创观点,未经原作者同意,请勿转载。
音频暂不能访问,请登录试试
文件下载
加载中...
{{errorInfo}}
{{downloadWarning}}
文件名称:{{resource.defaultFile.name}}
下载次数:{{resource.hits}}
上传用户:{{uploader.username}}
所需积分:{{costScores}},{{holdScores}}下载当前附件免费{{description}}
积分不足,去充值
文件已丢失

当前账号的附件下载数量限制如下:
时段 个数
{{f.startingTime}}点 - {{f.endTime}}点 {{f.fileCount}}
插入资源
全部
图片
视频
音频
附件
全部
未使用
已使用
正在上传
空空如也~
上传中..{{f.progress}}%
处理中..
上传失败,点击重试
等待中...
{{f.name}}
空空如也~
(视频){{r.oname}}
{{selectedResourcesId.indexOf(r.rid) + 1}}
处理中..
处理失败
插入表情
我的表情
共享表情
Emoji
上传
注意事项
最大尺寸100px,超过会被压缩。为保证效果,建议上传前自行处理。
建议上传自己DIY的表情,严禁上传侵权内容。
点击重试等待上传{{s.progress}}%处理中...已上传
空空如也~
草稿箱
加载中...
此处只插入正文,如果要使用草稿中的其余内容,请点击继续创作。
{{fromNow(d.toc)}}
{{getDraftInfo(d)}}
标题:{{d.t}}
内容:{{d.c}}
继续创作
删除插入插入
{{forum.displayName}}
{{forum.countThreads}}
篇文章,
{{forum.countPosts}}
条回复
{{forum.description || "暂无简介"}}
ID: {{user.uid}}
学术分隐藏
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

支持的图片格式:jpg, jpeg, png
插入公式
分享回复:{{shareId}}
加载中...
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
加入关注取消关注
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
建议修改
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也