資料介紹
描述
這是一個瘋狂的項目,但有趣且具有教育意義。也許這是一個很好的 STEM 項目。繼電器又大又吵。構(gòu)建一個基于繼電器的二進制計數(shù)器是一種有趣的方式來向孩子(也許還有一些成年人)展示數(shù)字電子設(shè)備的工作原理!
語境
為什么我們對觸發(fā)器或二進制計數(shù)器感興趣?這些是數(shù)字電子產(chǎn)品的基本組成部分。每個微處理器或微控制器都由寄存器組成,其中存儲數(shù)字并進行數(shù)學(xué)處理。觸發(fā)器是寄存器中的基本元素——它存儲 1 位,我們的二進制計數(shù)器基本上是一個計算機寄存器。在操作我們的計數(shù)器時,我們每次計數(shù)都會增加存儲在該寄存器中的值。
在微處理器中,觸發(fā)器由微型晶體管制成,但它們的作用與我們的繼電器觸發(fā)器相同。一個典型的微處理器有幾十個寄存器和幾千個觸發(fā)器。該項目可能會為最基本的數(shù)字電子操作提供一些見解。
對我來說,這個項目是懷舊的,因為我在 1960 年第一次用繼電器構(gòu)建了一個二進制計數(shù)器,當時微控制器或個人計算機甚至還沒有出現(xiàn)!我是一名 16 歲的高中生。我最初的項目是一個 10 級計數(shù)器,由某人給我的 20 個剩余繼電器制成。這對其他孩子來說很有趣,因為它在運行時發(fā)出了可怕的球拍。最后我把它捐給了我的高中物理課。
這個項目也有歷史成分。計算機從來都不是用繼電器制造的——它們太慢了。最大時鐘頻率約為 20 Hz。但是當我用繼電器構(gòu)建我的第一個二進制計數(shù)器時,計算機觸發(fā)器仍然是由兩個真空管制成的!除了速度慢之外,繼電器觸發(fā)器看起來還不錯!
我們將在 2021 年將項目與我在 1960 年所做的相提并論,使用 Arduino 控制我們的計數(shù)器并顯示計數(shù),但想法仍然相同 - 使用兩個 DPDT(雙刀雙擲)繼電器構(gòu)建一個觸發(fā)器,然后使用我們的五個繼電器觸發(fā)器構(gòu)建一個二進制計數(shù)器。
繼電器觸發(fā)器
那么從哪里開始。首先,讓我們看看我們?nèi)绾斡美^電器構(gòu)建觸發(fā)器。最簡單的方法是設(shè)置/復(fù)位觸發(fā)器或數(shù)字鎖存器。
簡單的觸發(fā)器鎖存器
在上圖中,繼電器 B 開啟,A 關(guān)閉。機械閉合繼電器 A 和 B 關(guān)閉,鎖存 A 閉合,機械閉合 B 和 A 關(guān)閉,鎖存 B 打開。
但是我們的二進制計數(shù)器需要一些更復(fù)雜的東西。我們需要一個撥動觸發(fā)器。切換觸發(fā)器具有單個輸入。給它一個脈沖,它就會鎖存。再給它一個脈沖,它就會解鎖。它基本上除以二。
每個輸入脈沖導(dǎo)致輸出改變
正如我們已經(jīng)說過的,繼電器中的觸發(fā)器比鎖存器復(fù)雜一點。它需要兩個 DPDT 繼電器,接線如下圖所示。
但它是如何工作的?通過稍微不同的方式繪制它更容易看出它是如何工作的。
上圖顯示了首次上電時如何配置繼電器。兩個繼電器都不打開。按下按鈕,一條路徑閉合,為繼電器 B 通電。為繼電器 B 通電使我們的兩個繼電器線圈串聯(lián),但我們的按鈕也在繼電器線圈 A 周圍分流(或短路)電流,所以現(xiàn)在,繼電器 B 開啟并且繼電器 A 關(guān)閉。但是釋放我們的按鈕會移除 A 周圍的分流器,兩個繼電器現(xiàn)在都打開了。但是請注意,我們的按鈕的情況現(xiàn)在顛倒了。再次推動它分流并打開繼電器 B,斷開兩個繼電器線圈之間的連接。現(xiàn)在釋放我們的按鈕會移除線圈 A 的電源,現(xiàn)在兩個繼電器都關(guān)閉,這是我們開始的情況。
因此,按下并釋放按鈕以鎖定兩個繼電器。再次按下并釋放,兩個繼電器都會解鎖。我們的撥動觸發(fā)器除以二。這正是我們構(gòu)建二進制計數(shù)器所需要的。
12伏繼電器
以上是我們使用的 12 伏繼電器。我選擇這個繼電器是因為它是一個相對便宜的剩余繼電器——亞馬遜 2.40 美元,eBay 1.50 美元,如果你可以等一個月從中國買到的話。
在我們的觸發(fā)器配置中連接其中兩個繼電器如下所示:
在下面的照片中,您可以看到兩個繼電器是如何連接起來以產(chǎn)生上述配置的。紅線是+24伏。黑色是地面。黃色和綠色線是我們的輸入。我們需要 24 伏電壓,因為有時我們的繼電器線圈是串聯(lián)的,它們需要閉合。這不適用于我們在 12 伏下運行的 12 伏繼電器。(我嘗試了 15 伏,但也沒有用。)
現(xiàn)在讓我們看看我們的觸發(fā)器在起作用。
在上面的視頻中,我們使用 Arduino Uno 和繼電器模塊作為觸發(fā)器的輸入。多虧了我們繼電器內(nèi)置的 LED,您實際上可以看到觸發(fā)器在鎖定和解除鎖定時經(jīng)歷了我們上面描述的四個步驟。
Arduino 還沒有做太多,老實說,這個項目并沒有真正關(guān)注 Arduino。但是稍后,當我們建立計數(shù)器時,我們將使用它來以十進制顯示計數(shù)器的輸出。
關(guān)于電源的說明:我們的繼電器線圈在 12 伏電壓下正確供電時會消耗 75 毫安或 0.9 瓦。當以 24 伏供電時,它們消耗兩倍的電流并耗散 3.6 瓦。它們像那樣工作得很好,但隨著時間的推移會變熱并消耗大量的能量。我建議像這樣使用它們進行幾分鐘的簡短演示,而不是連續(xù)使用。
二進制計數(shù)器
所以現(xiàn)在我們可以再把四個繼電器觸發(fā)器放在一起,構(gòu)建一組觸發(fā)器作為計數(shù)器,每個階段的輸出成為下一個階段的輸入。下面是我們連接在一起的人字拖組。第一階段目前在右邊,但是當我們翻轉(zhuǎn)它時,我們的計數(shù)器將從左到右移動。所有接線均使用 22 號裸鍍錫銅線完成。
所以現(xiàn)在讓我們將我們的觸發(fā)器庫連接到 Arduino 和我們的繼電器模塊。它們一起形成了一個 6 級計數(shù)器,繼電器模塊作為第一級,我們的觸發(fā)器作為下一個 5。我們的計數(shù)器可以在重新開始之前從 0 計數(shù)到 63。
但是有問題!我們從 0 到 63 的漂亮計數(shù)器顯示在哪里?它確實存在,但不是我們想要的形式。繼電器模塊上的紅色 LED 和繼電器觸發(fā)器上下方的綠燈實際上顯示了我們正在尋找的計數(shù)器,但它是反轉(zhuǎn)的,這意味著打開的 LED 為 0,關(guān)閉的 LED 為 1。下方的綠燈告訴我們下繼電器打開。我們的計數(shù)被反轉(zhuǎn)的原因是因為我們計數(shù)器的第一個輸入脈沖打開了我們計數(shù)器中所有較低的繼電器——它們都打開了;下方的綠燈全部亮起;那時我們的計數(shù)器為 0!
早在 1960 年,我最初的基于繼電器的二進制計數(shù)器就沒有這個問題。我實際上使用了帶有額外極點或開關(guān)的 3PDT 繼電器來顯示結(jié)果。由于那時我們沒有 LED,我實際上使用連接到第三極開關(guān)的小霓虹燈來顯示計數(shù)。
顯示我們的二進制計數(shù)
我們只需要雙極繼電器來構(gòu)建我們的觸發(fā)器,但是兩個繼電器上的所有極都在使用中。所以要顯示我們的計數(shù)器的輸出,我們需要從正確的信號環(huán)顧四周。正如我們已經(jīng)說過的,下繼電器的狀態(tài)是一個良好的信號,但它是反相的。因此,為了正確顯示計數(shù)器的輸出,我們需要構(gòu)建一個帶有一些逆變器的小板。要反轉(zhuǎn)信號并驅(qū)動 LED,我們需要一個晶體管和兩個電阻器。
以上是我們需要在計數(shù)器的每個階段反轉(zhuǎn)下繼電器的狀態(tài)并顯示計數(shù)的內(nèi)容。另一個好處是我們的 LED 實際上提供了一個數(shù)字輸出,我們可以將其發(fā)送回 Arduino 以十進制顯示我們的計數(shù)器的輸出。LED 在關(guān)閉時處于 0.7 v. 或 LOW(晶體管的基極-發(fā)射極結(jié)的正向壓降),在其開啟時處于大約 3.2 v. 或 HIGH(我們使用藍色 LED 的高正向壓降)。更多關(guān)于在一分鐘內(nèi)將我們的計數(shù)發(fā)送到 Arduino 的信息。
所以上面我們有一塊板子,上面有 6 個逆變器和藍色 LED。需要注意的一點是第一級(最左邊)的基極電阻是 15K 歐姆而不是 100K。那是因為它的 5 伏信號直接來自 Arduino,與其他來自 12/24 v 繼電器高端的信號不同。
下面,我們將它付諸實踐。在這段視頻中,我將電路板旋轉(zhuǎn)了 180 度,所以現(xiàn)在我們的二進制計數(shù)器從右到左讀取(右側(cè)的最低有效位),與我們通常顯示數(shù)字的方式相同。
上面是使用我們的逆變器和藍色 LED 來顯示我們的二進制計數(shù)的計數(shù)器的視頻。我們在這里以 250 毫秒計算。每個計數(shù),所以我們從 0 計數(shù)到 63 并每 15 秒重新開始。
將輸出轉(zhuǎn)換回十進制
首先,在我們繼續(xù)之前,讓我們添加一個計數(shù)器。我偶爾會看到我的柜臺跳過一個節(jié)拍。這似乎是第一個未能鎖定的觸發(fā)器。考慮原因,我得出結(jié)論,繼電器模塊觸點可能會彈跳。所有機械開關(guān)在接觸時都會有一點反彈,從而增加了數(shù)字“噪音”。所以這可能是原因。我在繼電器模塊的輸出端直接添加了一個 0.01 mfd 電容器以抑制任何噪聲。當它完全解決問題時,我感到很驚喜!
所以現(xiàn)在,讓我們比我在 1960 年能做的更進一步。讓我們使用 Arduino 讀取我們的二進制計數(shù)器并將結(jié)果顯示為十進制數(shù)。當然,我們可以先將發(fā)送到計數(shù)器的脈沖相加并得到正確的數(shù)字,但讀取二進制計數(shù)器并將輸入轉(zhuǎn)換回十進制數(shù)字會更有趣。
我們將 LED 的陽極連接到 Arduino 的引腳 5-10,我們將其置于數(shù)字讀取模式。(引腳 5 指向最不重要的 LED,10 指向最重要的 LED,等等。)為了將二進制數(shù)據(jù)收集到單個數(shù)字中,我們讀取每個引腳并將其內(nèi)容左移其重要性,將所有六個加起來,然后我們將我們的數(shù)字存儲在一個整數(shù)變量中(仍然是二進制)。(有關(guān)詳細信息,請參閱軟件。)
現(xiàn)在剩下的就是顯示它。為此,我使用 ss_oled 庫的 1 英寸 OLED 顯示器。顯示器在引腳 A4 和 A5 處使用 i2c 接口。我不會在這里詳細介紹如何使用顯示,但我在這里所做的與庫中的示例基本相似 - 沒什么復(fù)雜的。
關(guān)于軟件的一個注意事項是,我們必須在增加計數(shù)后等待幾毫秒,然后才能從顯示器讀取它。那是因為繼電器打開和關(guān)閉需要時間,并且更改需要額外的時間才能沿著我們的觸發(fā)器鏈傳播。我實際上正在等待整整 50 毫秒。在閱讀柜臺之前!順便說一句 - 觸發(fā)器鏈的傳播延遲是限制真實計算機速度的主要問題之一。微控制器設(shè)計人員通過各種技巧來避免它并最大限度地提高現(xiàn)代處理器的時鐘頻率!
但是您可能想知道如果我們不擔心顯示和傳播延遲,我們可以使計數(shù)器運行多快。這是答案。
它仍然沒有那么快 - 數(shù)到 64 大約需要 4 秒。大約是 16 Hz。在某些時候,向計數(shù)器發(fā)送脈沖的速度有多快并不重要。繼電器只能如此快速地打開和關(guān)閉,所以在某些時候,它們開始忽略額外的脈沖!為了讓顯示器正常工作(同樣是因為觸發(fā)器鏈的傳播延遲),我們需要一個較慢的速度,大約是我們最大速度的 1/2。
軟件
您在帶有 OLED 顯示屏的視頻(從這里開始的第二個)中看到的是本教程提供的 Arduino 草圖。當前設(shè)置為每秒 4 次計數(shù),但您可以在開頭使用 #define 語句加快或減慢速度。它可用于本教程中顯示的項目的所有不同階段。此草圖中使用的 ss_oled 庫可以直接從 Manage Library 工具下載。應(yīng)該已經(jīng)安裝了 stdlib.h 庫。
最后的想法
這就是我們的項目!也許是一次很好的學(xué)習(xí)經(jīng)歷。也許讓我們對今天我們都認為理所當然的數(shù)字硬件中發(fā)生的一切有了更多的了解和欣賞。正如我一開始所說,對于一群年輕的數(shù)字電子愛好者來說,也許是一個很好的 STEM 項目!
我在 1960 年的原始項目在某些方面比這個項目更容易。我想我使用的是 24 伏交流繼電器——我不記得處理過直流電源。我認為一個 24 伏變壓器為整個設(shè)備供電,這意味著它可以關(guān)閉兩個串聯(lián)的 24 伏繼電器,所以我不必像這次那樣以推薦電壓的兩倍來操作我的繼電器。我的繼電器上有一組額外的觸點。不需要額外的電路來顯示計數(shù)器的狀態(tài)——一個霓虹燈和電阻器就可以了,直接從交流線路供電。當然,我沒有 Arduino 或類似的東西將我的二進制數(shù)轉(zhuǎn)換回十進制數(shù)。
在我們當前版本的計數(shù)器中,我們使用 Arduino 為我們的計數(shù)器生成輸入脈沖。您可能想知道這在 1960 年是如何實現(xiàn)的。還有另一個繼電器電路,我們不會在這里介紹,但它是一種使用幾個繼電器以及一個電位計和電容器創(chuàng)建多諧振蕩器電路的方法 -比較簡單的電路。它為我原來的計數(shù)器提供了一系列可調(diào)速率的脈沖。
您可能還想知道基于繼電器的觸發(fā)器的想法最初來自哪里。我在某個地方找到了它,但就像我們所有人都大到可以記住互聯(lián)網(wǎng)之前的生活一樣,我很難記住我們在沒有互聯(lián)網(wǎng)的情況下是如何相處的!我不知道我是如何或在哪里找到它的!
- 使用Arduino UNO構(gòu)建4位二進制計數(shù)器
- 構(gòu)建LED二進制計數(shù)器
- 8位同步二進制遞減計數(shù)器-74HC40103
- 7級二進制紋波計數(shù)器-74HC4024_Q100
- 雙4位同步二進制計數(shù)器-74HC_HCT4520
- 雙4位二進制紋波計數(shù)器-74LV393
- 12級二進制紋波計數(shù)器-74HC_HCT4040
- 14級二進制紋波計數(shù)器-74HC_HCT4020
- 14級二進制計數(shù)器-HEF4020B
- 12級二進制紋波計數(shù)器-HEF4040B
- 12級二進制紋波計數(shù)器-HEF4040B_Q100
- PLC實例講解之計數(shù)器值以二進制輸出資源下載 22次下載
- 二進制加計數(shù)器淺析 6次下載
- 3位二進制計數(shù)器 1次下載
- TTL二進制同步可逆計數(shù)器
- 二進制處理中的一些技巧 338次閱讀
- 二進制對數(shù)梯形網(wǎng)絡(luò)電路原理圖 424次閱讀
- 二進制加法的實現(xiàn)細節(jié) 2207次閱讀
- 二進制編碼器和二-十進制編碼器講解 1.1w次閱讀
- 構(gòu)建一個4位二進制計數(shù)器 4197次閱讀
- 數(shù)字二進制計數(shù)器的設(shè)計和實現(xiàn) 1656次閱讀
- 基于FPGA的二進制時鐘設(shè)計方案 2065次閱讀
- 減法計數(shù)器的結(jié)構(gòu)原理 1.7w次閱讀
- 二進制解碼器到底是什么 6078次閱讀
- 如何利用二進制數(shù)實現(xiàn)BCD碼的轉(zhuǎn)換 2.7w次閱讀
- 格雷碼與二進制的轉(zhuǎn)換 1.7w次閱讀
- 二進制數(shù)據(jù)壓縮算法 1.9w次閱讀
- 74ls160構(gòu)成24進制計數(shù)器 16.3w次閱讀
- 74LS161集成計數(shù)器電路(2、3、4、6、8、10、60進制計數(shù)器) 41.8w次閱讀
- 74ls161制作24進制計數(shù)器設(shè)計 12.1w次閱讀
下載排行
本周
- 1Keysight B1500A 半導(dǎo)體器件分析儀用戶手冊、說明書 (中文)
- 19.00 MB | 4次下載 | 免費
- 2使用TL431設(shè)計電源
- 0.67 MB | 2次下載 | 免費
- 3BT134雙向可控硅手冊
- 1.74 MB | 2次下載 | 1 積分
- 4一種新型高效率的服務(wù)器電源系統(tǒng)
- 0.85 MB | 1次下載 | 1 積分
- 5LabVIEW環(huán)形控件
- 0.01 MB | 1次下載 | 1 積分
- 6PR735,使用UCC28060的600W交錯式PFC轉(zhuǎn)換器
- 540.03KB | 1次下載 | 免費
- 751單片機核心板原理圖
- 0.12 MB | 1次下載 | 5 積分
- 8BP2879DB支持調(diào)光調(diào)滅的非隔離低 PF LED 驅(qū)動器
- 1.44 MB | 1次下載 | 免費
本月
- 1開關(guān)電源設(shè)計原理手冊
- 1.83 MB | 54次下載 | 免費
- 2FS5080E 5V升壓充電兩串鋰電池充電管理IC中文手冊
- 8.45 MB | 23次下載 | 免費
- 3DMT0660數(shù)字萬用表產(chǎn)品說明書
- 0.70 MB | 13次下載 | 免費
- 4UC3842/3/4/5電源管理芯片中文手冊
- 1.75 MB | 12次下載 | 免費
- 5ST7789V2單芯片控制器/驅(qū)動器英文手冊
- 3.07 MB | 11次下載 | 1 積分
- 6TPS54202H降壓轉(zhuǎn)換器評估模塊用戶指南
- 1.02MB | 8次下載 | 免費
- 7STM32F101x8/STM32F101xB手冊
- 1.69 MB | 8次下載 | 1 積分
- 8基于MSP430FR6043的超聲波氣體流量計快速入門指南
- 2.26MB | 7次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935119次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
- 1.48MB | 420061次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233084次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191367次下載 | 10 積分
- 5十天學(xué)會AVR單片機與C語言視頻教程 下載
- 158M | 183335次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81581次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73807次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65987次下載 | 10 積分
評論
查看更多