学完51学AVR的几个大步骤,毕竟玩电子的还是烧钱

许多学生长期研究单片机。学了51之后又学了AVR,学了AVR之后又学了STM32(现在最流行的那个)。买了一块又一块的开发板,在开发板上做了实验。我觉得我很好,但我真的要求你自己设计一个电子产品。很多童鞋都瞎了眼,很多都学完了单片机。设计完单片机,你还是来找我们帮忙的,那么单片机怎么办?

以上是题外话。今天主要和大家讨论一下如何用单片机来设计一个产品?让我们花这么多钱学单片机也不是白费,毕竟玩电子还是在烧钱。以下是我总结的设计电子产品的主要步骤。有错误或有不同意见的欢迎加个人微信:dianzi126,或加我们的QQ群:300384358,一起讨论。

一、要求

在制作产品之前。我们首先要了解这个产品是干什么用的?有哪些功能?然后是时候考虑供电问题了,这涉及到供电电路的设计和功耗的考虑。考虑需要采集哪些外部信号?控制什么设备?例如,收集温度和控制继电器。我们还要考虑显示部分的信息量来决定我们使用什么显示方式,是使用LED还是数码管还是LCD还是tft彩屏。再考虑提醒部分,需要做声光提醒吗?必须考虑需要什么通信协议?这些确定后,就可以进行芯片选择和初步规划了。

比如这里我们以做一个电子钟为例,(现在TB上的红色LED时钟,价格远超成本价,而且没有源码购买,失去了DIY的乐趣)我们做这个开源的diy电子钟。要求如下:

1、时钟可以显示年、月、日、时、分、秒、温度;

2、可以调时间,有闹钟功能,有按键音;

3、亮度可随环境光自动调节;

(现在Tb上好像这些功能都是一样的,教程结束后设计资料和校样板小黛免费赠送给大家,所以我们会在设计部分考虑成本最小化第二部分,请见谅。)

二、选型及原理设计

有了需求后,我们就可以选择需要的组件,按照需求设计整个产品。这里我设计一个电子时间,首先要有时钟源,可以是单片机定时器,也可以是专用时钟芯片。定时器的缺点是停电后需要重新调整时间,这种方法被废弃了。我们使用时钟芯片 DS3231、 PCF8563 和 DS1302。最便宜的是DS1302,优点是芯片小,电路简单,占用3个IO。DS3231和PCF8563芯片很大,占用PCB空间很大(也就是说PCB空间就是钱),但是他们的两个芯片资源丰富。(网上说的时间很准,小黛没测试过单片机蜂鸣器报警流程图及c语言程序设计,不敢乱说。大家测试过的文章可以发到小黛单片机蜂鸣器报警流程图及c语言程序设计,个人微信:dianzi126,QQ:2463515595,小黛会通过公众号推送给大家,以后你写的这篇文章的阅读量可能是我们发送的依据板。)DS1302芯片可以自动生成年、月、日、时、分、秒的时间数据。时钟源其实是一个32.768K晶振。我们将详细介绍这款芯片DS1302①。768K晶振。我们将详细介绍这款芯片DS1302①。768K晶振。我们将详细介绍这款芯片DS1302①。

有了时钟源,我们要显示出来才能看到,对了,这就是我们需要设计的显示部分,上面说了,数码管、LCD和TFT彩屏。时钟显示的数字大多是0-9,显示的信息量不大。此外,我们出于经济原因选择数码管。

我们使用模拟模式进行温度采集。现在流行用DS18B20单总线数字芯片和DHT11芯片测温,DHT11也可以检测湿度,但这两款数字芯片的价格是5-9元,这样DIY数字时钟的成本有些浪费. 因此,我们这里使用热敏电阻③,通过简单的电阻分压法测量温度数据,这样我们选择的单片机就需要有ADC,下面会讲到。

接下来是报警功能后的按键音提示,我们使用蜂鸣器④来完成这两个功能。显示器的亮度调节只能通过光敏电阻检测环境光来实现。

最后,我们的主角(MCU)⑤出现了。它是整个设计的核心。后续程序设计完成后,需要下载到单片机中。它将控制我们刚才提到的芯片和外设,根据我们的程序设计来实现我们想要的功能。对于这么小的设计,我们一般使用8位51单片机来完成。这里我们使用STC15系列单片机。有了这些,整个设计的能量(功率)从哪里来?我们选用的元器件都是直流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个步骤,但是这6个步骤并不是独立的,需要相互关联。比如刚才提到的PCB板的外形设计和外壳的选择,比如数码管电路设计和板子尺寸的选择,比如布线难度和数码管的选择,比如按键的个数和编程问题等

最后,细心的童鞋可能已经发现有①②③…等符号,这些是我们后面会详细介绍的部分,如果需要详细说明,请在公众号后台回复。

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论