電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>STEM項(xiàng)目之構(gòu)建基于繼電器的二進(jìn)制計數(shù)器

STEM項(xiàng)目之構(gòu)建基于繼電器的二進(jìn)制計數(shù)器

2022-10-18 | zip | 0.17 MB | 次下載 | 免費(fèi)

資料介紹

描述

這是一個瘋狂的項(xiàng)目,但有趣且具有教育意義。也許這是一個很好的 STEM 項(xiàng)目。繼電器又大又吵。構(gòu)建一個基于繼電器的二進(jìn)制計數(shù)器是一種有趣的方式來向孩子(也許還有一些成年人)展示數(shù)字電子設(shè)備的工作原理

語境

為什么我們對觸發(fā)器或二進(jìn)制計數(shù)器感興趣?這些是數(shù)字電子產(chǎn)品的基本組成部分。每個微處理器微控制器都由寄存器組成,其中存儲數(shù)字并進(jìn)行數(shù)學(xué)處理。觸發(fā)器是寄存器中的基本元素——它存儲 1 位,我們的二進(jìn)制計數(shù)器基本上是一個計算機(jī)寄存器。在操作我們的計數(shù)器時,我們每次計數(shù)都會增加存儲在該寄存器中的值。

在微處理器中,觸發(fā)器由微型晶體管制成,但它們的作用與我們的繼電器觸發(fā)器相同。一個典型的微處理器有幾十個寄存器和幾千個觸發(fā)器。該項(xiàng)目可能會為最基本的數(shù)字電子操作提供一些見解。

對我來說,這個項(xiàng)目是懷舊的,因?yàn)槲以?1960 年第一次用繼電器構(gòu)建了一個二進(jìn)制計數(shù)器,當(dāng)時微控制器或個人計算機(jī)甚至還沒有出現(xiàn)!我是一名 16 歲的高中生。我最初的項(xiàng)目是一個 10 級計數(shù)器,由某人給我的 20 個剩余繼電器制成。這對其他孩子來說很有趣,因?yàn)樗谶\(yùn)行時發(fā)出了可怕的球拍。最后我把它捐給了我的高中物理課。

這個項(xiàng)目也有歷史成分。計算機(jī)從來都不是用繼電器制造的——它們太慢了。最大時鐘頻率約為 20 Hz。但是當(dāng)我用繼電器構(gòu)建我的第一個二進(jìn)制計數(shù)器時,計算機(jī)觸發(fā)器仍然是由兩個真空管制成的!除了速度慢之外,繼電器觸發(fā)器看起來還不錯!

我們將在 2021 年將項(xiàng)目與我在 1960 年所做的相提并論,使用 Arduino 控制我們的計數(shù)器并顯示計數(shù),但想法仍然相同 - 使用兩個 DPDT(雙刀雙擲)繼電器構(gòu)建一個觸發(fā)器,然后使用我們的五個繼電器觸發(fā)器構(gòu)建一個二進(jìn)制計數(shù)器。

繼電器觸發(fā)器

那么從哪里開始。首先,讓我們看看我們?nèi)绾斡美^電器構(gòu)建觸發(fā)器。最簡單的方法是設(shè)置/復(fù)位觸發(fā)器或數(shù)字鎖存器。

latch_s3kD4KJfLH.jpg?auto=compress%2Cformat&w=740&h=555&fit=max

簡單的觸發(fā)器鎖存器

在上圖中,繼電器 B 開啟,A 關(guān)閉。機(jī)械閉合繼電器 A 和 B 關(guān)閉,鎖存 A 閉合,機(jī)械閉合 B 和 A 關(guān)閉,鎖存 B 打開。

但是我們的二進(jìn)制計數(shù)器需要一些更復(fù)雜的東西。我們需要一個撥動觸發(fā)器。切換觸發(fā)器具有單個輸入。給它一個脈沖,它就會鎖存。再給它一個脈沖,它就會解鎖。它基本上除以二。

toggle2_jLrkjv1iwk.jpg?auto=compress%2Cformat&w=740&h=555&fit=max

每個輸入脈沖導(dǎo)致輸出改變

正如我們已經(jīng)說過的,繼電器中的觸發(fā)器比鎖存器復(fù)雜一點(diǎn)。它需要兩個 DPDT 繼電器,接線如下圖所示。

toggle_W0OnUhIMMo.jpg?auto=compress%2Cformat&w=740&h=555&fit=max

但它是如何工作的?通過稍微不同的方式繪制它更容易看出它是如何工作的。

how_it_works_02BjhIe3vY.jpg?auto=compress%2Cformat&w=740&h=555&fit=max

