前言
數(shù)電和模電到底什么?單片機(jī)的IO口處理的是什么?硬件通訊是怎么來完成的?
這就是我們這里的內(nèi)容。
數(shù)字量
數(shù)字量,是一種布爾類型,它只有兩種狀態(tài)——真假、高低、有無等等。
在電子設(shè)計(jì)當(dāng)中,我們所“使用”的就是“高低”狀態(tài),比如我們單片機(jī)所說的高電平、低電平。
我們通過給三極管的基極高低電平,實(shí)現(xiàn)對三極管集電極和發(fā)射機(jī)的導(dǎo)通性控制,這就是一個(gè)應(yīng)用,這里我們以蜂鳴器模塊為例。
蜂鳴器模塊
蜂鳴器模塊是最為基礎(chǔ)的一個(gè)傳感器,分為有源蜂鳴器和無源蜂鳴器。
蜂鳴器的實(shí)質(zhì)跟揚(yáng)聲器差不多,一些線圈+磁鐵的方式,給線圈提供交流電,線圈在磁鐵的作用下帶動薄膜震動發(fā)出聲音。
有源蜂鳴器的內(nèi)部集成有震蕩電路,可以將直流電信號轉(zhuǎn)變?yōu)榻涣麟娦盘枏亩l(fā)出聲音。
但是由于內(nèi)部的震蕩電路頻率是固定的,所以發(fā)出的聲音頻率是不可變,我們只能通過調(diào)節(jié)功率的大小實(shí)現(xiàn)對聲音大小的控制。
無源蜂鳴器的內(nèi)容沒有震蕩電路,我們需要使用交流電信號才能讓其發(fā)出聲音。
我們可以通過單片機(jī)的IO引腳產(chǎn)生指定頻率的信號來驅(qū)動、也可以借助一些時(shí)鐘芯片(比如NE555)來產(chǎn)生周期性的變化電流來驅(qū)動。
通過頻率的不同,發(fā)出的聲音也是不同的,這也就是那些midi音樂的原理。
蜂鳴器模塊由三根引腳,分別是VCC、GND兩個(gè)供電引腳和IO信號引腳構(gòu)成。
單片機(jī)的IO口不可以直接驅(qū)動,一是單片機(jī)的IO驅(qū)動電流不夠可能無法發(fā)聲(功率不足、音量過低),二是蜂鳴器的線圈會通過IO對單片機(jī)內(nèi)部造成傷害。
所以這個(gè)時(shí)候我們需要來設(shè)計(jì)以一個(gè)驅(qū)動電路來實(shí)現(xiàn)控制。
三極管的三個(gè)極分別是基極、集電極、發(fā)射極,通過三極管分為NPN和PNP兩種。
我們將單片機(jī)的IO引腳接在三極管的基極(閥門),將蜂鳴器和三極管的集電極、發(fā)射機(jī)極連接。
單片機(jī)IO來控制基極、基極控制集電極和發(fā)射機(jī)是否導(dǎo)通、最終實(shí)現(xiàn)蜂鳴器驅(qū)動電路的設(shè)計(jì)。
這是使用S8050三極管實(shí)現(xiàn)的蜂鳴器驅(qū)動電路。S8050是一款小功率NPN型硅管,集電極-基極(Vcbo)電壓最大可為40V,集電極電流為(Ic)0.5A。
IO在三極管施加高電平、控制三極管的集電極和發(fā)射極導(dǎo)通,VCC經(jīng)過蜂鳴器、經(jīng)過三極管的集電極和發(fā)射極、流向GND形成閉路(閉合的電路),蜂鳴器發(fā)出聲音。
這也是最基礎(chǔ)一個(gè)正邏輯、共陽性驅(qū)動電路。
根據(jù)三極管電壓、電流的范圍,我們可以將這個(gè)電路應(yīng)用在更多的方面。
比如驅(qū)動一個(gè)功率大一點(diǎn)的LED、驅(qū)動一個(gè)直流電機(jī)等等,這一類屬于是數(shù)字輸出型、高電平觸發(fā)型傳感器驅(qū)動電路。
如果蜂鳴器是有源蜂鳴器,那么通過高低電平即可實(shí)現(xiàn)蜂鳴器的狀態(tài)——“響和不響”;
如果蜂鳴器是無源蜂鳴器,我們在基極(IO引腳)施加頻率脈沖信號時(shí),根據(jù)三極管的特性,蜂鳴器會產(chǎn)生相應(yīng)頻率的聲音。
這是一種高電平觸發(fā)的傳感器,那么有沒有低電平觸發(fā)的呢?
有的,大家可以在這個(gè)電路的基礎(chǔ)上增加一個(gè)“反相電路”,又或者是使用PNP三極管即可實(shí)現(xiàn)。
但是低電平觸發(fā)的傳感器,需要在特定的場景下才能進(jìn)行使用。
單片機(jī)IO的模式有以下幾種:
- 上拉模式:通過上拉電阻使引腳默認(rèn)處于高電平。
- 下拉模式:通過下拉電阻使引腳默認(rèn)處于低電平。
- 浮空模式:即引腳高低電平不明,默認(rèn)可能處于高電平,也可能處于低電平。
當(dāng)然還有推挽和開漏,這部分內(nèi)容我們后期解鎖。
很多單片機(jī)在使用的時(shí)候如果沒有對相關(guān)引腳進(jìn)行初始化,那么這個(gè)引腳將處于浮空模式,不知道它是高還是低。
現(xiàn)在很多單片機(jī)內(nèi)部集成了處理默認(rèn)是低電平模式,當(dāng)然你也可以配置寄存器實(shí)現(xiàn)默認(rèn)是高電平電路設(shè)計(jì)。
如果你現(xiàn)在的蜂鳴器模塊是低電平觸發(fā)的,那么在你還沒有上傳程序的時(shí)候?qū)恢卑l(fā)聲。
我們默認(rèn)了真、高、有是一類,默認(rèn)了假、低、無是一類,這也就是所說的正邏輯。
而低電平發(fā)出聲音、高電平不發(fā)出聲音,這屬于是負(fù)邏輯。
對于我們的很多時(shí)候的設(shè)計(jì),會有不同的影響。
評論