找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1583|回复: 0
打印 上一主题 下一主题
收起左侧

基于51单片机的一次完整PWM电磁摆设计实验

[复制链接]
跳转到指定楼层
楼主
ID:585273 发表于 2019-7-16 21:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  本打算给孩子做个电磁摆小制作随便玩玩的,没想到越做涉及知识面越大,后面还发现这个小制作有了实际用途,最终打算把它做成一个成品,由于涉及内容比较多,就想在CSDN里把实现的过程记录下来备查,先存成草稿,当整个项目完成了再发布。文章可能会很长,流水帐式的,是经验积累过程中的完整记录,有些内容会给人自相矛盾的感觉,那是因为实验中也有自我否定,失败总结、反复尝试的内容,我不是一个经验丰富的传道者,几乎所有环节都是第一次做,在没完整地读完之前,不能断断章取义地拿来直接参考。这个过程更是一种自娱自乐,不喜勿喷。
  先放一张镇楼图,这是一张用干膜法+阻焊+镀锡并完成焊接的自制PCB与买来的51最小系统板合体的图片,看那过孔的焊点还有排线的焊点,经历了多次失败,焊接技术也有了一些提高。如果你对这样东西感兴趣,就请继续往下看。

一、自制电磁铁
  马云家有很多卖电磁铁的,各种电压的都有,又美观,但就失去了折腾的乐趣,小的时候用干电池+细电线+大铁钉弄过电磁铁,想来自己绕一只动力电磁铁应该也挺简单的,至于什么线圈骨架、线径、多少匝,绕几层,一律没概念。先绕着看,理论不足实践补,只要上了电,有了磁,就有办法调整到自己想要的效果。

1、获取原料,拆变压器
  绕电磁铁需要漆包线,这东西也有的卖,手边如果有废弃的变压器或旧电机也能拆得出来。我拆了一只小交换机的变压器,从外观就能看出,它不是电子变压器,硕大的外壳,里面一定藏着无数的线圈,掂在手里的份量也不是手机充电器可比的。这是一只220V AC~~9V DC的。拆开之后,细的那边是接220v的,手工绕的话,不太好用,太细,一用力就断。粗的这边可以拆出来用刚刚好。拆出来的线圈是这样的:



拆开之后里面还有这样一张板子,收获整流二极管4只、滤波电容1只。拍照时电容已经被拆走,与绕好的电磁铁并联,继续干它滤波的工作去了。



2、绕线圈
  专业的术语叫线圈支架、骨架,电感骨架什么的,反正用这个词儿,可以在万能的店里买到任何你需要的,没有的话还能定制。我的需求简单,没有具体参数,用不到这么专业的东西。如果是理论指导实践的那种玩法,可以去买现成的哈。这个专业的术语也是看过很多资料之后知道的,用这个术语一搜,大开了眼界,以后要有时间了可以搞搞磁悬浮什么的。
  我的做法很简单,用一个小眼药水的瓶子,抹点胶,绕一层,晾干,再抹,再绕。后来自己也不知道做出的东西行不行,就不那么严谨了,随便绕绕先看下效果嘛,中间的磁芯就是变压器里拆的矽钢板搭成的一个长方体,就是这个样子了:






用干电池上电,有磁性,能吸曲别针,但感觉磁力稍小,用来做动力磁铁似乎力道不足,而且这个磁芯太高了,不太美观,头重脚轻的感觉。磁力不足好办,多加线圈,转念一想,那我还拆线圈干嘛,直接用变压器里的次级线圈好了,把初级线圈给它抠掉。