上圖顯示了首次上電時如何配置繼電器。兩個繼電器都不打開。按下按鈕,一條路徑閉合,為繼電器 B 通電。為繼電器 B 通電使我們的兩個繼電器線圈串聯(lián),但我們的按鈕也在繼電器線圈 A 周圍分流(或短路)電流,所以現(xiàn)在,繼電器 B 開啟并且繼電器 A 關(guān)閉。但是釋放我們的按鈕會移除 A 周圍的分流器,兩個繼電器現(xiàn)在都打開了。但是請注意,我們的按鈕的情況現(xiàn)在顛倒了。再次推動它分流并打開繼電器 B,斷開兩個繼電器線圈之間的連接?,F(xiàn)在釋放我們的按鈕會移除線圈 A 的電源,現(xiàn)在兩個繼電器都關(guān)閉,這是我們開始的情況。

因此,按下并釋放按鈕以鎖定兩個繼電器。再次按下并釋放,兩個繼電器都會解鎖。我們的撥動觸發(fā)器除以二。這正是我們構(gòu)建二進(jìn)制計數(shù)器所需要的。

12_volt_relay_VBebRctW4N.jpg?auto=compress%2Cformat&w=740&h=555&fit=max

12伏繼電器

以上是我們使用的 12 伏繼電器。我選擇這個繼電器是因?yàn)樗且粋€相對便宜的剩余繼電器——亞馬遜 2.40 美元,eBay 1.50 美元,如果你可以等一個月從中國買到的話。

在我們的觸發(fā)器配置中連接其中兩個繼電器如下所示:

relay_wiring_9GHebEBFol.jpg?auto=compress%2Cformat&w=740&h=555&fit=max

在下面的照片中,您可以看到兩個繼電器是如何連接起來以產(chǎn)生上述配置的。紅線是+24伏。黑色是地面。黃色和綠色線是我們的輸入。我們需要 24 伏電壓,因?yàn)橛袝r我們的繼電器線圈是串聯(lián)的,它們需要閉合。這不適用于我們在 12 伏下運(yùn)行的 12 伏繼電器。(我嘗試了 15 伏,但也沒有用。)

img_2367_9y5LTOp6ls.jpg?auto=compress%2Cformat&w=740&h=555&fit=max

現(xiàn)在讓我們看看我們的觸發(fā)器在起作用。

在上面的視頻中,我們使用 Arduino Uno 和繼電器模塊作為觸發(fā)器的輸入。多虧了我們繼電器內(nèi)置的 LED,您實(shí)際上可以看到觸發(fā)器在鎖定和解除鎖定時經(jīng)歷了我們上面描述的四個步驟。

Arduino 還沒有做太多,老實(shí)說,這個項(xiàng)目并沒有真正關(guān)注 Arduino。但是稍后,當(dāng)我們建立計數(shù)器時,我們將使用它來以十進(jìn)制顯示計數(shù)器的輸出。

關(guān)于電源的說明:我們的繼電器線圈在 12 伏電壓下正確供電時會消耗 75 毫安或 0.9 瓦。當(dāng)以 24 伏供電時,它們消耗兩倍的電流并耗散 3.6 瓦。它們像那樣工作得很好,但隨著時間的推移會變熱并消耗大量的能量。我建議像這樣使用它們進(jìn)行幾分鐘的簡短演示,而不是連續(xù)使用。

二進(jìn)制計數(shù)器

所以現(xiàn)在我們可以再把四個繼電器觸發(fā)器放在一起,構(gòu)建一組觸發(fā)器作為計數(shù)器,每個階段的輸出成為下一個階段的輸入。下面是我們連接在一起的人字拖組。第一階段目前在右邊,但是當(dāng)我們翻轉(zhuǎn)它時,我們的計數(shù)器將從左到右移動。所有接線均使用 22 號裸鍍錫銅線完成。

img_2369_yDslmO5J5w.jpg?auto=compress%2Cformat&w=740&h=555&fit=max

所以現(xiàn)在讓我們將我們的觸發(fā)器庫連接到 Arduino 和我們的繼電器模塊。它們一起形成了一個 6 級計數(shù)器,繼電器模塊作為第一級,我們的觸發(fā)器作為下一個 5。我們的計數(shù)器可以在重新開始之前從 0 計數(shù)到 63。

但是有問題!我們從 0 到 63 的漂亮計數(shù)器顯示在哪里?它確實(shí)存在,但不是我們想要的形式。繼電器模塊上的紅色 LED 和繼電器觸發(fā)器上下方的綠燈實(shí)際上顯示了我們正在尋找的計數(shù)器,但它是反轉(zhuǎn)的,這意味著打開的 LED 為 0,關(guān)閉的 LED 為 1。下方的綠燈告訴我們下繼電器打開。我們的計數(shù)被反轉(zhuǎn)的原因是因?yàn)槲覀冇嫈?shù)器的第一個輸入脈沖打開了我們計數(shù)器中所有較低的繼電器——它們都打開了;下方的綠燈全部亮起;那時我們的計數(shù)器為 0!

