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