很多同學學了單片機很久,學完51學AVR,學完AVR學STM32(誰叫人家現(xiàn)在最火呢)。開發(fā)板買了一塊又一塊,在開發(fā)板上做實驗,覺得自己還是很牛X的,但是真叫你自己設(shè)計一個電子產(chǎn)品出來,好多童鞋都抓瞎了,不少學完單片機了,畢設(shè)要做個單片機類的設(shè)計出來最終還是來找我們幫忙,那請問你學單片機干什么?
以上為題外話,今天主要是和大家討論一下如何利用單片機來設(shè)計一款產(chǎn)品?讓我們花那么多的錢來學單片機不是白學的,畢竟玩電子的還是燒錢啊。以下就是我總結(jié)的設(shè)計一個電子產(chǎn)品的幾個大步驟。
一、需求
在做產(chǎn)品之前。我們要先了解這產(chǎn)品是干嘛用的?有些什么功能?然后該考慮供電問題,這涉及到電源電路的設(shè)計和功耗的考慮??紤]需要采集什么外部信號?控制什么設(shè)備?比如采集溫度,控制繼電器。還得考慮顯示部分的信息量,決定我們采用什么顯示方式,是用LED還是用數(shù)碼管還是用LCD或者tft彩屏。再考慮提醒部分,是否需要做聲光的提醒?還得考慮需要什么通訊協(xié)議?確定了這些后就可以做芯片選型和做初步方案了。
比如這里我們以做一個電子時鐘為例,(現(xiàn)在TB上紅得發(fā)紫的led時鐘,售價遠遠超出了成本價,而且買來還沒有源碼,這就失去了DIY的樂趣了)我們做這個開源的diy電子時鐘。需求如下:
1、一個時鐘能顯示年月日,時分秒,溫度;
2、能調(diào)整時間,具有鬧鐘功能,具有按鍵音;
3、亮度能隨環(huán)境光照自動調(diào)節(jié);
現(xiàn)在Tb上的好像也就這些功能,這個設(shè)計的資料以及打樣的板子小代打算等教程完了后免費送給大家,所以第二部分的設(shè)計部分我們就考慮成本最小化了,大家見諒。
二、選型及原理設(shè)計
有了需求后,我們就可以根據(jù)需求去選擇所需的元件,設(shè)計整個產(chǎn)品了。這里我設(shè)計的是一個電子時候,首先得有時鐘來源,可以采用單片機定時器產(chǎn)生,或者用專門的時鐘芯片。定時器產(chǎn)生的缺點是斷電后時間需要重新調(diào)整,此方法舍去。我們用時鐘芯片DS3231、 PCF8563和DS1302。最便宜的是DS1302,優(yōu)點是芯片小,電路簡單,占用3個IO。DS3231和 PCF8563芯片大,占用PCB空間大(話說PCB空間就是金錢?。撬麄儍蓚€芯片資源豐富。(網(wǎng)上說計時精準,小代沒測試過,不敢亂說。大家親測過的可以寫的文章發(fā)給小代,個人微信:dianzi126,QQ:2463515595,小代通過公眾號推送給大家,以后你寫的這文章的閱讀量可能會是我們送出板子的一個依據(jù)哦)DS1302芯片可以自動產(chǎn)生年月日時分秒的時間數(shù)據(jù),時鐘來源其實是一個32.768K的晶振提供,后面我們會詳細的介紹這芯片DS1302①。
時鐘來源有了,那得顯示出來我們才能看到是吧,這就是我們需要設(shè)計的顯示部分,上面提到,數(shù)碼管、LCD和TFT彩屏。時鐘顯示的大多是0-9的數(shù)字,顯示信息量也不大,同樣從經(jīng)濟考慮我們選用數(shù)碼管②。
溫度采集我們采用模擬方式?,F(xiàn)在流行的是用DS18B20單總線數(shù)字式芯片和DHT11芯片來做溫度,DHT11還能檢測濕度,但是這兩個數(shù)字式的芯片價格都在5-9元,這成本放在這樣一個DIY的數(shù)字時鐘上有些浪費了。所以,我們這里采用熱敏電阻③,通過簡單的電阻分壓方式測到溫度數(shù)據(jù),這樣一來我們選擇的單片機就需要帶有ADC了,這接下來說。
接下來就是鬧鐘功能后按鍵音提示,我們采用一個蜂鳴器④來完成兩個功能。顯示的亮度調(diào)節(jié),需要用光敏電阻來檢測環(huán)境光照才能得以實現(xiàn)。
最后我們的主角(單片機)⑤登場了。它是整個設(shè)計的核心,后續(xù)的程序設(shè)計好后就需要下載到單片機,它會按照我們程序設(shè)計的方式去控制剛才我們提到的這個芯片和外設(shè)來實現(xiàn)我們想要的功能。這樣的小設(shè)計,我們一般用8位的51單片機就可以完成了,這里我們用STC15系列的單片機。有了這些,整個設(shè)計的能源(電源)哪來?我們所選用的都是DC 5V供電的元件,所以電源可以直接用5V直流供電,比如USB接口。在電路設(shè)計時我們可以考慮下功耗的問題,輔助元件的選用上做點文章。
現(xiàn)在我們來整理下,這個設(shè)計需要些什么:時鐘芯片DS1302、數(shù)碼管、熱敏電阻、光敏電阻、蜂鳴器、單片機。但是,單獨的這些芯片是沒法完成我們所需要的功能的,還需要一些輔助元件(電阻、電容等)。接下來就是把這些芯片和輔助元件按照一定的規(guī)則組合起來(電路設(shè)計)。
三、電路設(shè)計及打樣
此部分這里我們不做詳細的介紹,后續(xù)會分模塊的詳細介紹。再此簡要介紹設(shè)計步驟。
電路設(shè)計需要專門的設(shè)計軟件,我們常用的是Protel 99SE。本軟件可以設(shè)計電路圖和PCB板圖,可以自動把電路圖轉(zhuǎn)到PCB圖紙中,功能強大。99SE這個版本是比較老的了,但小代用下來感覺是比較穩(wěn)定,兼容性比較好的一個版本,設(shè)計我們這樣的小板足夠了。設(shè)計好電路,再轉(zhuǎn)換到PCB圖紙中排兵布陣(元件擺放),手動布線,最終完成整個板子后就可以把PCB圖紙發(fā)給廠家打樣了?,F(xiàn)在各大廠家都有活動,打樣板子都不算貴了,電子愛好者,學生黨都能自己做板子了。一般打樣時間為3-4天,快遞3-4天,這樣下來就是差不多一周的時間,這段時間我們也不會閑著,可以先把程序框架搭好為后續(xù)的程序設(shè)計做準備。
四、樣板測試
等了一周,心癢癢啊。收到板子后大家肯定都是激動的,那就開始測試吧。開箱先檢查板子外觀、絲印等直觀的有沒有問題(一般都沒問題的,除非小作坊的板);然后測試電源VCC和GND直接有沒有連接,也就是測他們之間的電阻,理論上是無窮大。這些都沒問題后就準備元件焊接吧,焊接時一般的順序是:先矮后高。怎么說,就是元件在板子上的高度,現(xiàn)在從最矮的開始焊接,再焊接中等高度的,最后焊接最高的元件,注意,芯片一般采用底座焊接,芯片插底座上。注意:焊接完成后的板子在上電之前還得測量電源VCC和GND直接電阻,看是否有短路的情況,有短路問題需要排除問題后再上電。
五、程序設(shè)計及測試
程序設(shè)計說白了就是編程,編程需要編程軟件,大家都叫“開發(fā)環(huán)境”,是不是聽著就高大上了,其實就是一個軟件加上編譯器,不同的單片機的開發(fā)環(huán)境是不一樣的,這里我們用的51單片機的開發(fā)環(huán)境是keil 4。Keil 加上STM32的編輯器也可以做STM32的開發(fā)環(huán)境,相信大家都用過了。我們所有的程序都在keil 中編寫,完了編譯得到機器語言的16進制文件,最后下載到單片機里去,這樣,給我們焊接好的板子上電就可以看到我們要的效果了。但是一般我們寫的程序不可能一次就能通過,需要我們反復(fù)的調(diào)試,編譯,下載,上電測試,最終實現(xiàn)我們想要的功能為止。
六、組裝
到這里一個產(chǎn)品離成功不遠了,現(xiàn)在看到的還是我們的電路板,看著不美觀,一個產(chǎn)品我們還需要給他設(shè)計一個外殼。這個外殼需要和PCB板的大小,形狀合適。所以,在我們PCB板的時候就需要考慮到外殼的形狀,安裝孔等問題。對于我們電子愛好者來說,能看到電路板也許會感覺更帥些,所以小代再次就不考慮外殼的問題了。
到這里,用單片機設(shè)計一個產(chǎn)品的流程就完了,這里小代自己總結(jié)了6步,但是這六步之間不是獨立的,需要互相關(guān)聯(lián),比如剛才說的PCB板的形狀設(shè)計和外殼的挑選,比如數(shù)碼管電路設(shè)計與板子大小的選擇,比如布線難度和數(shù)碼管的選擇問題,比如按鍵的個數(shù)和程序設(shè)計的問題等等。
-
單片機
+關(guān)注
關(guān)注
6023文章
44376瀏覽量
628352 -
pcb
+關(guān)注
關(guān)注
4294文章
22776瀏覽量
393226 -
AVR
+關(guān)注
關(guān)注
11文章
1122瀏覽量
78397
發(fā)布評論請先 登錄
相關(guān)推薦
評論