早在 1960 年,我最初的基于繼電器的二進(jìn)制計數(shù)器就沒有這個問題。我實(shí)際上使用了帶有額外極點(diǎn)或開關(guān)的 3PDT 繼電器來顯示結(jié)果。由于那時我們沒有 LED,我實(shí)際上使用連接到第三極開關(guān)的小霓虹燈來顯示計數(shù)。

顯示我們的二進(jìn)制計數(shù)

我們只需要雙極繼電器來構(gòu)建我們的觸發(fā)器,但是兩個繼電器上的所有極都在使用中。所以要顯示我們的計數(shù)器的輸出,我們需要從正確的信號環(huán)顧四周。正如我們已經(jīng)說過的,下繼電器的狀態(tài)是一個良好的信號,但它是反相的。因此,為了正確顯示計數(shù)器的輸出,我們需要構(gòu)建一個帶有一些逆變器的小板。要反轉(zhuǎn)信號并驅(qū)動 LED,我們需要一個晶體管和兩個電阻器。

inverter_5RmO75FbsI.jpg?auto=compress%2Cformat&w=740&h=555&fit=max

以上是我們需要在計數(shù)器的每個階段反轉(zhuǎn)下繼電器的狀態(tài)并顯示計數(shù)的內(nèi)容。另一個好處是我們的 LED 實(shí)際上提供了一個數(shù)字輸出,我們可以將其發(fā)送回 Arduino 以十進(jìn)制顯示我們的計數(shù)器的輸出。LED 在關(guān)閉時處于 0.7 v. 或 LOW(晶體管的基極-發(fā)射極結(jié)的正向壓降),在其開啟時處于大約 3.2 v. 或 HIGH(我們使用藍(lán)色 LED 的高正向壓降)。更多關(guān)于在一分鐘內(nèi)將我們的計數(shù)發(fā)送到 Arduino 的信息

img_2382_VLNWK2SOB7.jpg?auto=compress%2Cformat&w=740&h=555&fit=max

所以上面我們有一塊板子,上面有 6 個逆變器和藍(lán)色 LED。需要注意的一點(diǎn)是第一級(最左邊)的基極電阻是 15K 歐姆而不是 100K。那是因?yàn)樗?5 伏信號直接來自 Arduino,與其他來自 12/24 v 繼電器高端的信號不同。

下面,我們將它付諸實(shí)踐。在這段視頻中,我將電路板旋轉(zhuǎn)了 180 度,所以現(xiàn)在我們的二進(jìn)制計數(shù)器從右到左讀?。ㄓ覀?cè)的最低有效位),與我們通常顯示數(shù)字的方式相同。

上面是使用我們的逆變器和藍(lán)色 LED 來顯示我們的二進(jìn)制計數(shù)的計數(shù)器的視頻。我們在這里以 250 毫秒計算。每個計數(shù),所以我們從 0 計數(shù)到 63 并每 15 秒重新開始。

將輸出轉(zhuǎn)換回十進(jìn)制

首先,在我們繼續(xù)之前,讓我們添加一個計數(shù)器。我偶爾會看到我的柜臺跳過一個節(jié)拍。這似乎是第一個未能鎖定的觸發(fā)器??紤]原因,我得出結(jié)論,繼電器模塊觸點(diǎn)可能會彈跳。所有機(jī)械開關(guān)在接觸時都會有一點(diǎn)反彈,從而增加了數(shù)字“噪音”。所以這可能是原因。我在繼電器模塊的輸出端直接添加了一個 0.01 mfd 電容器以抑制任何噪聲。當(dāng)它完全解決問題時,我感到很驚喜!

img_2385_y0Iu00UJ9s.jpg?auto=compress%2Cformat&w=740&h=555&fit=max

所以現(xiàn)在,讓我們比我在 1960 年能做的更進(jìn)一步。讓我們使用 Arduino 讀取我們的二進(jìn)制計數(shù)器并將結(jié)果顯示為十進(jìn)制數(shù)。當(dāng)然,我們可以先將發(fā)送到計數(shù)器的脈沖相加并得到正確的數(shù)字,但讀取二進(jìn)制計數(shù)器并將輸入轉(zhuǎn)換回十進(jìn)制數(shù)字會更有趣。

我們將 LED 的陽極連接到 Arduino 的引腳 5-10,我們將其置于數(shù)字讀取模式。(引腳 5 指向最不重要的 LED,10 指向最重要的 LED,等等。)為了將二進(jìn)制數(shù)據(jù)收集到單個數(shù)字中,我們讀取每個引腳并將其內(nèi)容左移其重要性,將所有六個加起來,然后我們將我們的數(shù)字存儲在一個整數(shù)變量中(仍然是二進(jìn)制)。(有關(guān)詳細(xì)信息,請參閱軟件。)