3、直接用次级线圈
  用上次级线圈,就美观多了,骨架还可以继续用,拆下来的时候小心一点,尽量不要让E形铁片变形,否则再插进去的时候,会有缝隙。



  把E型铁片重新插回去,注意这回不要对插了,要朝着一个方向插。长条形铁片用不上了。图中效果是通电后,把钳子送上去,磁铁“当”的一声吸过去的情景,想用手掰下来都要费很大的劲。这回的磁力够劲了,可以继续后面的制做了。但是要注意的是,不要长时间通电,比如通个10秒钟,导线都发烫,看样子电流不小,不过用在电磁摆上倒问题不大。同时这里也埋了个伏笔,后面单片机程序控制时会考虑到,为了防止摆杆被物体挡住,使电磁铁长时间处于通电状态发生危险,程序中做了常开保护,如果电磁铁连续通电时间达到5000次中断(大约等于1秒钟的时间),那么就通过软件来断电,不再允许磁铁工作,除非手工重启复位。电刷版没想到什么好办法处理这种风险。




二、实现电刷版的电磁摆1、制作支架和摆杆

  支架和摆杆都是硬纸板做的,这种东西在物流发达的时代随处可得,选结实的,就不用细说了,发挥想像力,很容易做出来。整体效果就是这样的:




2、轴的设计
  这里要重点说说轴的设计,这是整体电磁摆的关键所在,如上图,我是用一根方便筷固定在纸板做的支架上,这时还没固定,调试好可以把热融胶固定住,中间穿了一小段硬质吸管,吸管比筷子粗一点点,然后在吸管两端用扎线带卡位置,不让吸管有横向移动,把摆杆用胶粘在吸管上,轻轻推动摆杆,摆杆可以自由摆动,感觉不到太大阻力,就算合格。发文时这个轴已经转了上百万次,健壮仍旧,几乎没有磨损。

3、电刷回路设计
  前面说过,电磁铁不能长时间通电,只在有需要时,给摆以推力即可,而给力的时间点,就在摆杆处在最低点的时候。这需要设计一个电刷回路,让电路在摆杆处于最低点时导通,导通的瞬间产生磁力,推动粘在摆杆底部的永磁铁远离,一旦远离,电刷与受电弓分离,电路自动关闭。制做过程就是在摆杆上埋一根线,在用纸板粘摆杆时就埋进去,免得牵扯摆杆自由摆动,在偏下部的位置,把线引出来,剥掉绝缘,拱成一个弓形,类似火车的受电弓,在架子一侧粘一小段导线,多股线好一些,别太硬,让摆杆推不动就不好了,让导线尖端刚好经过摆杆摆动路线。没图就没真相,效果就照下面这样:





有视频更有真相:
  https://v.qq.com/x/page/k0885w12ojr.html
4、电源选择
  直接用次级线圈做的电磁铁,干电池有点带不动,上面视频中用的是四节18650并联,18650是从坏的充电宝里拆出来的,充电宝中的18650直接是8节并联焊在一起的,中间剪开这4节就直接用了,另外4节刚好是坏的,后来测试,三节串联的力道更大,直接变身不当电磁摆了,可以转圈圈、单臂大回环,向着一个方向一圈接一圈地猛转。再多的串联没有测试,我估想9V的变压器用的次级线圈,接个12V问题也不大吧,再大的电压为了安全不打算测试。变压器里拆出来的两个电容(一个变压器就一个哈,我后来又拆了一个,原装次级线圈+1),并联起来,再与电磁铁并联,视频中有,就是用扎线带扎起来的两个电解电容,有了这两个小东西,电刷不打火花,还增加了功率系数。


5、存在问题
  第一、电刷寿命是最大问题,一开始根本没想到这会是问题,本打算借此测试一下坏充电宝拆出来的电池还有多少余电,还能不能废物利用,就在晚上睡觉前把电磁摆打开(其实挺危险的,新电池不要这样做哈,如果电池真的没电了,电刷还活着,电磁铁会长时间通电,虽然可能没力了,但会造成过放。)第二天早起一看,摆停了,不是因为没电,是电刷断了。再次换午睡时间测试,可能1小时多一点吧,又断了。金属疲劳先于电池没电发生,当然要是交作业,做着玩玩也没什么,摆起来就是成功了。
  第二、噪音问题,电刷回路毕竟是有肢体接触的,金属与金属的碰撞,会有不大的噪音,开始听着挺有节奏感,久了就烦人了。还是想把它改进一下。(其实这是借口)
  第三、电路常开风险,如有异物或故障或电力不足导致摆杆停在最低点,可能造成电磁铁长时间通电,要么烧毁线路或元件,要么电池过放。


