查看: 1721|回复: 15

[项目] 自制Arduino最小系统板,集成N多种功能,赶快来围观吧》》》

[复制链接]

该用户从未签到

发表于 2018-11-14 19:52 | 显示全部楼层 |阅读模式
前文:       最近想做点遥控的小玩具,所以一直在寻找一款实用的开发板(最好是兼容arduino的,因为我只会玩arduino,对于其他单片机编程烧写什么的一概不知道。。。),所以苦苦寻找了许久,然后发现了下面两款板子:号称世界上最小的arduino:基于ATTINY85的主板以及DF家的beetle。这两块板子体积都挺小的beetle(20*22mm)以及attiny85(23*18mm),功能上来说肯定Beetle更加优秀,但是价格略高。便宜的attiny85仅有的6个端口并不够我使用。。而且对于一些项目来说,对于主板的体积还是有一定要求的,这两块板子搭配上扩展板之后可能过于庞大(而且市面上还找不到这样的扩展板,DF家到是出了一块,但仅仅是将所有引脚引出)。于是纠结好久之后,按捺不住想自己画板子了,于是有了下文。
T1yB0hFqpbXXXXXXXX_!!0-item_pic.jpg TB2q0KGaAUkyKJjSszdXXbiCpXa_!!14207766.jpg

(上面是两种市面上可以购买到的最小的Arduino板)


                                                                         第一部分
        选取自己想要的功能是十分必要的,俗话说鱼和熊掌不可兼得,画电路板也是一样,不可能一块小小的板子上啥功能都有,所以先要明确自己的使用环境以及所需要的功能!!!
我的使用环境:
       一些无线遥控的玩具或者机器人上,体积上越小越好,这些玩具一般是3.7V锂电池供电的,而且驱动方式一般是以电机或者舵机为主,一般至少3路电机驱动,当然要有可以控制玩具灯光的接口,因为这样比较炫酷,嘻嘻


  有了使用环境,那么需要的功能就很明了了!下面就是我列举的一些功能:
