回覆列表
  • 1 # 技術閒聊

    根據提問者的意思,想使用微控制器同時控制最多81個繼電器按照實際要求接通或斷開,能否做得到?

    微控制器的型別很多,比較常見的微控制器I/O口一般比較少,一般都是4組以內,每組8個,共32個I/O口,以及3組24個、2組16個、1組8個等,稍多一點的有64個I/O口。但是也有I/O口較多的微控制器,比如stm32f103zet6一共144個引腳,具有112個I/O口,足以滿足控制要求。

    驅動電路如下圖所示,由於大部分微控制器I/O的的預設值為高電平,因此再設計驅動電路時,採用低電平驅動繼電器工作。

    但是比較常用的C8051F系列微控制器其I/O口數量只有8~64個,若微控制器的I/O口不夠時怎麼辦?

    1、可以使用74HC595擴充套件。74HC595是一個具有輸出鎖存的序列輸入8位並行輸出的移位暫存器,在驅動數碼管當中經常有用到,如下圖為使用74HC595驅動數碼管的原理,控制繼電器時,74HC595的輸出口接PNP三極體即可,輸入低電平時三極體導通。

    2、可以使用可程式設計邏輯器件CPLD進行擴充套件。使用CPLD擴充套件的好處就是可以擴充套件很多I/O口,而且不會像使用74HC595那樣因為擴充套件得多了就會有一定的延時。其原理如下圖所示,透過讀RD、寫WR訊號以及AD資料地址匯流排進行傳輸資料,可以根據需求選擇合適I/O口的CPLD。

    3、使用多片微控制器。若一片微控制器的I/O口引腳不夠也可以使用兩片以上的微控制器,進行控制繼電器,只是需要編寫多個微控制器程式,若不同微控制器之間的繼電器需要互動時,微控制器之間還需增加通訊介面,可以使用SCI、SPI等通訊介面。

  • 2 # 玩轉嵌入式

    可以實現微控制器控制81個繼電器。如果微控制器的引腳比較多,GPIO數量超過81個,那麼可以直接用微控制器的GPIO口來驅動。但是如果微控制器的GPIO口比較少,那麼就需要考慮採用擴充套件晶片來擴充套件GPIO了。下面介紹一下微控制器驅動繼電器以及GPIO的擴充套件方法。

    1 微控制器驅動繼電器

    微控制器GPIO口的驅動能力有限,無法直接驅動繼電器,需要用三極體或者MOS管來驅動,以NPN三極體為例設計的繼電器驅動電路如下圖所示。

    三極體的基極透過電阻和微控制器的GPIO口來連線,繼電器接在三極體的集電極上,並在線圈的兩端連線了一個反向的續流二極體。當GPIO輸出高電平時,NPN三極體導通,繼電器動作;當GPIO口輸出低電平時,NPN截止,繼電器復位。由此即可實現微控制器控制繼電器的作用。如果微控制器的GPIO口足夠,重複設計以上電路即可。如果GPIO口不夠的話就要設計擴充套件電路了。

    2 微控制器GPIO口的擴充套件

    我比較喜歡用74HC595來擴充套件微控制器的GPIO,用在數碼管驅動、繼電器驅動電路中。該晶片是傳入並處帶有所存功能的移位暫存器,具有級聯引腳,可以實現多片晶片的級聯,只需要用到微控制器的3個GPIO口。即三個GPIO口就能擴展出8/16/32等GPIO口。

    如果是32位的微控制器可以將4片74HC595作為一組,用三個GPIO口擴展出32個GPIO,那麼只需要3組9個微控制器引腳就能擴出96個GPIO。下圖是595部分的C語言程式。

    除了使用這類移位暫存器外,還可以使用IIC擴充套件器件,微控制器與擴充套件器件透過IIC來通訊,但是這類晶片的價格要比74HC595貴很多,如果成本預算比較松的話,可以參考一下這類晶片。

  • 3 # 子夜醒來時

    用移位暫存器級聯方式與微控制器I/O口連線。繼電器的控制資料是以序列傳送的,這樣可以減少微控制器的控制輸出口的數目,甚至只用一個口就能控制81個繼電器。我早已經做過類似的專案了。

  • 4 # 使用者8729619767096

    8100000000000000000000000000000000000000………………

    都可以

  • 5 # 很傻很天真32904029

    方法一:用八腳微控制器掛匯流排級聯,用通訊方式,別說81個了,掛一公里長的應該都沒有問題。

    方法二:用2的次方算看看多少個腳位,用邏輯晶片轉。

    方法三:現在的微控制器比如STM32系列的,最多有200多個腳位,81個顯然還是很少的。

  • 6 # 電子產品設計方案

    微控制器同時控制81個繼電器肯定是沒問題的

    微控制器作為一個計算、處理、控制中心,控制題主所說的81個繼電器是絕對沒問題的,題主提到81個繼電器需要單獨分開控制,只要給每個繼電器單獨分配一個輸出口和一組驅動電路就可以了。如果用NPN三極體驅動繼電器,輸出口為高電平時,繼電器就接通,輸出口為低電平,繼電器斷開。

    微控制器直接控制81個繼電器

    直接由微控制器的GPIO來控制這81個繼電器是最為簡單的,只要選擇一款GPIO足夠多的微控制器就可以了。不同引腳那麼多的微控制器一般都是功能比較強大的,價格估計也不低,僅用於控制繼電器感覺有點浪費了,除非題主所設計的產品除了要控制這81個繼電器外還有其它複雜的運算要進或者一些特別的功能。

    擴充套件IO控制81個繼電器

    如果想節省成本,可以參考驅動數碼管的思路,驅動較多數量數碼管時,我們也會用到IO擴充套件的方法,比如用74HC595這種位移邏輯控制晶片進行級聯控制。一片74HC595有八個輸出口,兩片就可以擴展出八個輸出口,11片74HC595就可以擴展出88個IO了,控制題主要求的81個繼電器自然就不在話下了。

    當然還可以用IO擴充套件晶片,可以透過SPI或者IIC介面擴展出很多很多的IO。

    值得注意的的眾多繼電器同時工作需要的電流也是較大的,設計驅動繼電器的電源也需要特別注意哦。

  • 7 # 創意電子DIY分享

    想用微控制器控制81個繼電器的接通與斷開,若選用的微控制器的I∕O口足夠多,透過程式完全可以使這些繼電器按需要接通或斷開。這裡以ATmega2560微控制器為例,介紹一下驅動這些繼電器的方法。▲ 微控制器透過MOSFET驅動繼電器。

    上圖中的ATmega2560是一款Atmel公司生產的8位AVR微控制器,採用QFP100封裝,有86個I∕O口。一般用微控制器控制繼電器的通斷,採用普通的雙極型三極體驅動即可,這裡由於要同時控制最多81個繼電器的通斷,若採用雙極型三極體驅動繼電器,管子同時工作的話,可能會從微控制器汲取較大的電流,故這裡選用貼片MOS場效電晶體來驅動這些繼電器。

    上圖是微控制器一個I∕O口透過N溝道MOS場效電晶體驅動繼電器的電路。只要給微控制器編寫相應的程式,其I∕O口即可根據需要控制繼電器的通斷。由於MOS場效電晶體為電壓控制器件,其柵源兩極之間只要有足夠大的驅動電壓即可控制繼電器的通斷。在低速控制的情況下,這類MOS場效電晶體從微控制器I∕O口汲取的電流一般≤2μA。若控制81個繼電器,可以在微控制器的每個I∕O口加一個MOS場效電晶體。圖中用的AO3400是一款貼片封裝的、低開啟電壓(1.5~2V)的N溝道MOS場效電晶體,其耐壓值為30V,漏極電流可達5.7A。▲ ATmega2560微控制器。

    用微控制器控制數十個繼電器的通斷,這些繼電器工作時可能會對微控制器電路產生干擾,故微控制器與繼電器不可共用一組電源,微控制器需要的5V電壓可由7805或AMS1117穩壓後供給。

  • 8 # 黃鶴樓天下江山第一樓

    答:微控制器能同時控制81個繼電器通斷。靠微控制器自身完81繼電器動作是有困難。因為微控制器腳位電路帶載能力有限,不防可改變透過外圍電器來擴大控制81個繼電器通和斷。這樣晶片程式編好就可以用。

  • 9 # leang789

    看你的時間需求,曾用74595驅動100多個繼電器,做到0.1ms延遲。

    一般現在的74晶片做到10M的速度沒問題。驅動100個繼電器就是傳送100位的資料,再加上資料準備匯流排控制等時間開銷基本等於傳送100多位資料。我們按照最惡劣狀態下發送200位資料,等於需要耗時50k個時鐘週期。約等於0.02ms。

  • 中秋節和大豐收的關聯?
  • 現在結婚還講究門當戶對嗎?