三、单片机版电磁摆总体构想
  入坑之前从未接触过单片机,但一直挺有兴趣的,也是借着电刷版问题的由头,想把单片机玩起来。不弄32、Arduino、树莓派,就弄最基本的51单片机,先从便宜的玩起。
  总体设想就是通过传感器取得摆杆位置信息,传给单片机,单片机在合适的时间点发出PWM信号给驱动电路,操控者可以自由控制驱动磁铁力度,进行力度控制时由数码管显示,0-100表示“给力”的程度,比占空比更直观。不调整PWM时,数码管显示上电以来的摆动次数,当个计数器用,使我能大致估算出轴或一些易损元件的寿命。单片机端5V,驱动端12V,驱动端的噪声和干扰及各种波动通过光耦隔离,为了简化电路,不想在成品中出现一个又一个的模块,设计一个串联型稳压电路将12V降为5V为单片机端供电(如果单片机和磁铁分别供电隔离效果更好,折中一下吧,也有一部分原因是手里有点旧元件,想给用起来)


1、传感器
  一开始什么都不懂,又过了激情学习的最佳年龄:(,但喜欢动手直接测试,马云家买来干簧管、霍尔、红外模块等等,一切可以用来当磁传感器的东西,搭出各种电路来实验,测试后发现,还是红外效果最好,主要是红外是个成品模块,用起来非常方便 ,当模块感应到前方有约定频率的回波(即物体遮挡)时,就会发出一个低电平给单片机,这就是该干活的时候了。
  https://v.qq.com/x/page/c0885gdr8og.html
  这是对红外传感模块进行的单独测试,成品模块上有两个LED,右边亮表示上电,左边亮表示有遮挡物,同时给单片机一个低电平。把模块上的电位器调整到期望的位置,这个模块就可以固定在这儿了。测试传感器时,电刷已经断了,电磁铁还没有办法控制,视频中摆杆依靠的是惯性摆动。


2、数码管
  数码管的驱动电路有现成的参考,我是打算用单片机直接驱动,不用IC,虽然IO可能占用的多一点,电路可能会复杂一点。IC驱动就极其简单,但是缺少在蛛网一样密布的导线中调优查错的乐趣。
  驱动电路图就是参考51开发版的原理图,跟传感器什么的一起买来的4位数码管,共阳的。接好发现引脚定义与开发板上的数码管引脚定义不一致,倒也不会烧坏,显示“-H-H-”给你,表示它的不满。找卖家要来引脚定义图,重新接线,就OK拉。






3、光耦
  以前没听说过这东西,看到有人用这个隔离单片机,就去搜了一下资料,这是个电信号单向传递隔离器,有一定放大作用,单片机这边的5v高低变化,可以引起驱动电路部分12v的高低变化,但驱动部分的变化是无法反向传播回单片机对其产生影响的。这是个好东西,我也要加上,光耦极其便宜,是用现金单买都买不到的那种便宜,就没必要太贪小便宜了,查了手册817什么的频率太低,差不了几个钱,直接上4N25,手册上写的理想条件下300Khz的频率,足以确保信号不失真。因为没什么设计经验,为了降低出错机率和纠错难度,也买了一块现成的L298N驱动用于调试,下面的电路图就是成功实现光耦隔离的电路,不单单是模拟,是实际搭建的电路也成功了,模拟器中用电机代替了电磁铁。


  下面的图就是在面包板上的实际隔离电路,红线左侧区域是单片机信号区,右侧是驱动部分,蓝色圈中的就是光耦,IC端与驱动端完全隔离,没有共地。



4、驱动
  实验过程中,驱动电路都是用的L298N,这款驱动用的人多,资料丰富,使用简单,皮实耐操,响应速度也没觉得有问题,说明工作频率也是不错滴。使用L298N要注意共地,找齐低电平的标准。如果有光耦,那么就和光耦输出端共地。
  使用的总体感觉 ,这个L298N驱动还可以,信号和驱动电压范围都挺宽,只要别把12V接进信号端,怎么玩也玩不坏,美中不足是功耗有点大,表现为芯片发烫,输出压降大。进行其它模块测试时用用它,免得自己设计的驱动有问题,不好排查,最终整合时不打算用的。通过一些资料收集,决定自己搭建mos管驱动电路,具体搭法后面再讲。


5、供电
  基本上决定用3节18650串联,通过mos管直接驱动电磁铁,同时引出一个串联型稳压电路,输出一个稳定5V给单片机。其实更合理的方案应该是再用一节18650,参考充电宝的升压电路,单独为单片机供电,这样隔离效果更好,压差小,没什么损耗,但是电池多了占地方,三节差不多了。这时,12V转5V压降有点偏大,效率也不高,费电,运行时这只8050别用手摸,小嫩手的话都能烫出泡来。暂时将就一下吧,8050便宜量足,大约1块钱50个,烧坏再换(写到这里的时候,第一只8050累计工作没有100万次也有8、90万次了,最长连续运行时间试过30多小时,烫归烫,还没爆,这里均指摆杆摆动次数)。



6、PWM控制
  要是有一台示波器就好了,PWM基本都是在模拟器中进行的,实际电路没有办法调试精确的波形,整形更无从谈起,简单地看到占空比的变化能正确引起摆幅就变化就算成功拉。当然,我没有直接用电磁铁,先用一个同样是感性负载的成品小电机试验了一下。
  下面的视频中调试过程中录的,不是最终版本,这个版本由于数码管的显示延迟,导致占空比控制不准确。
  模拟示波器中的波形
  https://v.qq.com/x/page/r08858dbm5v.html
  电磁铁的效果不够直观,而且本着模块式调试思路,自建的PWM控制不与自制的电磁铁同时调试,我先用一个玩具电机,测试一下PWM控制部分的效果
  https://v.qq.com/x/page/o0885l0p43i.html
  把模拟环境搬到实际环境,并接入自制电磁铁操作的效果
  https://v.qq.com/x/page/y0885mu52cw.html
  后面经过一些代码微调,改用计时器中断信号来精准控制占空比,效果就很好,可以达到持续输出纯高电平或纯低电平而没有一点跳变的效果,具体可以参考下面的程序代码。

四,单片机程序设计
  以前从未接触过单片机,现学现卖,一个代码块一个代码块的调试。不过,混迹CSDN的,这点程序应该都不在话下。直接帖个源码吧。
合成模块最最终版.zip (22.29 KB, 下载次数: 5)

  再帖一个波形,辅助理解:



绿线是红外传感器给出的信号波形,因为没有示波器,这是用模拟器生成的1:1高低电平。当为低电平时,摆杆进入探测范围,但注意,这时并不是最低点,此时做功,相当于给了摆杆半程阻力而非动力。
  红线是单片机发给驱动电路的波形,注意,这个低电平的持续时间,刚好是绿线的一半,其下降沿为摆杆最低点。
  两条黑线是计数器,第一条是什么忘记了。。。汗。。。第二条是当绿线为低电平时,中断的次数,并把它保存起来,下次再进入此区域,当本次中断次数>上次中断次数一半时,再给驱动发送低电平。大致是这么个思路,时间久记不太清了,具体可以看代码。
  需要解释的是,这些波形与PWM无关,在红线为低电平时,发给驱动的信号并不是持续的低电平,这时发送的才是PWM信号。

五、驱动电路设计
  单片机是不能直接驱动设备的,电压可能够,电流不给力。除了led这种小电流负载可以直接驱动之外,稍微重型一点的负载都要由驱动电路来完成。即使是led、数码管什么的,也最好用低电平驱动,单片机灌电流能力远大于拉电流能力,不论有没有上拉电阻。驱动电路怎么搭建,我也是0经验,想过用三极管,比如8050,据说能带动1.5A电流。简单测一下,电磁铁线圈电阻只有5欧,12V接上去,8050怕是扛不住,8050我在孩子玩坏的遥控小车里拆出好几个,总惦记给用上,后面用在稳压电路上了,工作环境挺艰苦的,暂且不表。

  通过搜集一些资料,发现用mos管做驱动效果不错,一旦栅极完全导通,漏源极之间几乎没有电阻,简直完美。而且这种东西不太贵,我又不会批量使用,就买好的(也就1块5毛钱,土豪一把),选来选去,选一个大电流高电压的mos管,它支持33A电流,100V电压,在我的环境中,即使犯错,也绝不会烧到它,型号是: IRF540N ,实际测试中,效果真不错,一点不烫,温都不温,完美!跟L298N形成鲜明对比。

  光耦和mos管结合的电路图如下:



这只mos管,手册上说栅集有4.5V电压,Ds即可开启,但这时开启的并不彻底,Rds还是比较大,磁铁线圈阻值又小,分给电磁铁的电压所剩无几了,它完全开启的电压要10V以上,这时Rds几乎为0,这也是驱动部分电源至少用3只18650的原因。烤机的时候我把电池跑光过两次,这个性质还可以很好起到锂电保护板的效果,3只18650,在还没达到、即将濒临放电截止电压时,已经无力让mos管完全开启,驱动电路由于Rds阻值过大而断路,此时单片机供电也同时出现问题,关机了,有效防止了锂电过放,原理我搞不太明白,总之在过放安全电压以上,电路自动停止工作,效果就很不错。电路搭法参考手册中的经典电路,电阻取值有待考证,毕竟厂商不同,只能参考个大概,我的办法就是围绕mos管搭好测试电路,目标位置接好万用表,电阻用电位器,边调电阻边观察万用表数值变化,测定出合适的阻值,再用接近的定值电阻代替。这一步手要稳,有时不小心拧大劲了,电位器阻值过小,电位器直接冒烟了。
  https://v.qq.com/x/page/p0885u8fxmx.html
  上面的这个是在面包板上搭的验证电路,51最小系统,光耦,mos驱动,数码管,配置齐全了,电源暂时分别供应,此时数码管显示的数字是红外传感器处于低电平时,中断的次数。小摆幅情况下,触发一次低电平,程序会中断100次左右。当时的计数器初始值好像是128,1/11.059212128*100,结果大约是13毫秒,意味着摆杆经过一次最低点,驱动电路会发出时长6.5ms的PWM信号,如果是50%占空比,实际驱动时间就大约是3ms。

六、整合到洞洞板
  从面包板移植到洞洞板上,没什么说的,图也不帖了,上面的视频里都有了。
  洞洞板不可避免地使用飞线,我用的就是变压器拆出来的漆包线,挺好用的,剪断直接焊,不用处理绝缘漆,由于线径比较粗,剪断的同时,切口处的漆就开裂,加上切面裸露的部分,包住锡之后还是很稳的。背面照片中的细一点的是网线抽出来的,无绝缘漆,一根vcc,一根gnd,绕板一周,方便取电接地,拖锡的话就比较浪费了。






焊的有多P我知道,不用喷了哈,首先技术P,然后锡P、烙铁也P,这还是20年前读大学时,暑期实习焊收音机留下的废料呢。哦,看到照片顺便提一句,洞洞板四角粘上了塑料螺母,免得焊点与桌面接触造成虚连。51最小系统板也粘了的。
  本来,做好洞洞板就应该是终点了。不记得怎么逛来逛去的,就看上人家自己制作的漂亮的电路板了,心里长了草,也幻想着把难看的洞洞板做成漂亮的PCB,于是就有了后面这部分内容。当然,打样的事我也知道,成本也不高,但我觉得那更适合有经验的高手或者成品电路,对于没经验的小白,自己画的电路能不能正常工作都不知道就拿去打板,很可能要反复修改,打板的成本也不见得有优势了。
  下一篇我把电路原理图和PCB制板的源文件放上来,有兴趣的自己下载下来研究哈。


  原文:https://blog.csdn.net/xinew4712/article/details/91789668





分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表