1.首先最主要的是遥控!!(重点!),所以一个给无线通讯模块预留的接口是最重要的,同时呢,给无线模块供电工作也要做好!!(不然供电电压不够的话无线模块输出的数据就乱掉了,然后整个单片机就傻掉了。。。。然后就。。。

2.供电方式是3.7V锂电池,所以一路电源升压电路是肯定必要的啦,这个电路可以将锂电池的电源升压到5V之后输出给单片机使用的。那么,电池玩着玩着没电了怎么办?这时候有个电压报警器就是很方便的了,他可以很好的保护我们的电池不会过放电!所以,划重点!!锂电池供电部分我们需要一个升压电路和一个电压报警器电路。

3.说到电源的问题,是不是我们日常见到的电压有两种呢?一种是3.3V,一种是5V,有些芯片工作需要5V但是有的只要3.3V。你可能会问两个不就是差1.7V吗,接上去也没多大事,然而事实是这个芯片可能会活不久。。(不要问我怎么知道的)因此,为了兼顾多种芯片,我决定多加上输出电压3.3V的稳压电路。

4.驱动方面,我说到主要是以舵机和电机为主,舵机可能不需要驱动(直接接PWM输出就好了),但是电机是必须要接驱动的(曾经有直接用单片机端口驱动电机的,后来他就弃坑了。。。)而且接上驱动模块之后电机还可以调速以及调节正反转。所以至少3路的驱动以及一路或者多路的舵机接口是必要的。

5.控制灯光的接口就比较好弄了,直接怼上单片机的I/O口即可(注意单片机I/O口控制一般小的led还是可以的,谁要控制什么1w或者10w的大功率led灯珠就是作死了。。。)

6.需要带有一些常规的数字接口或者模拟输入接口(这个数量当然是越多越好,方便后期扩展)

整理了一下,我列出了一个表格:
未标题-1.jpg
         列出来了需要的功能,我感觉整个工作就完成了一大半,有选择恐惧症的我在决定哪些功能时候真的是非常头痛,然而现在感觉好了许多,设计的方向也就比较明了了。



                                接下来就是纠结的选器件了:
1.片机的话我是真的除了atmel系列之外都不会,所以我毫不犹豫的选了Atmega328P-AU,这个芯片也是Arduino nano上使用的,由于需要体积小巧的要求,所以我选择的是贴片TQFP封装的。而且这个芯片买回来烧写上bootloader之后就可以使用Arduino ide来开发了,这也是我选择它的原因。

2.单片机选了当然需要一个Rs232转串口芯片给Atmega328p写程序啊,但是我并不想给整个板子加上一个电平转换芯片,一个是因为这样会占用本来就小的版面空间和多出一个usb接口,我还不如使用类似Arduino pro mini的那种方案,使用外置的RS232转TTL芯片去给328p写固件,这样可以最大化的节省板面空间(正经脸.JPG)

3.对于无线模块的选择可以说是非常重要了,稳定的模块决定了通讯的质量是否足够高,也决定了遥控的延迟以及手感。这部分我木有太多纠结,因为目标非常明显,就是NRF24L01,用过的都说好。而且使用SPI协议与Atmega328p通讯,速度快且稳定。这里放一张NRF24L01的图:

TB2S1poqTtYBeNjy1XdXXXXyVXa_!!261729488.jpg
4.  5V升压的电路的设计我取自一款升压模块的电路,我在网上找到了原理图,如下:芯片使用的是E50D,输入电压0.9V-5V,恒定输出电压5V,最大输出电流超过500ma,足够我使用了。
2345截图20181114122409.jpg
5. 3.3V的稳压芯片我使用的是MIC5205-3.3,MIC5205是一款LDO芯片(低压差线性稳压芯片)输入电压与输出电压之间最少可以只有350mv的电压差,对于电源不太稳定的电路实在再合适不过,最大输入电压16V,最大输出电流150ma,恒定输出电压3.3V。电路图如下:
火狐截图_2018-11-14T04-31-19.174Z.png


6.电机驱动我并没有选择使用集成的电机驱动IC,因为我看了看封装都过于庞大,不适合这种小体积项目,而且我并不太需要双向的驱动,只用单向的即可。挑来挑去,我决定使用最简单的mos管驱动电机,便宜而且实用。mos管的话我使用的是nmos管,不建议使用pmos管的原因是pmos管的导通内阻较大,会造成很大的损耗。对着数据表格看了半天之后,我看中了AO3400,最大通过电流5.7A,足够使用了。
mos.jpg


7. 对于板子我还添加了一路电压输入,因为顾及到有些电池电压在5V以上的情况(例如7V,9V和12V)我的板子也要可以正常工作,于是我添加了一个降压电路,可以将输入的7-12V电压降到5V供给整个系统使用。芯片选的是ME6210A50PG,同样是一款低压差线性稳压芯片,最大输入电压18V,最大输出电流500ma,恒定输出电压5V,电路图如下:
火狐截图_2018-11-14T04-37-41.443Z.png


       至此为止,所有的器件都选择完毕了,下面就是细化每个部分的设计以及将电路图画出来。我会介绍一些基本的电路知识给大家,请大家拍砖。

                               第二部分
       对于电路的设计,我主张从大到小,从重要到次要的顺序来设计:这样我们可以搞清楚整个系统的主次关系,方便日后查找问题。
1.Atmega328P外围电路的设计
         Atmega328p的外围电路着实简单,仅需要几个器件就可以完成(基本上就是晶振电路和复位电路)没有什么好说的,我也省省篇幅,歇一会。。。上图!!!

火狐截图_2018-11-14T04-41-31.449Z.png


2.NRF24L01接口的设计
        NRF24L01与Atmega328P采用SPI协议进行通讯,所以我将对应的引脚连接到Atmega328P上。在这里我给电源正负极之间接了一个47uf的电解电容,是为了保证电压的稳定(因为NRF24L01对电源的要求还是比较高的)

火狐截图_2018-11-14T10-05-45.365Z.png


3.锂电池升压电路的设计(输入0.9-5V,输出5V)
        整个升压电路其实就只需要几个零件,在这里我说明需要注意的一些事项:选择的电感一定要是功率电感,二极管的话务必使用肖特基二极管(因为E50D的工作频率在300khz左右,所以普通二极管频率没有肖特基二极管这么快)推荐型号是1N5817或者1N5819

火狐截图_2018-11-14T04-28-57.612Z.png


4. 3.3V稳压电路的设计(输入5V,输出3.3V)
        首先放上电路图,这个电路没有什么需要的外围器件,仅仅一个电容用来滤波即可

火狐截图_2018-11-14T04-31-19.174Z.png


5.7-12V降压电路的设计(输入7-12V,输出5V)
        这个电路和上一个基本上一样的,就是在输入端上加了一个10uf电容滤波,可以过滤掉一些输入电压的纹波。

火狐截图_2018-11-14T04-37-41.443Z.png


6.电机驱动电路的设计
        对于电机驱动电路,电路图如下。其中单片机的输出信号脚经过一个保护电阻之后连接在mos管的栅极上,同时在mos管的栅极还有一个电阻接地,这是因为三极管的栅极存在结电容,所以这个电阻给mos管关断时候提供了一条电子释放通道。对于电动机的这类感性负载,用mos管控制开关的时候容易产生较大的感生电动势,容易击穿mos管,于是我添加了一个续流二极管在电动机的两端,来减少反向电压。同样的,这个二极管尽量选择肖特基二极管,以满足频率要求,我这里采用的是1N5819。

火狐截图_2018-11-14T04-47-15.064Z.png


7.报警电路的设计
        对于这个报警器我想了很久,想过很多方式去控制蜂鸣器的鸣叫,纠结许久之后才定下来这个方案,采用Atmega328p采集电池电压数据,通过一个数字口来控制蜂鸣器的鸣叫。对于电压采集电路,因为输入的电压电压低于5V,所以直接使用Atmega328p的模拟输入端口读取电压数据。
        关于控制蜂鸣器的鸣叫,我选择的是有源蜂鸣器,这种蜂鸣器只需要给一个高低电平信号即可发出声音,但是声音频率是固定的,若是选择无源蜂鸣器,我还需要给它输入PWM信号,这样做会占用一个PWM口,所以权衡之下还是使用有源蜂鸣器。
        但是纠结的我又想了想,要是没电的时候一直响岂不是很烦人?我更希望是响一声,停几秒,再响一声,再停几秒。。这种的,于是我花了点时间回顾了单稳态触发器(我真的是给自己找坑挖。。。)最后设计出来如下电路:

火狐截图_2018-11-14T04-49-25.266Z.png
       这里采用555芯片制作了一个单稳态触发器,触发器的输出口通过一个三极管控制蜂鸣器,需要注意的是蜂鸣器同样属于感性负载,务必接上一个续流二极管,这个二极管由于工作频率较低,没有什么限制。但是我还是选用了一个肖特基二极管(并不想多买一种二极管)555芯片的reset端我连接上了Atmega328p的四号端口,用这个脚的信号来控制整个蜂鸣器电路是否工作。这个电路即可控制蜂鸣器响一下,停一下。

8.其他输出接口的设计
       首先是给单片机下载程序的接口,如图

火狐截图_2018-11-14T04-50-20.164Z.png
        然后是两种电源输出的接口(3.3V和5V)
火狐截图_2018-11-14T04-50-41.108Z.png
         再就是4路模拟量输入接口(在这里我预留了Atmega328p的i2C接口A4和A5,方便连接其他使用i2C的设备)
火狐截图_2018-11-14T04-51-02.723Z.png
        最后就是6路的数字输出口,其中D3,D5,D6,D9,D10 5路为PWM和I/O复用端口,方便连接舵机,接入其他电机驱动板或者连接其他传感器设备。D2脚作为Atmega328p的外部中断端口,可以控制单片机的中断操作。但是注意,D3,D5,D6口也用来控制板载的mos管,所以当使用板载mos管控制电机时,这几个管脚请不要使用。
火狐截图_2018-11-14T04-51-36.059Z.png
                                   总结
      至此为止,整个电路就设计完毕了,接下来就需要进行PCB电路板的排版以及布线,这个星期有点小忙,关于接下来的设计我会在下周放出,请大家期待,如果有什么关于电路设计以及PCB板的问题,欢迎大家提问,我会认真的回复你们。。
      最后,感谢你们阅读我写的这么多文字,希望我此次做的电路可以对你们提供一些帮助和引导,谢谢。

  • TA的每日心情
    郁闷
    2019-1-24 13:44
  • 签到天数: 10 天

    [LV.3]偶尔看看II

    发表于 2018-11-14 22:34 | 显示全部楼层
    期待成品展示
  • TA的每日心情
    开心
    2019-2-21 09:05
  • 签到天数: 609 天

    [LV.9]以坛为家II

    发表于 2018-11-14 23:03 | 显示全部楼层
    期待成品展示
    打赏作者鼓励一下!
  • TA的每日心情
    开心
    2019-2-21 00:35
  • 签到天数: 691 天

    [LV.9]以坛为家II

    发表于 2018-11-15 10:28 | 显示全部楼层
    这个必须围观,给楼主点个赞
  • TA的每日心情
    奋斗
    2019-1-15 09:25
  • 签到天数: 70 天

    [LV.6]常住居民II

    发表于 2018-11-15 11:58 | 显示全部楼层

    期待成品展示
    打赏作者鼓励一下!

    该用户从未签到

     楼主| 发表于 2018-11-15 16:36 | 显示全部楼层

    谢谢支持!!!

    该用户从未签到

     楼主| 发表于 2018-11-15 16:36 | 显示全部楼层

    谢谢支持,电路正在设计中

    该用户从未签到

     楼主| 发表于 2018-11-15 16:37 | 显示全部楼层
    上海老王 发表于 2018-11-15 10:28
    这个必须围观,给楼主点个赞

    谢谢支持我赶制pcb布线中。。。

    该用户从未签到

     楼主| 发表于 2018-11-15 16:38 | 显示全部楼层

    下周就来啦
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    博哥零基础教你玩转ESP8266(十三) ESP8266WiFiGeneric库
    博哥零基础教你玩转ESP826
    帖子导航帖 博哥零基础教你玩转ESP8266(一) 重识ESP8266 博哥零基础教你玩转ESP8266
    求助!WeMos D1 WiFi怎么接0.96寸OLED?(ㄒoㄒ)
    求助!WeMos D1 WiFi怎么
    求助!WeMos D1 WiFi怎么接0.96寸OLED?(ㄒoㄒ) 想用WeMos D1 WiFi接收服务器的数据然
    串口发送16进制指令求助
    串口发送16进制指令求助
    我准备串口发出16进制指令到我的外置设备 代码如下图 我分别监控ARDUINO的tx口和USB口
    一文教你选择Arduino开发板,小白进
    一文教你选择Arduino开发
    笔者在2016年接触了Arduino,跳了万条坑,行了千里弯,到今天也算是Arduino的一
    大神们!1602显示屏上的MQ2浓度示数不是实时监测的何解
    大神们!1602显示屏上的MQ
    本人小白,刚刚接触arduino,长时间的查阅资料后,通过复制修改代码接线实现了DHT11实
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表