电子说
很多同学学了单片机很久,学完51学AVR,学完AVR学STM32(谁叫人家现在最火呢)。开发板买了一块又一块,在开发板上做实验,觉得自己还是很牛X的,但是真叫你自己设计一个电子产品出来,好多童鞋都抓瞎了,不少学完单片机了,毕设要做个单片机类的设计出来最终还是来找我们帮忙,那请问你学单片机干什么?
以上为题外话,今天主要是和大家讨论一下如何利用单片机来设计一款产品?让我们花那么多的钱来学单片机不是白学的,毕竟玩电子的还是烧钱啊。以下就是我总结的设计一个电子产品的几个大步骤。
一、需求
在做产品之前。我们要先了解这产品是干嘛用的?有些什么功能?然后该考虑供电问题,这涉及到电源电路的设计和功耗的考虑。考虑需要采集什么外部信号?控制什么设备?比如采集温度,控制继电器。还得考虑显示部分的信息量,决定我们采用什么显示方式,是用LED还是用数码管还是用LCD或者tft彩屏。再考虑提醒部分,是否需要做声光的提醒?还得考虑需要什么通讯协议?确定了这些后就可以做芯片选型和做初步方案了。
比如这里我们以做一个电子时钟为例,(现在TB上红得发紫的led时钟,售价远远超出了成本价,而且买来还没有源码,这就失去了DIY的乐趣了)我们做这个开源的diy电子时钟。需求如下:
1、一个时钟能显示年月日,时分秒,温度;
2、能调整时间,具有闹钟功能,具有按键音;
3、亮度能随环境光照自动调节;
现在Tb上的好像也就这些功能,这个设计的资料以及打样的板子小代打算等教程完了后免费送给大家,所以第二部分的设计部分我们就考虑成本最小化了,大家见谅。
二、选型及原理设计
有了需求后,我们就可以根据需求去选择所需的元件,设计整个产品了。这里我设计的是一个电子时候,首先得有时钟来源,可以采用单片机定时器产生,或者用专门的时钟芯片。定时器产生的缺点是断电后时间需要重新调整,此方法舍去。我们用时钟芯片 DS3231、 PCF8563和DS1302。最便宜的是DS1302,优点是芯片小,电路简单,占用3个IO。DS3231和 PCF8563芯片大,占用PCB空间大(话说PCB空间就是金钱啊),但是他们两个芯片资源丰富。(网上说计时精准,小代没测试过,不敢乱说。大家亲测过的可以写的文章发给小代,个人微信:dianzi126,QQ:2463515595,小代通过公众号推送给大家,以后你写的这文章的阅读量可能会是我们送出板子的一个依据哦)DS1302芯片可以自动产生年月日时分秒的时间数据,时钟来源其实是一个32.768K的晶振提供,后面我们会详细的介绍这芯片DS1302①。
时钟来源有了,那得显示出来我们才能看到是吧,这就是我们需要设计的显示部分,上面提到,数码管、LCD和TFT彩屏。时钟显示的大多是0-9的数字,显示信息量也不大,同样从经济考虑我们选用数码管②。
温度采集我们采用模拟方式。现在流行的是用DS18B20单总线数字式芯片和DHT11芯片来做温度,DHT11还能检测湿度,但是这两个数字式的芯片价格都在5-9元,这成本放在这样一个DIY的数字时钟上有些浪费了。所以,我们这里采用热敏电阻③,通过简单的电阻分压方式测到温度数据,这样一来我们选择的单片机就需要带有ADC了,这接下来说。
接下来就是闹钟功能后按键音提示,我们采用一个蜂鸣器④来完成两个功能。显示的亮度调节,需要用光敏电阻来检测环境光照才能得以实现。
最后我们的主角(单片机)⑤登场了。它是整个设计的核心,后续的程序设计好后就需要下载到单片机,它会按照我们程序设计的方式去控制刚才我们提到的这个芯片和外设来实现我们想要的功能。这样的小设计,我们一般用8位的51单片机就可以完成了,这里我们用STC15系列的单片机。有了这些,整个设计的能源(电源)哪来?我们所选用的都是DC 5V供电的元件,所以电源可以直接用5V直流供电,比如USB接口。在电路设计时我们可以考虑下功耗的问题,辅助元件的选用上做点文章。
现在我们来整理下,这个设计需要些什么:时钟芯片DS1302、数码管、热敏电阻、光敏电阻、蜂鸣器、单片机。但是,单独的这些芯片是没法完成我们所需要的功能的,还需要一些辅助元件(电阻、电容等)。接下来就是把这些芯片和辅助元件按照一定的规则组合起来(电路设计)。
三、电路设计及打样
此部分这里我们不做详细的介绍,后续会分模块的详细介绍。再此简要介绍设计步骤。
电路设计需要专门的设计软件,我们常用的是Protel 99SE。本软件可以设计电路图和PCB板图,可以自动把电路图转到PCB图纸中,功能强大。99SE这个版本是比较老的了,但小代用下来感觉是比较稳定,兼容性比较好的一个版本,设计我们这样的小板足够了。设计好电路,再转换到PCB图纸中排兵布阵(元件摆放),手动布线,最终完成整个板子后就可以把PCB图纸发给厂家打样了。现在各大厂家都有活动,打样板子都不算贵了,电子爱好者,学生党都能自己做板子了。一般打样时间为3-4天,快递3-4天,这样下来就是差不多一周的时间,这段时间我们也不会闲着,可以先把程序框架搭好为后续的程序设计做准备。
四、样板测试
等了一周,心痒痒啊。收到板子后大家肯定都是激动的,那就开始测试吧。开箱先检查板子外观、丝印等直观的有没有问题(一般都没问题的,除非小作坊的板);然后测试电源VCC和GND直接有没有连接,也就是测他们之间的电阻,理论上是无穷大。这些都没问题后就准备元件焊接吧,焊接时一般的顺序是:先矮后高。怎么说,就是元件在板子上的高度,现在从最矮的开始焊接,再焊接中等高度的,最后焊接最高的元件,注意,芯片一般采用底座焊接,芯片插底座上。注意:焊接完成后的板子在上电之前还得测量电源VCC和GND直接电阻,看是否有短路的情况,有短路问题需要排除问题后再上电。
五、程序设计及测试
程序设计说白了就是编程,编程需要编程软件,大家都叫“开发环境”,是不是听着就高大上了,其实就是一个软件加上编译器,不同的单片机的开发环境是不一样的,这里我们用的51单片机的开发环境是keil 4。Keil 加上STM32的编辑器也可以做STM32的开发环境,相信大家都用过了。我们所有的程序都在keil 中编写,完了编译得到机器语言的16进制文件,最后下载到单片机里去,这样,给我们焊接好的板子上电就可以看到我们要的效果了。但是一般我们写的程序不可能一次就能通过,需要我们反复的调试,编译,下载,上电测试,最终实现我们想要的功能为止。
六、组装
到这里一个产品离成功不远了,现在看到的还是我们的电路板,看着不美观,一个产品我们还需要给他设计一个外壳。这个外壳需要和PCB板的大小,形状合适。所以,在我们PCB板的时候就需要考虑到外壳的形状,安装孔等问题。对于我们电子爱好者来说,能看到电路板也许会感觉更帅些,所以小代再次就不考虑外壳的问题了。
到这里,用单片机设计一个产品的流程就完了,这里小代自己总结了6步,但是这六步之间不是独立的,需要互相关联,比如刚才说的PCB板的形状设计和外壳的挑选,比如数码管电路设计与板子大小的选择,比如布线难度和数码管的选择问题,比如按键的个数和程序设计的问题等等。
全部0条评论
快来发表一下你的评论吧 !