文号
t51591
阅读
14062
回复
9
收藏
5
【任某人吐血巨献!!】全数字光纤灭弧系统
2012/10/22
IP:加拿大
话说开学了忙到爆。。一星期也就有几个钟头可以折腾折腾我的破烂。。鉴于今年准备在学校搞双圈演出。。做出双圈的音乐灭弧是第一步。。
先讲下大概原理

发射端部分:
使用旋转编码器做信号输入,这次没用好多人都在用的单片机解码。。主要是因为51太鸡肋资源给生成输出信号就差不多了。。况且两个中断源都在用,不太可能用查询io法烧资源,于是乎就憋出来了这个解码器
QQ截图20121021203129.jpg
科普一下,旋转编码器有很多种,光电的一般用在鼠标滚轮什么的,磁的用在马达测速什么的,接触式的就是我用的一般在家用电器上比较多。
至于输出信号,其实就是两组开关轮流开关,这样上拉之后旋转起来就会有相位差在45-90度之间的两组信号,由于开关顺序因素,顺时针a回领先b,逆时针b会领先a
于是乎这俩d触发器就出场了,先出高电平的数据会把对应的输出拉高,同时一直压着另一个输出的clr使其无法触发,带45度以后另外一组信号进来就把一开始被触发的触发器拉低,生成一个脉冲,由于第二个信号入场时第一组信号还压着第二组的clr,所以第二组所对应的信号不会触发。
QQ截图20121021202908.jpg
参见原理图,后面的门和555纯属为了省空间用,三个门为两组不可能同时有信号的输出分享一个555然后再把修正好的触发信号发给单片机。

编码器输入部分就这样,在普通灭弧模式时候是通过t0定时生成频率,重装是装入和编码器相关的变量freq以达到用编码器控制频率的效果。每当定时器t0中断以后运行send函数给sbuf赋值,我给串口八位是这么安排的,最高位和次高为为声道使能位,比如最高为1左声道有输出,0则无。剩下滴六位为数据位,传输otime数据给接收端,最大值63,我把otime变量乘十便是10us-630us可调的otime区段,满足一般应用。

传输媒介为光纤,就是把串口数据从光纤发出去。

音乐模式时,如果两个中断输入同时变低,则触发高优先级中断然后软件查询补偿优先级,同时串口发11XXXXXX(xx为otime数据)在接收端为了防止两个定时器由于装了同样的otime值而倒置定时结束时由于优先级问题输出没能被关断,固在接收端给低优先级定时器装值是始终+5us以便单片机处理。如此一来就可以达成两组不同步的音乐数据用过一个串口发射出去再根据使能位解出来。

同时,接收端和发射端都是用高波特率传输,以防频率高时串口数据重叠死机。

大概就是这些了,调试时候遇到好多麻烦的说,今天还泥马病了= =带病调试终于调好了。。
一般模式演示+讲解【中国话说的不好勿喷】
编码器原理讲解
[flash=640,480]XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX target="_blank" style="font-size:20px;">点击此处查看视频

编码器解码系统模拟

attachment icon proteus模拟.rar 24.95KB RAR 30次下载
程序老规矩,开源之,欢迎改进

【完】
+1
科创币
jrcsh
2012/10/22
高质量发帖
+50
科创币
逆天
2012/10/22
快去躺着养病吧,不然真的要吐血了....
+25
科创币
山寨雷神公司
2012/10/22
高质量发帖
+20
科创币
科学人
2012/10/22
+50
科创币
20!Dopaminor
2012/10/23
高质量发帖  我刚来也喉咙痛了好久.. 都不知道那一坨最宜居了
+25
科创币
听我说瞎话
2012/10/24
拜莫啊!任某人果然和头像一样风骚!
+1
学术分
奇侠
2012/10/22
开源+给力。还是蛮不错的。
来自:
高电压技术
9
任某人作者
14年2个月前IP:未同步
462891
1楼
资源在此下载
receiver拼错了勿喷,懒得改了
  
attachment icon 数字灭弧.rar 61.74KB RAR 45次下载
attachment icon Altium原理图+pcb.rar 970.61KB RAR 38次下载   
温馨提示= =原理图有实际应用性错误,还没改,所以原理图仅供指示原理之用= =千万别脑子一热就打样去了。。
+1
科创币
奇侠
2012/10/22
任某啊,你已经吐了两次了,,还打算吐第三次么???
引用
评论
14年2个月前IP:未同步
462946
2楼
单片机玩的这么好,
等我的移相电源做好了就学单片机,现在3895的外围都做好了,而且能看到移相的波形了~~~~~
引用
评论
14年2个月前IP:未同步
462947
3楼
先用手机抢沙发,回去电脑编辑
+1
科创币
奇侠
2012/10/22
你抢了两个沙发。。。。
引用
评论
14年2个月前IP:未同步
462957
4楼
任某人感冒不轻呢,枫叶国现在气温很低了吧
+1
科创币
奇侠
2012/10/22
你那里也不高把。。。我在合肥都冷死了,,,
+1
科创币
任某人
2012/10/23
我这个黄岛天气诡异= =常年气温-5到15度。。现在十几度的样子。。貌似被神马非洲同学带来的病毒传染了。。
引用
评论
14年2个月前IP:未同步
463134
5楼
很好很实用!编码器用得很到位。
之前我做的时候用过编码器和AD取电位器电压给定时器赋初值这两个方案。
写编码器解码部分程序的时候 想用软解 结果程序写出来 鉴于俺单片机基础鸡肋 搞得经常判别不出来。
看了这个帖子之后 表示学习了!
引用
评论
任某人作者
14年2个月前IP:未同步
463140
6楼
回 5楼(rb-sama) 的帖子
恩= =我也是单片机基础太差所以才用硬件的。。牛逼人士一定有办法软解。。
引用
评论
14年2个月前IP:未同步
463391
7楼
单片机玩的这么好, 我完全新手额,正在研究51...[s:273]
引用
评论
任某人作者
14年2个月前IP:未同步
463699
8楼
回 7楼(xiying12571) 的帖子
没事。。我接触单片机四五个月而已。。
引用
评论
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的