現(xiàn)在剩下的就是顯示它。為此,我使用 ss_oled 庫的 1 英寸 OLED 顯示器。顯示器在引腳 A4 和 A5 處使用 i2c 接口。我不會在這里詳細(xì)介紹如何使用顯示,但我在這里所做的與庫中的示例基本相似 - 沒什么復(fù)雜的。

關(guān)于軟件的一個注意事項(xiàng)是,我們必須在增加計數(shù)后等待幾毫秒,然后才能從顯示器讀取它。那是因?yàn)槔^電器打開和關(guān)閉需要時間,并且更改需要額外的時間才能沿著我們的觸發(fā)器鏈傳播。我實(shí)際上正在等待整整 50 毫秒。在閱讀柜臺之前!順便說一句 - 觸發(fā)器鏈的傳播延遲是限制真實(shí)計算機(jī)速度的主要問題之一。微控制器設(shè)計人員通過各種技巧來避免它并最大限度地提高現(xiàn)代處理器的時鐘頻率!

但是您可能想知道如果我們不擔(dān)心顯示和傳播延遲,我們可以使計數(shù)器運(yùn)行多快。這是答案。

它仍然沒有那么快 - 數(shù)到 64 大約需要 4 秒。大約是 16 Hz。在某些時候,向計數(shù)器發(fā)送脈沖的速度有多快并不重要。繼電器只能如此快速地打開和關(guān)閉,所以在某些時候,它們開始忽略額外的脈沖!為了讓顯示器正常工作(同樣是因?yàn)橛|發(fā)器鏈的傳播延遲),我們需要一個較慢的速度,大約是我們最大速度的 1/2。

軟件

您在帶有 OLED 顯示屏的視頻(從這里開始的第二個)中看到的是本教程提供的 Arduino 草圖。當(dāng)前設(shè)置為每秒 4 次計數(shù),但您可以在開頭使用 #define 語句加快或減慢速度。它可用于本教程中顯示的項(xiàng)目的所有不同階段。此草圖中使用的 ss_oled 庫可以直接從 Manage Library 工具下載。應(yīng)該已經(jīng)安裝了 stdlib.h 庫。

最后的想法

這就是我們的項(xiàng)目!也許是一次很好的學(xué)習(xí)經(jīng)歷。也許讓我們對今天我們都認(rèn)為理所當(dāng)然的數(shù)字硬件中發(fā)生的一切有了更多的了解和欣賞。正如我一開始所說,對于一群年輕的數(shù)字電子愛好者來說,也許是一個很好的 STEM 項(xiàng)目!

我在 1960 年的原始項(xiàng)目在某些方面比這個項(xiàng)目更容易。我想我使用的是 24 伏交流繼電器——我不記得處理過直流電源。我認(rèn)為一個 24 伏變壓器為整個設(shè)備供電,這意味著它可以關(guān)閉兩個串聯(lián)的 24 伏繼電器,所以我不必像這次那樣以推薦電壓的兩倍來操作我的繼電器。我的繼電器上有一組額外的觸點(diǎn)。不需要額外的電路來顯示計數(shù)器的狀態(tài)——一個霓虹燈和電阻器就可以了,直接從交流線路供電。當(dāng)然,我沒有 Arduino 或類似的東西將我的二進(jìn)制數(shù)轉(zhuǎn)換回十進(jìn)制數(shù)。

在我們當(dāng)前版本的計數(shù)器中,我們使用 Arduino 為我們的計數(shù)器生成輸入脈沖。您可能想知道這在 1960 年是如何實(shí)現(xiàn)的。還有另一個繼電器電路,我們不會在這里介紹,但它是一種使用幾個繼電器以及一個電位計和電容器創(chuàng)建多諧振蕩器電路的方法 -比較簡單的電路。它為我原來的計數(shù)器提供了一系列可調(diào)速率的脈沖。

您可能還想知道基于繼電器的觸發(fā)器的想法最初來自哪里。我在某個地方找到了它,但就像我們所有人都大到可以記住互聯(lián)網(wǎng)之前的生活一樣,我很難記住我們在沒有互聯(lián)網(wǎng)的情況下是如何相處的!我不知道我是如何或在哪里找到它的!

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
  2. 1.06 MB  |  532次下載  |  免費(fèi)
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費(fèi)
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費(fèi)
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費(fèi)
  9. 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費(fèi)
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費(fèi)
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費(fèi)
  15. 8FP5207XR-G1中文應(yīng)用手冊
  16. 1.09 MB  |  178次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開關(guān)電源設(shè)計實(shí)例指南
  8. 未知  |  21549次下載  |  免費(fèi)
  9. 5電氣工程師手冊免費(fèi)下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動電路設(shè)計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191187次下載  |  免費(fèi)
  13. 7十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)