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

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

3天內(nèi)不再提示

如何利用微控制器實(shí)現(xiàn)風(fēng)扇冷卻系統(tǒng)的設(shè)計(jì)

科技觀察員 ? 來(lái)源:hackster.io ? 作者:hackster.io ? 2022-05-11 17:29 ? 次閱讀

介紹

我更喜歡安靜祥和的環(huán)境。這就是為什么我更喜歡收聽(tīng)來(lái)自 BBC Radio 4 或 Classic FM 的更柔和的廣播。這就是為什么我喜歡 Elecraft 和 Ten-Tec 的 PIN 二極管設(shè)備上的全磨合 CW。這就是我為 macOS 運(yùn)行 Mac Mini 和為 Windows 運(yùn)行無(wú)風(fēng)扇工業(yè) PC 的原因。

設(shè)備冷卻和設(shè)備噪音通常是齊頭并進(jìn)的。需要的冷卻越多,需要的氣流就越多,并且會(huì)產(chǎn)生更多的風(fēng)扇噪音。但是,風(fēng)扇選擇和安裝選項(xiàng)將有助于減輕這種噪音。智能風(fēng)扇冷卻系統(tǒng)也將控制風(fēng)扇速度。

該項(xiàng)目是一個(gè)單元的一個(gè)分支,該單元的目標(biāo)是在炎熱氣候下冷卻通信套件。需要監(jiān)控和冷卻設(shè)備,同時(shí)將聽(tīng)覺(jué)滋擾水平保持在謹(jǐn)慎的水平。它可以適用于冷卻假負(fù)載、電源、計(jì)算機(jī)、照明。

計(jì)劃

尋找解決方案,發(fā)現(xiàn)便宜的單板控制器只提供了一個(gè)簡(jiǎn)單的風(fēng)扇曲線解決方案。這些控制器只是根據(jù)風(fēng)扇速度跟蹤溫度差異。可以修改的參數(shù)不多。在規(guī)模的另一端,有用于游戲計(jì)算機(jī)的復(fù)雜冷卻控制器系統(tǒng),使用 PC 軟件。這些是完全可配置的系統(tǒng),能夠平衡所需的冷卻性能與產(chǎn)生的聲級(jí)。

很難找到中間解決方案。介于簡(jiǎn)單的獨(dú)立板和 PC 使用的復(fù)雜系統(tǒng)之間的一種。因此,設(shè)計(jì)了一個(gè)嵌入式系統(tǒng)來(lái)滿(mǎn)足我的要求。從簡(jiǎn)單開(kāi)始,然后根據(jù)特定需求構(gòu)建設(shè)計(jì)。該項(xiàng)目很快就包含了一些易于定制的功能,可以根據(jù)個(gè)人溫度和風(fēng)扇速度要求進(jìn)行設(shè)置。

特征

兩個(gè)風(fēng)扇控制器。

從 0% 到 100% PWM 的全風(fēng)扇速度控制。

溫度感應(yīng)范圍為 0 至 +120degC(32degF 至 248degF)。

風(fēng)扇轉(zhuǎn)速計(jì)讀數(shù)為每分鐘 9999 轉(zhuǎn)。

OLED 顯示屏顯示風(fēng)扇和溫度信息。

風(fēng)扇 PWM 指令條形圖(10% 間隔)。

用于操作配置菜單的旋轉(zhuǎn)編碼器

定義溫度范圍,從最小值到最大值。

定義風(fēng)扇速度范圍,從最小值到最大值。

三個(gè)輔助 Fan-B 工作選項(xiàng):

a) 主風(fēng)扇 A 與輔助風(fēng)扇 B 串聯(lián)運(yùn)行(對(duì)稱(chēng))。

b) 主風(fēng)扇 A 與輔助風(fēng)扇 B 反向運(yùn)行(不對(duì)稱(chēng))。

c) 主風(fēng)扇 A 和輔助風(fēng)扇 B 配置為熱備。

聲音風(fēng)扇-A 故障或停機(jī)警報(bào)。

發(fā)光風(fēng)扇-A 停機(jī)報(bào)警。

發(fā)光的 DS18B20S 傳感器總線指示燈 LED

發(fā)光的 +12V 和 +5V 電源 LED。

配置設(shè)置保存在 EEPROM 中,用于斷電恢復(fù)。

用于設(shè)置溫度單位(degC 或 degF)的配置標(biāo)題

用于設(shè)置對(duì)稱(chēng)、不對(duì)稱(chēng)或熱備模式的配置頭。

隔離的外部 P 輸入,用于啟用/禁用輔助設(shè)備的操作。

主風(fēng)扇 A 故障檢測(cè),用于在熱備模式下切換到風(fēng)扇 B。

用于調(diào)試和固件上傳的串行端口。

用于直接燒錄到內(nèi)存的電路串行編程端口。

KF2510 3+1P,風(fēng)扇連接器插座。

易于使用的板載重置開(kāi)關(guān)。

兩個(gè)版本

設(shè)計(jì)了兩個(gè)版本。兩者功能相同。但是,每個(gè)版本的創(chuàng)建都是為了適應(yīng)個(gè)人需求和構(gòu)建技能。

Shield 版本:這是最容易構(gòu)建的,因?yàn)?Arduino 板已經(jīng)處理了一半的功能。屏蔽就像任何標(biāo)準(zhǔn)屏蔽一樣連接到 Uno R3 板的頂部。它以驚人的緊湊封裝提供了運(yùn)行所需的其余電路。構(gòu)建屏蔽版本更簡(jiǎn)單,盡管您仍然應(yīng)該能夠處理它使用的 15 個(gè) 0805 SMD。代碼上傳更易于管理,并且像往常一樣通過(guò) USB 串行端口使用 Arduino IDE 執(zhí)行。

嵌入式版本:這是圍繞 Atmega 328P-AU 微控制器構(gòu)建的,具有獨(dú)立的獨(dú)立單元所需的所有電路。構(gòu)建復(fù)雜性更大。您應(yīng)該具備并精通SMD項(xiàng)目建設(shè)。請(qǐng)注意,您還需要熟悉 ICSP 端口。至少在最初將代碼上傳到微控制器內(nèi)存,直到您根據(jù)需要燒錄引導(dǎo)加載程序。

操作

此代碼是根據(jù)需要?jiǎng)討B(tài)構(gòu)建的。從一個(gè)簡(jiǎn)單的溫度跟蹤風(fēng)扇速度實(shí)用程序,它迅速雪崩成這個(gè)可定制的版本。毫無(wú)疑問(wèn),還有其他編程方法可以實(shí)現(xiàn)所期望的。就是這樣。無(wú)論如何,我的代碼可以很容易地更正、修改和改進(jìn),讓每個(gè)人都滿(mǎn)意。

啟動(dòng)順序

在通電或重置時(shí),設(shè)備會(huì)等待幾秒鐘,讓任何仍在旋轉(zhuǎn)的風(fēng)扇停止。所需的延遲取決于風(fēng)扇旋轉(zhuǎn)的難易程度及其動(dòng)量??梢酝ㄟ^(guò)修改變量 spinDownDelay 在代碼中定義延遲。

然后代碼運(yùn)行一個(gè)啟動(dòng)序列,該序列將首先測(cè)試風(fēng)扇以找到其最小速度值。這將用于運(yùn)行期間的停止檢測(cè) fanJamCheck() 函數(shù)。此序列將遞增的 PWM 值發(fā)送到風(fēng)扇,最高比率為 20:100 (20%)。到那時(shí),大多數(shù)粉絲都已經(jīng)開(kāi)始了。在最終啟動(dòng)主代碼和其中一種工作模式之前,它的進(jìn)度顯示在 OLED 上。下面列出并解釋了這些可選擇的工作模式中的每一個(gè)。

兩種基本的風(fēng)扇模式是可能的:

首先,被動(dòng)上下掃描模式僅遵循由風(fēng)扇最小值和風(fēng)扇最大值定義的定義曲線斜率??梢耘渲么藪呙璧乃俾?,但不使用溫度傳感器數(shù)據(jù)來(lái)控制風(fēng)扇速度。

其次,主動(dòng)觸發(fā)模式可激活風(fēng)扇并根據(jù)溫度最小值、溫度最大值、風(fēng)扇最小值和風(fēng)扇最大值定義的曲線斜率控制其速度。有兩種類(lèi)型的主動(dòng)觸發(fā)模式。第一個(gè)子模式僅采用傳感器溫度輸入來(lái)控制冷卻風(fēng)扇。第二個(gè)子模式采用傳感器溫度輸入,但也需要輸入電壓 (P-IN) 來(lái)啟用冷卻風(fēng)扇。這可以與輔助設(shè)備一起使用,僅在輔助設(shè)備認(rèn)為有必要時(shí)觸發(fā)風(fēng)扇控制器。

滾動(dòng)瀏覽下圖,例如配置的坡度:

poYBAGJ7gYSAYZ7zAAIZdD0ldEw767.png

一種被動(dòng)清掃模式:

在這里,風(fēng)扇速度將在風(fēng)扇速度斜率上上下掃描,如先前由風(fēng)扇最小值和風(fēng)扇最大值定義的那樣。不使用溫度讀數(shù),但可以更改掃描速率。

兩種主動(dòng)觸發(fā)模式:

此處風(fēng)扇將在達(dá)到最低溫度且僅當(dāng)啟用 P-IN 輸入時(shí)觸發(fā)。

在最低溫度觸發(fā):

a) 從零風(fēng)扇速度(風(fēng)扇關(guān)閉直到觸發(fā))。

b) 從風(fēng)扇最低速度開(kāi)始(風(fēng)扇以最低風(fēng)扇旋轉(zhuǎn)直到觸發(fā))。

在最低溫度時(shí)觸發(fā),但僅當(dāng) P-IN 輸入也啟用時(shí)。

a) 從零風(fēng)扇速度開(kāi)始。(風(fēng)扇關(guān)閉,直到觸發(fā))。

b) 從風(fēng)扇最低速度開(kāi)始(風(fēng)扇以最低風(fēng)扇旋轉(zhuǎn)直到觸發(fā))。

通過(guò)滾動(dòng)顯示的示例溫度/風(fēng)扇速度圖表,可以最輕松地查看這些風(fēng)扇模式以及它們與速度和溫度的關(guān)系。

配置

在配置模式中定義單元的操作方式以及所需的冷卻斜率。本質(zhì)上是通過(guò)在圖表上定義點(diǎn)來(lái)獲得我們想要的斜率。我們可以通過(guò)按下旋轉(zhuǎn)編碼器按鈕進(jìn)入此模式。然后滾動(dòng)配置菜單,連續(xù)按下相同的按鈕。在每個(gè)參數(shù)處轉(zhuǎn)動(dòng)旋轉(zhuǎn)編碼器以修改其值,從而定義新的操作模式或溫度斜率。

配置菜單:

FAN MIN

設(shè)置最小風(fēng)扇速度值(5% 步長(zhǎng))。

FAN MAX

設(shè)置最大風(fēng)扇速度值(5% 步進(jìn))。

TEMP MIN

設(shè)置最低溫度值,這將觸發(fā)風(fēng)扇到 Fan Min。

TEMP MAX

設(shè)置最高溫度值,此時(shí)風(fēng)扇將以 Fan Max 旋轉(zhuǎn)。

模式

掃描或觸發(fā)

設(shè)置被動(dòng)上下掃風(fēng)速度。或觸發(fā)風(fēng)扇速度,主動(dòng)跟蹤來(lái)自 DS18B20 傳感器的溫度數(shù)據(jù)。

掃描速率

(如果之前選擇了掃描,則可用)1/慢到 10/快。選擇風(fēng)扇速度從風(fēng)扇最小值掃描到最大值的速度。

TRIGGER

(如果之前選擇了 Triggered,則可用)

1 溫度/零。溫度從零觸發(fā)。將在 Temp Min 觸發(fā)并開(kāi)始以 Fan Min 速度旋轉(zhuǎn)。未觸發(fā)時(shí),風(fēng)扇速度將等待為零。

2 溫度/Fmin。溫度從風(fēng)扇最小值觸發(fā)。將在 Temp Min 觸發(fā)并開(kāi)始以 Fan Min 速度旋轉(zhuǎn)。未觸發(fā)時(shí),風(fēng)扇速度將在 Fan Min 處等待。

3 針/零。溫度從零觸發(fā),但需要外部 P 輸入啟用。將在 Temp Min 觸發(fā)并開(kāi)始以 Fan Min 速度旋轉(zhuǎn),但僅在由 P 輸入啟用時(shí)。未觸發(fā)時(shí),風(fēng)扇速度將等待為零。

4 針/Fmin。溫度從風(fēng)扇最小值觸發(fā),但需要外部 P 輸入啟用。將在 Temp Min 觸發(fā)并開(kāi)始以 Fan Min 速度旋轉(zhuǎn),但僅在由 P 輸入啟用時(shí)。未觸發(fā)時(shí),風(fēng)扇速度將在 Fan Min 處等待。

TEMP OFFSET

-9 到 +9 度。要糾正 DS18B20 傳感器的任何溫度誤差,可以添加此補(bǔ)償值。默認(rèn)為 0 度,不進(jìn)行校正。

SAVE & EXIT

Yes/No.Yes,將退出配置模式,并發(fā)出相應(yīng)的莫爾斯“R”音和簡(jiǎn)短的“配置已保存”消息。您的設(shè)置將保存到 EEPROM。不,將再次循環(huán)通過(guò)配置選項(xiàng)。

因?yàn)?FAN MIN 和 FAN MAX 的值是相互依賴(lài)的。無(wú)法將 FAN MAX 值設(shè)置為低于 FAN MIN 值或?qū)?FAN MIN 值設(shè)置為高于 FAN MAX 值。類(lèi)似地,TEMP MIN 和 TEMP MAX 的值是相互依賴(lài)的。不可能將 TMP MAX 值設(shè)置為低于 TEMP MIN 值或?qū)?TEMP MIN 值設(shè)置為高于 TEMP MAX 值。

該代碼限制了您可以設(shè)置的允許范圍。例如,如果您無(wú)法選擇較低的 FAN MAX 值,可能是因?yàn)槟噲D將其設(shè)置為低于 FAN MIN 值。

初始設(shè)置

安裝單元后,以下選項(xiàng)很少需要更改。它們通過(guò)使用兩個(gè)插頭引腳跳線進(jìn)行配置,其設(shè)置在開(kāi)關(guān)打開(kāi)或復(fù)位時(shí)讀取。

1. 使用跳線 J1/U2 的輔助 FAN-B 設(shè)置:

ASYMetric:輔助風(fēng)扇 B 將以與主風(fēng)扇 A 相反的速度旋轉(zhuǎn)。因此,當(dāng)風(fēng)扇 A 處于最大速度時(shí),風(fēng)扇 B 將處于最小速度。這些風(fēng)扇速度將動(dòng)態(tài)遵循由 Fan Min 和 Fan Max 定義的溫度斜率。

SYMMetric:輔助風(fēng)扇 B 將與主風(fēng)扇 A 同步旋轉(zhuǎn)。因此,當(dāng)風(fēng)扇 A 處于最大速度時(shí),風(fēng)扇 B 也將處于最大速度。這些風(fēng)扇速度將動(dòng)態(tài)遵循由 Fan Min 和 Fan Max 定義的溫度斜率。

STandBY:輔助 Fan-B 充當(dāng)熱備用角色的主 Fan-A 的備份。因此,F(xiàn)an-B 通常會(huì)一直關(guān)閉,直到 Fan-A 卡住或出現(xiàn)故障。風(fēng)扇 A 發(fā)生故障時(shí),風(fēng)扇 B 將接管。

2. 跳線 J2/U1 的溫度設(shè)置單位:

degF:華氏溫度。在美國(guó)、利比里亞和開(kāi)曼群島使用。

degC:攝氏溫度。在世界其他地方使用。

積木

單片機(jī)

我們不需要 ESP8266ESP32 中的處理能力或花里胡哨。帶有 ATmega 328P 芯片的 Arduino 平臺(tái)具有足夠的速度、內(nèi)存空間和 GPIO 引腳。

當(dāng)然,和原來(lái)的 Arduino UNO R3 一樣,在嵌入式電路中使用了一個(gè) ATmega328P 微控制器。該微控制器提供 32K 閃存、2K SRAM 和 1K EEPROM 存儲(chǔ)。它的 16Mhz 時(shí)鐘速度足以運(yùn)行我們的中等任務(wù),并且它有足夠的輸入/輸出引腳來(lái)滿(mǎn)足我們的需要。

選擇了AU芯片封裝。它比大型 PU DIP 版本更小、更便宜且更容易采購(gòu)。它是小型嵌入式板應(yīng)用的理想選擇。然而,在構(gòu)建或?qū)嶋H測(cè)試時(shí)不會(huì)太小而無(wú)法處理。在原型制作過(guò)程中,使用 QFP/TQFP32 芯片適配器將此 Atmega 328P 安裝在面包板上。無(wú)腿 MU 版本雖然更小,但更難處理。

溫度感應(yīng)器:

Dallas Semiconductor DS18B20 可能不是最精確的溫度測(cè)量?jī)x器,但足以滿(mǎn)足我們的使用需求。它測(cè)量的溫度范圍為 -55°C 至 +125°C(-67°F 至 +257°F),精度為 -10°C 至 +85°C +/-0.5°C。

出于我們的目的,代碼將溫度范圍限制在 0degC 到 120degC(32degF 到 248degF)之間。在此范圍之外,它將在溫度值旁邊顯示一個(gè)超出范圍 (OOR) 的“感嘆號(hào)”圖標(biāo)。該值將在 0degC 和 120degC(32degF 和 248degF)時(shí)觸底。

pYYBAGJ7gXuARtPnAAC8Aw473uU937.png

DS18B20 的三針 TO-92 版本可能是最容易使用的封裝類(lèi)型。傳感器數(shù)據(jù)線上到 Vdd 的 LED 上拉電阻改善了數(shù)據(jù)傳輸,并提供了傳感器與微控制器通信的一些視覺(jué)反饋。在這里,一個(gè) 2K 電阻可以很好地閃爍 LED。一些套件模塊在這里使用 4.7K 值。這取決于特定 LED 上的電壓降和所需的亮度。

OLED顯示屏:

使用了一個(gè)小的 0.91“ OLED。它具有 128 x 64 像素的分辨率,當(dāng)與 Bill Greiman 的 SSD1306 庫(kù)和“fixed_bold10x15”字體一起使用時(shí),提供兩行大約 12 個(gè)文本字符。這些 OLED 顯示器有一個(gè)I2C總線,完美適配我們的微控制器。所需的+5V電源電壓很方便,因?yàn)樗c板子的其余部分相同。一些OLED板指定了+3.3V的電源電壓要求,這可以通過(guò)查看是否有來(lái)檢查或者還不是+3.3V穩(wěn)壓器。我的板上有一個(gè)微型662K低壓差+3.3V穩(wěn)壓器,確認(rèn)它接受+5V,然后它自己轉(zhuǎn)換為+3.3V。關(guān)于I2C邏輯電平輸入,它們可以承受 +5V,我不需要電平轉(zhuǎn)換器。

SSD1306Ascii 是由 Bill Greiman 編寫(xiě)的用于小型單色 OLED 顯示器的無(wú)緩沖字符庫(kù)。我經(jīng)常在使用帶有 fixed_bold10x15 字體的 OLED 的項(xiàng)目中使用它。它為我在這些小型顯示器上疲憊的眼睛提供了可讀的字符大小。對(duì)于這個(gè)特定的項(xiàng)目,F(xiàn)AN_fixed_bold10x15 文件是字體的修改版本,我在其中添加了一些與風(fēng)扇控制器一起使用的額外圖標(biāo)。該字體文件可以包含在同一個(gè)草圖目錄中,并添加到 Arduino IDE 中以便于編輯。

pYYBAGJ7gXiAaGMVAAHmxmNVIvM775.png

FAN_fixed_bold10x15 是 fixed_bold10x15.h 字體,已通過(guò)添加風(fēng)扇控制器的 OLED 顯示屏使用的額外字符進(jìn)行修改。逆向工程此字體以創(chuàng)建自定義字符和圖標(biāo)將在后面詳細(xì)介紹。

光耦

PC817C 是一種通用光耦合器,廣泛用于許多電路中,以提供與輔助設(shè)備的電氣隔離。這個(gè)組件有幾個(gè)版本。這里使用了“C”后綴的版本。不同的版本有不同的收獲。光耦合器的增益表示為電流傳輸比 (CTR),即輸出的集電極電流 (IC) 除以輸入的正向電流 (IF),然后乘以 100%。您可以通過(guò)計(jì)算和更改電阻器 R3 的值以適應(yīng)不同的增益來(lái)使用其他版本和測(cè)試功能。

在這個(gè)版本中,計(jì)算得到的 1K 電阻值可以很好地發(fā)揮作用。一些實(shí)測(cè)測(cè)試證實(shí)了這一理論:5V、9V、12V 和 13.8V 的 P-IN 電壓分別產(chǎn)生 3.8mA、7.8mA、10.8mA 和 12.6mA 的電流。這些被認(rèn)為是最有可能使用的輔助輸入電壓。由于該光耦合器的內(nèi)部 LED 下降約 1.2V,它們各自產(chǎn)生約 4.5mW、9.4mW、13mW 和 15mW 的相應(yīng)功率值。查看數(shù)據(jù)表,我們?cè)试S的最大輸入值為 If=50mA、Vr=6V 和 Pin=70mW。跨輸入 LED 放置的 1N4148 是為了防止高于 6V 的 Vr。允許的最大輸出值為 Vce=35V、Vec=6V、Ic=50mA 和 Pc=150mW。MCU 的內(nèi)部上拉似乎約為 50k,因?yàn)檫@里測(cè)量的是 0.1mA。對(duì)于此光耦合器,Ptot = 200mW 最大值(輸入和輸出總功率不得超過(guò) 200mW)。

可以按照類(lèi)似的數(shù)據(jù)表建議使用其他光隔離器?;蛘撸梢酝ㄟ^(guò)取消光耦合器隔離來(lái)簡(jiǎn)化電路,只需將啟用 P-IN 拉低即可。MCU 的端口 B0 在代碼中激活了其內(nèi)部上拉電阻。

串行端口:

UNO R3 板上已經(jīng)安裝了一個(gè)串行端口。這用于以經(jīng)典的 Arduino 方式進(jìn)行上傳和調(diào)試。

我還在獨(dú)立版本中包含了一個(gè)串行端口。這 6 個(gè)插頭引腳與大多數(shù) FTDI FT232RL USB 轉(zhuǎn)串行適配器模塊完美對(duì)齊。如果有可用的引導(dǎo)加載程序,它還允許使用 Arduino IDE 進(jìn)行調(diào)試,并且確實(shí)可以上傳草圖。不要忘記將 FTDI USB 串行板切換為使用 +5V(不是 +3.3V)。對(duì)于 USB 到串行編程和調(diào)試,風(fēng)扇控制器當(dāng)然應(yīng)該通電。

pYYBAGJ7gXKAUATMAAbe2JaHDDc613.png

ICSP 端口:

UNO R3 板上已經(jīng)安裝了 ICSP 端口。這是將代碼直接刻錄到其微控制器內(nèi)存所必需的,我們很少使用。這可能是制造商將 Arduino 引導(dǎo)加載程序燒錄到 UNO 的方式。

我還在嵌入式版本中包含了一個(gè) ICSP 端口。這是最初將引導(dǎo)加載程序刻錄到獨(dú)立版本的唯一方法。這些 3x2 插頭引腳與大多數(shù)常見(jiàn)的 ICSP 編程器(如 USBasp)完美對(duì)齊。它允許直接裝載 ATmega 328P。對(duì)于 ICSP USBasp 編程,風(fēng)扇控制器應(yīng)斷電,因?yàn)榇蠖鄶?shù)像 USBasp 這樣的編程器都會(huì)為其目標(biāo)本身供電

poYBAGJ7gW-AfgYhAAXFpgwW4p0341.png

請(qǐng)注意,一些較舊的 ICSP 編程器需要來(lái)自其目標(biāo)的電源才能運(yùn)行,在這種情況下,風(fēng)扇控制器單元應(yīng)通電。有些人可能只需要查看 ICSP 引腳 2 上的電壓即可運(yùn)行。你的旅費(fèi)可能會(huì)改變。始終最好檢查您的特定程序員

不要忘記將此板切換為使用+5V(不是+3.3V)。ATmega 數(shù)據(jù)表的第 27.8 節(jié)介紹了芯片的在線串行編程。

轉(zhuǎn)速計(jì)噪聲濾波器

來(lái)自風(fēng)扇 RPM 引腳 3 的轉(zhuǎn)速計(jì)線路上的任何噪音都可能是一個(gè)問(wèn)題,并給出錯(cuò)誤的讀數(shù)。這種噪音可能是額外的開(kāi)關(guān)彈跳,如脈沖。盡管通常使用采用霍爾傳感器或光耦合器的轉(zhuǎn)速計(jì)電路而不是機(jī)械開(kāi)關(guān)。

以低 RPM 運(yùn)行的風(fēng)扇存在這些噪聲脈沖,在評(píng)估實(shí)際 RPM 值時(shí)會(huì)產(chǎn)生更大的差異。

例如,在低速時(shí),風(fēng)扇可能會(huì)在 1 秒內(nèi)發(fā)出大約 8 個(gè)脈沖。這 8 個(gè)脈沖相當(dāng)于 4 轉(zhuǎn)/秒,因?yàn)轱L(fēng)扇每轉(zhuǎn)發(fā)送兩個(gè)脈沖。因此,4 轉(zhuǎn)/秒是每分鐘 240 轉(zhuǎn)(4 轉(zhuǎn) x 60 秒)。由于反彈而產(chǎn)生的噪聲脈沖可能會(huì)產(chǎn)生額外的第 9 個(gè)脈沖,該脈沖錯(cuò)誤地等同于 270rpm(4.5 轉(zhuǎn) x 60 秒)??倢?shí)際價(jià)值的 12% 左右的誤差。

在較高的轉(zhuǎn)速下,波形中的這些額外噪聲脈沖對(duì)計(jì)算正確的 RPM 值的影響較小。例如,在更高的速度下,我們可能會(huì)得到 266 個(gè)脈沖,這實(shí)際上意味著 133 轉(zhuǎn)/秒或 7980 轉(zhuǎn)/分鐘(133 轉(zhuǎn) x 60 秒)。此處的額外噪聲脈沖總共產(chǎn)生 267 個(gè)脈沖,相當(dāng)于 133.5 轉(zhuǎn)/秒或 8010 轉(zhuǎn)/分鐘(133.5 轉(zhuǎn)/秒 x 60 秒),與總值的差異較小。誤差低于總實(shí)際價(jià)值的 4%。這只是一個(gè)示例,因?yàn)榇蠖鄶?shù)風(fēng)扇以最高速度運(yùn)行在此以下。

為了減輕任何噪聲對(duì)風(fēng)扇 RPM 輸出的影響,使用了由 R2 和 C1(屏蔽電路)或 R7 和 C14(嵌入式版本)組成的積分濾波器。通過(guò)一些計(jì)算和實(shí)驗(yàn),找到了足夠的時(shí)間常數(shù)。1K 和 1nF 的值給出了一個(gè)合適的時(shí)間常數(shù),以濾除風(fēng)扇轉(zhuǎn)速計(jì)信號(hào)上出現(xiàn)的任何更高頻率的噪聲脈沖。

AMS1117 LDO 穩(wěn)壓器:

這已經(jīng)構(gòu)成了 Arduino 電源子系統(tǒng)的一部分。它提供一個(gè)穩(wěn)定的 +5V,也用于為風(fēng)扇控制器屏蔽供電。就其尺寸而言,它是一款久經(jīng)考驗(yàn)的耐用調(diào)節(jié)器。由不同的公司制造并且容易獲得。不同的制造商發(fā)布不同的數(shù)據(jù)表,最大輸入電壓和功耗標(biāo)準(zhǔn)略有不同。我也在獨(dú)立的嵌入式板上使用過(guò)它。

代碼

隨著時(shí)間的推移和我的需要,這段代碼被構(gòu)建并添加了特性和功能。我不是程序員,毫無(wú)疑問(wèn),程序流程中有一些不必要的復(fù)雜性,類(lèi)似于沙特爾的迷宮。在整個(gè)代碼中散布全局變量也必須增加效率。就是這樣。它符合我的目的,并且不會(huì)明顯減慢操作速度。

#define DEBUG 1 或 0用于啟用或禁用在串口上輸出調(diào)試信息。您的選擇將在編譯時(shí)設(shè)置。啟用后,首先顯示串行端口調(diào)試 OK 消息。然后是帶有編譯日期和時(shí)間的草圖文件名。

#include ”FAN_fixed_bold10x15.h“以允許使用我改編的 fixed_bold10x15.h 字體。這具有風(fēng)扇控制器用來(lái)顯示模式和狀態(tài)的特殊圖標(biāo)字符。它應(yīng)該與風(fēng)扇控制器草圖位于同一文件夾中。

需要使用 IDE 的庫(kù)管理器安裝的一些特定庫(kù)是:

OneWire.h和DallasTemperature.h用于與 Dallas Semiconductor DS18B20 溫度傳感器進(jìn)行通信。

EEPROM.h便于訪問(wèn)微控制器的非易失性 EEPROM 存儲(chǔ)空間。

SSD1306Ascii.h和SSD1306AsciiWire.h使用 OLED 顯示器并訪問(wèn)其 I2C 總線。

TimedAction.h需要能夠在代碼中對(duì)不同的任務(wù)進(jìn)行原型處理。三個(gè)線程將偽一致地運(yùn)行。這些用于讀取旋轉(zhuǎn)編碼器、讀取風(fēng)扇 A 的 RPM 速度以及從傳感器讀取溫度信息。

職能:

writeConfig()和readConfig()將讀寫(xiě)配置數(shù)據(jù)到芯片的 EEPROM 存儲(chǔ)器。EEPROM 地址可以無(wú)限次讀取,但平均只能寫(xiě)入約 100000 次。如果您每天更改配置 10 次,則相當(dāng)于大約 27 年的寫(xiě)入周期壽命。函數(shù)firstRunCheck()查找 key1 和 key2 的值 73 和 42。兩個(gè)任意數(shù)字。向無(wú)處不在的廣播電臺(tái)和《銀河系漫游指南》致敬。如果未找到該芯片之前從未配置過(guò),函數(shù)firstLoadOfEeprom()將使用有效的 EEPROM 值填充新的微控制器芯片。

在開(kāi)機(jī)或重新啟動(dòng)時(shí),函數(shù)findFanStopLimit()運(yùn)行。這會(huì)找到主風(fēng)扇 A 開(kāi)始旋轉(zhuǎn)的 PWM 值。它將這個(gè)值作為 minLimit 返回給變量 fanStopLimit。此 PWM 百分比值稍后用于檢測(cè)主風(fēng)扇 A 的停止或故障。

功能oneDit()和oneDah()與使用oneRoger()到聽(tīng)起來(lái)羅杰確認(rèn)‘R’。它們還會(huì)產(chǎn)生 Fan-A 故障警報(bào)聲。這兩個(gè)功能通過(guò)蜂鳴器產(chǎn)生莫爾斯點(diǎn)和破折號(hào)聲音。這是我通過(guò)位操作端口 C 寄存器直接完成的,其中無(wú)源蜂鳴器連接到 PC0 和 PC1。驅(qū)動(dòng)每個(gè)輸出異相,我們會(huì)增加音量,因?yàn)槲覀儗?shí)際上在無(wú)源蜂鳴器的壓電板上有 10V 的電位差。

這類(lèi)似于優(yōu)秀的 ToneAC 庫(kù)的工作方式。然而,對(duì)于這個(gè)簡(jiǎn)單的應(yīng)用程序,通過(guò)直接編碼這個(gè)函數(shù),我避免了使用這個(gè)庫(kù)。我們不需要它的音量和頻率控制選項(xiàng),也不需要它的定時(shí)器要求。

函數(shù)encoderRead()是一個(gè)原型線程,它每 50 毫秒觸發(fā)一次以讀取旋轉(zhuǎn)編碼器。

使用功能menuClicked()我們檢測(cè)旋轉(zhuǎn)編碼器瞬時(shí)開(kāi)關(guān)按鈕的按下。

函數(shù)valueChanged()和delimitValue()用于選擇每個(gè)配置參數(shù)的單獨(dú)值。

函數(shù)oledDisplay()用于使用自定義字體打印到 SSD1306 OLED 的兩行顯示。

當(dāng)達(dá)到并觸發(fā) TEMP MIN 的溫度時(shí),函數(shù)showTempTrigIcon()顯示溫度計(jì)類(lèi)型圖標(biāo)。

函數(shù)tachCounter()是一個(gè)原型線程,它每 1 秒觸發(fā)一次以讀取來(lái)自主風(fēng)扇 A 的 RPM 轉(zhuǎn)速計(jì)波形。

函數(shù)getTemperature()是一個(gè)原型線程,它每 3 秒觸發(fā)一次,以查詢(xún)和讀取來(lái)自 DS18B20 傳感器的溫度數(shù)據(jù)。

函數(shù)triggerCheck()檢查溫度觸發(fā)器,并考慮我們是否使用 P 輸入模式并在 P-IN 接頭處具有啟用信號(hào)。

函數(shù)fanBsetup()讀取相關(guān)的跳線位置以設(shè)置輔助風(fēng)扇 B 的工作模式為非對(duì)稱(chēng)、對(duì)稱(chēng)或在開(kāi)關(guān) ON 時(shí)待機(jī)。

函數(shù)fanBconversion()計(jì)算與風(fēng)扇 A 相比風(fēng)扇 B 的運(yùn)行速度,同時(shí)考慮到非對(duì)稱(chēng)、對(duì)稱(chēng)或待機(jī)的當(dāng)前操作模式。

函數(shù)percentToPWM()將百分比速度值轉(zhuǎn)換為適合直接饋送到定時(shí)器寄存器以進(jìn)行 PWM 控制的值。這用于控制 Fan-A 的速度。

函數(shù)percentToBars()將命令到風(fēng)扇 A 的 PWM 顯示為 OLED 顯示屏上一行的移動(dòng)條形圖。

函數(shù)fanJamCheck()檢查風(fēng)扇 A 的停止并在四次違規(guī)后發(fā)出信號(hào)。然后它會(huì)發(fā)出警報(bào)并閃爍紅色警告 LED。

stepIncrement()和steppedDecrement()函數(shù)在被動(dòng)清掃模式下增加和減少風(fēng)扇的速度。

函數(shù)pwm25kHzSet()將 PWM 頻率設(shè)置為25khz 。之所以需要此更改,是因?yàn)轱L(fēng)扇需要以 25KHz 運(yùn)行的 PWM 信號(hào),并且可用的默認(rèn) Arduino PWM 頻率僅為 490Hz 或 980Hz,具體取決于所使用的引腳。

ATmega328P 有三個(gè)定時(shí)器,我們可以同時(shí)使用它們。定時(shí)器是為每個(gè)時(shí)鐘脈沖遞增(或遞減)的寄存器。328P 有三個(gè),它們的使用在 delay()、millis()、micros()、Servo()、Tone() 和其他庫(kù)等函數(shù)之間進(jìn)行切換。時(shí)鐘頻率取自 16MHz 晶振時(shí)鐘。該時(shí)鐘頻率可以在饋送到定時(shí)器之前由預(yù)分頻器分頻。當(dāng)定時(shí)器增加到它們的最大寄存器大小時(shí),它們將溢出。對(duì)于 8 位定時(shí)器的 timer0 和 timer2,這是 255(16 位 timer1 為 65535)。也可以設(shè)置發(fā)生此溢出的值。我們不需要等到定時(shí)器寄存器達(dá)到 255(或 65535)才能標(biāo)記溢出??刂萍拇嫫鲗?timer1 配置為模式 10,無(wú)預(yù)分頻,計(jì)數(shù)為 320。我們的晶體時(shí)鐘為 16Mhz 的值為 320 將為我們提供 25KHz 的 PWM 信號(hào)。該代碼使用函數(shù) percentToPWM() 將其從用戶(hù)友好的百分比風(fēng)扇 PWM 值轉(zhuǎn)換。

中斷服務(wù)程序encoderISR()用于讀取旋轉(zhuǎn)編碼器。

中斷服務(wù)程序tachISR()用于對(duì)主風(fēng)扇 A 發(fā)送的轉(zhuǎn)速計(jì) RPM 波形發(fā)出的脈沖進(jìn)行計(jì)數(shù)。

EEPROM存儲(chǔ)器

顯示首次開(kāi)機(jī)時(shí)加載的默認(rèn)值的詳細(xì)信息。

地址 0 key1 73d Dahdahdiddley.。.Diddleydahdah。

地址 1 key2 42d 生命、宇宙和一切。

地址 2 fanMin 10d 風(fēng)扇速度最小值 = 10%。

地址 3 fanMax 90d 最大風(fēng)扇速度 = 90%。

地址 4 tempMin(°C) 40d 最低溫度 40degC。

地址 5 tempMax(°C) 70d 最高溫度 70degC。

地址 6 tempMin(°F) 100d 最低溫度 100degF。

地址 7 tempMax(°F) 160d 最高溫度 160degF。

地址 8 模式 1d 掃描。

地址 9 掃描速率 5d 5(中速)。

地址 10 觸發(fā)器 1d 由 0% 風(fēng)扇速度的溫度。

地址 11 tempOffset 0d 0 度的溫度校正。

地址 12 保存并退出 0d 0。

代碼的讀取和寫(xiě)入功能將跳過(guò)地址 4 和 5 或 6 和 7,具體取決于使用硬件跳線(屏蔽上的 U1 或獨(dú)立 PCB 上的 J2)選擇了哪些溫度單位。

自定義字符

SSD1306Ascii 庫(kù)中包含的 fixed_bold10x15 字體是我的首選字體。它清晰易讀。然而,它只給了我們兩行大約 11 或 12 個(gè)字符的行來(lái)顯示任何信息。我求助于使用自定義圖標(biāo)字符來(lái)獲取更多關(guān)于小型 0.91” OLED 顯示屏的信息。我修改了 SSD1306Ascii 庫(kù)中包含的原始 fixed_bold10x15 字體。這個(gè)修改后的字體是 FAN_fixed_bold10x15。它由代碼調(diào)用并且應(yīng)該駐留在同一個(gè)草圖文件夾。

額外的字符會(huì)將風(fēng)扇控制器代碼使用的特定圖標(biāo)打印到 OLED。它們包括生成風(fēng)扇速度條形圖、OOR 警告、攝氏度和華氏度符號(hào)、RPM 風(fēng)扇旋轉(zhuǎn)符號(hào)、RPM 風(fēng)扇卡住警告、使用中的觸發(fā)模式、使用中的掃描速度和 P 輸入啟用圖標(biāo)的字符。

滾動(dòng)瀏覽顯示信息示例:

poYBAGJ7gWaALOfKAAWBfWbIX4M907.png

條形圖顯示了我們對(duì)主風(fēng)扇 A 的控制速度,精確到 10%。該 PWM 條形圖左側(cè)的兩個(gè)字母表示我們的工作模式。底線以 RPM 顯示溫度和 Fan-A 轉(zhuǎn)速計(jì)速度。超出范圍的 OOR 溫度用“感嘆號(hào)”圖標(biāo)表示。風(fēng)扇 A 的任何長(zhǎng)時(shí)間風(fēng)扇停止也會(huì)在 RPM 圖標(biāo)內(nèi)以“感嘆號(hào)”表示。當(dāng)風(fēng)扇在達(dá)到溫度最小值時(shí)被觸發(fā)時(shí),會(huì)顯示一個(gè)“溫度計(jì)”圖標(biāo)。在 P 輸入模式下,“箭頭”圖標(biāo)指示何時(shí)存在啟用信號(hào)。

pYYBAGJ7gWGAHov9AAW-6qfFV-0358.png

這些都是用筆和紙?jiān)O(shè)計(jì)的,然后對(duì)原始字體文件進(jìn)行逆向工程和修改。每個(gè)新字符的十六進(jìn)制值通過(guò)編輯添加到原始文件中。

poYBAGJ7gV2AOqR_AAXuMU6xGx4129.png

主要組件:

Arduino UNO R3(已經(jīng)具備 ATmega 328P 微控制器、時(shí)鐘振蕩器、電源輸入和電壓管理、復(fù)位系統(tǒng)、USB-串行連接、ICSP 連接等元素)。

DS18B20 溫度傳感器。

光耦PC817C。

OLED SSD1306 0、91“ 顯示屏。

LED 指示燈和無(wú)源蜂鳴器報(bào)警

用于菜單輸入的旋轉(zhuǎn)編碼器。

板載重置按鈕。

初始設(shè)置跳線接頭。

屏蔽版電路原理

防護(hù)罩為 Uno R3 板的頂部提供了一個(gè)整潔的附件。它提供了一種將風(fēng)扇控制器的特定電路連接到 Uno 板上已有的微控制器和子系統(tǒng)的簡(jiǎn)單方法。參考屏蔽版原理圖。

Fan-A 和 Fan-B 具有獨(dú)立控制的 PWM 輸出信號(hào),這些信號(hào)來(lái)自引腳 D9 和 D10。RPM 轉(zhuǎn)速計(jì)波形從風(fēng)扇 A 獲取,通過(guò) RC 噪聲濾波器并饋送到引腳 D2。這用于計(jì)算和顯示主風(fēng)扇 A 的旋轉(zhuǎn)速度。

引腳 D11 上的高電平將通過(guò)其 1K 限流電阻 R4 點(diǎn)亮紅色 LED4。代碼在確定主風(fēng)扇 A 卡住時(shí)執(zhí)行此操作,以發(fā)出異常信號(hào)。同樣,它會(huì)通過(guò)橫跨 A0 和 A1 的無(wú)源蜂鳴器 SG3 發(fā)出警報(bào)。每個(gè)輸出彼此異相,從而增加了明顯的音量水平。盡管如此,我還是有一個(gè) 220 歐姆的小電阻 R1 來(lái)將這里的電流降低到可接受的水平。該壓電蜂鳴器在開(kāi)關(guān)打開(kāi)時(shí)也會(huì)響起,并確認(rèn)配置設(shè)置已保存。

SSD1306 OLED 使用 I2C 總線。它的數(shù)據(jù)和時(shí)鐘線連接到 Uno 的引腳 A4/SDA 和 A5/SCL??赡苄枰部赡懿恍枰獌蓚€(gè)值為 5.1K 的上拉電阻 R5 和 R6。一些 OLED 板將在沒(méi)有這些的情況下運(yùn)行,因?yàn)樗鼈円呀?jīng)內(nèi)置了這些。

旋轉(zhuǎn)編碼器 SW1 提供了一種滾動(dòng)和設(shè)置所需配置的方式。DT 和 CLK 線由引腳輸入 D3 和 D4 讀取。按下時(shí)瞬時(shí)開(kāi)關(guān)接地。微控制器在引腳 D6 處讀取此低電平,以循環(huán)瀏覽菜單項(xiàng)。

PC817C 光耦合器 U3 的輸出在其引腳 4 上被帶到輸入 D8。它用于將啟用信號(hào)與我們可能選擇連接到接頭 P-IN 的任何輔助設(shè)備進(jìn)行光學(xué)隔離。如果光耦合器輸出側(cè)由其輸入端的內(nèi)部 LED 照亮,則該值將很低。電阻器 R3 將通過(guò)輸入電平的電流限制在規(guī)范范圍內(nèi)。1K 的值適用于我們期望在火腿小屋中擁有的最常見(jiàn)電壓。一個(gè) 1N4148 二極管可保護(hù)同一個(gè)輸入二極管免受意外的反極性連接。如果沒(méi)有這個(gè)保護(hù)二極管,光耦合器的 LED 將無(wú)法承受超過(guò) 6V 的反向電壓。

請(qǐng)注意:P-IN 標(biāo)頭連接與嵌入式版本不同。外部設(shè)備的使能電壓應(yīng)連接到接頭的引腳 2。它的負(fù)極線,通常是輔助設(shè)備的地,連接到 P-IN 接頭的引腳 1。這在絲網(wǎng)上標(biāo)有“1 G”。

P5 是我們連接 DS18B20 溫度傳感器的位置,以確保我們尊重其引腳排列。其數(shù)據(jù)線 DQ 接至引腳 D7,用作與傳感器通信的單線總線。當(dāng)我們?cè)儐?wèn)和接收來(lái)自傳感器的溫度數(shù)據(jù)時(shí),白色 LED2 將閃爍。我發(fā)現(xiàn)需要一個(gè)上拉電阻來(lái)確保良好的總線對(duì)話。

2K 的值給了我穩(wěn)定的數(shù)據(jù)流以及我使用的 0805 表面貼裝 LED 的充足照明。可以使用更高的值,例如 4.7K,但它最終取決于您選擇使用的 LED 兩端的電壓降。這可能因制造商、型號(hào)和顏色而異。您的里程可能會(huì)有所不同。

在引腳 D5 處打開(kāi)期間讀取標(biāo)題 U1。如果此接頭的引腳 1 和 2 由跳線橋接,則 D5 為低電平,代碼將使用華氏度。如果引腳 2 和 3 被橋接,則實(shí)際上電路中沒(méi)有任何內(nèi)容。D5 的內(nèi)部上拉將使其保持在高位,并且將使用攝氏度單位。

使用標(biāo)頭 U2,我們可以選擇兩個(gè)風(fēng)扇之間的工作模式。外部引腳連接到 Uno 引腳 A2 和 A3。讀取這些輸入的狀態(tài)將定義輔助風(fēng)扇 B 如何與風(fēng)扇 A 一起工作。對(duì)稱(chēng)(串聯(lián))或不對(duì)稱(chēng)(相反)。跳線將一個(gè)或另一個(gè)引腳連接到中央接地引腳。如果未安裝跳線,則兩側(cè)均為高電平,并且輸入引腳 A2 和 A3 上都將出現(xiàn)邏輯 1。然后,如果 Fan-A 發(fā)生故障,F(xiàn)an-B 將在熱備模式下等待。

我在防護(hù)罩上添加了一個(gè)小型觸覺(jué)開(kāi)關(guān) SW2。這連接到 Uno 的 RESET 引腳。實(shí)際上,它與 Uno 自己的重置開(kāi)關(guān)平行,但是現(xiàn)在被防護(hù)罩覆蓋并且?guī)缀鯚o(wú)法訪問(wèn)。像這樣,仍然可以輕松執(zhí)行重置。

為了給風(fēng)扇供電,我們需要+12V。該電壓來(lái)自桶形連接器,然后通過(guò) AMS1117 將電壓調(diào)節(jié)至 +5V,為其他 UNO 電路供電。對(duì)于粉絲來(lái)說(shuō),我們必須始終在此桶形連接器上為 UNO 提供大約 +12V 的電源。風(fēng)扇的直流輸入取自 Vin,這是輸入電壓通過(guò) Arduino 上標(biāo)記為 M7 的反向電壓保護(hù)二極管后恢復(fù)的引腳連接。這是一個(gè)標(biāo)準(zhǔn)的 1N4007 整流二極管,它將 12V 降低約 0.7V。UNO 的 AMS7111 +5v LDO 穩(wěn)壓器的額定電流為 800mA。理想情況下,我們需要低于這個(gè)值,因?yàn)槲覀円呀?jīng)處于他推薦的輸入電壓的頂端(盡管最大輸入更高)。因此,小型線性穩(wěn)壓器需要從用于為風(fēng)扇供電的主要 12V 電壓中釋放約 6V 電壓。作為一個(gè)例子,兩個(gè)風(fēng)扇都以 100% 轉(zhuǎn)動(dòng)時(shí)的總電流被測(cè)量為大約 270mA。每個(gè)風(fēng)扇大約 100mA(與風(fēng)扇制造商指定的指定電流消耗一致)和 Arduino 板 70mA。我們可以看到我們與引用的 800mA 相差甚遠(yuǎn),并且非常符合 AMS1117 功耗規(guī)格

雖然我經(jīng)??吹阶罡?+20V 被引用,但 Arduino 建議不超過(guò) +12V 輸入為其 UNO 板供電。這完全取決于板載 LDO 穩(wěn)壓器必須處理的電流和功率。在桶形連接器輸入端使用 +12V,在二極管壓降之后,我們?nèi)匀挥写蠹s 11.3V 的電壓,這對(duì)于驅(qū)動(dòng)風(fēng)扇來(lái)說(shuō)是可以接受的。這可以在風(fēng)扇數(shù)據(jù)表上進(jìn)行檢查。通常 12V 風(fēng)扇可承受 10V 至 13.2V(有些甚至 7v 至 13.8V)。使用任何小屋電源中常見(jiàn)的 13.8V,我們有 13.1V。仍在風(fēng)扇規(guī)格范圍內(nèi)。這種輕微的增加不會(huì)給 AMS1117 +5V 穩(wěn)壓器帶來(lái)更多的耗散負(fù)擔(dān),因?yàn)槲覀儧](méi)有通過(guò)它運(yùn)行高電流。

綠色 LED 1 和 3 從總體上向我們保證,我們的板上有 +5V 和 +12V。LED1采用1K限流電阻R7表示+5V,LED3采用2K限流電阻R8表示+12V。電阻值差異是由于指示的電壓不同。像這樣,亮度水平將非常相似。

獨(dú)立嵌入式版本:

這是在使用嵌入式 ATmega328P-AU 的單板上,包括所有其他子系統(tǒng)。串行和 ICSP 端口連接頭仍可用于調(diào)試和必要的芯片燒錄。自然,這里有更多的表面貼裝元件需要焊接。這當(dāng)然包括 328P-AU。它的 0.8mm 間距 TQFP 封裝將更具挑戰(zhàn)性。在初始草圖和/或引導(dǎo)加載程序中配置和加載也是如此。

poYBAGJ7gVaAdoCeAAevPf9Pe68834.png

主要組件:

ATmega 328P-AU

晶體時(shí)鐘振蕩器。

DS18B20 溫度傳感器。

光耦PC817C。

OLED SSD1306 0、91” 顯示屏。

AS1117 5V穩(wěn)壓器。

LED 指示燈和無(wú)源蜂鳴器報(bào)警

用于菜單輸入的旋轉(zhuǎn)編碼器。

板載電源開(kāi)關(guān)。

板載復(fù)位按鈕。

USB 串行功能可通過(guò)外部 FTDI(未來(lái)技術(shù)設(shè)備國(guó)際)板使用,通過(guò)“串行”端口接頭引腳。

外部 USBasp 板通過(guò)“ICSP”端口接頭引腳提供 ICSP 功能。

初始設(shè)置跳線接頭。

嵌入式版電路原理:

該版本為風(fēng)扇控制器代碼提供了一個(gè)單板平臺(tái)。它是風(fēng)扇控制器的獨(dú)立變體,圍繞 ATmega 328P-AU 芯片構(gòu)建。與許多 Arduino UNO R3 板使用的相同。參考嵌入式板原理圖。

該電路使用 ATmega 328P。不是 328PB 版本,它有一些引腳分配差異。后綴 AU 指的是小型 QFP32 封裝類(lèi)型,我發(fā)現(xiàn)它在測(cè)試和構(gòu)建期間仍然相對(duì)容易處理。

由于我們已經(jīng)失去了內(nèi)置 Arduino 引導(dǎo)加載程序的便利性,我們將不得不使用 ICSP 上傳到微控制器的內(nèi)存。還需要添加其他功能,如電源管理、時(shí)鐘、復(fù)位和串行調(diào)試端口、ICSP 端口。

屏蔽電路和嵌入式電路都使用相同的代碼。這是因?yàn)樗须娐饭δ芎瓦B接都設(shè)計(jì)為相互兼容。下面我已經(jīng)說(shuō)明了每個(gè)輸入或輸出的等效 Arduino Uno 連接是什么,因?yàn)檫@是草圖中引用的內(nèi)容。

Fan-A 和 Fan-B 具有獨(dú)立控制的 PWM 輸出信號(hào),這些信號(hào)取自微控制器的引腳 13 和 14。這些是端口引腳 PB1 和 PB2,相當(dāng)于 Arduino 板上的 I/O 引腳 D9 和 D10。RPM 轉(zhuǎn)速計(jì)波形取自風(fēng)扇 A,通過(guò) RC 噪聲濾波器并饋送到引腳 32,即端口引腳 PD2 (Arduino D2)。這用于計(jì)算和顯示主 Fan-A 的速度。

當(dāng)代碼檢測(cè)到風(fēng)扇 A 停止時(shí),引腳 15、端口引腳 PB3 (Arduino D11) 上的高電平將通過(guò)其 1K 限流電阻 R4 點(diǎn)亮紅色 LED4。同樣,它會(huì)通過(guò)跨越引腳 23 和 24、端口引腳 PC0 和 PC1(Arduino A0 和 A1)的無(wú)源蜂鳴器 SG3 發(fā)出警報(bào)。每個(gè)輸出彼此異相,從而增加了明顯的音量水平。盡管如此,還是有一個(gè)小的 220 歐姆電阻器 R1 可以將這里的電流降低到可接受的水平。該壓電蜂鳴器在開(kāi)關(guān)打開(kāi)時(shí)也會(huì)響起,并確認(rèn)配置設(shè)置已保存。

SSD1306 OLED 使用 I2C 總線。它的數(shù)據(jù)和時(shí)鐘線連接到引腳 27 和 28。它們分別是端口引腳 PC4/SDA 和 PC5/SCL(位于 Uno 的 A4/SDA 和 A5/SCL 上)。為了完整起見(jiàn),包括兩個(gè)值為 5.1K 的上拉電阻器 R5 和 R6,盡管一些 OLED 板在沒(méi)有這些的情況下也可以工作,因?yàn)樗鼈円呀?jīng)具有上拉電阻。我的 OLED 已經(jīng)有一個(gè) +3.3V 穩(wěn)壓器,并且可以承受 +5V 邏輯,因此不需要電平轉(zhuǎn)換器。

旋轉(zhuǎn)編碼器 SW1 線 DT 和 CLK 在微控制器的引腳 1 和 2 上讀取。這些是端口引腳 PD3 和 PD4(與 Uno 的 D3 和 D4 相同)。按下時(shí)瞬時(shí)開(kāi)關(guān)接地。該低電平在引腳 10 處讀取,該引腳是微控制器上的端口引腳 PD6(Uno 的 D6),以循環(huán)瀏覽菜單項(xiàng)。

PC817C 光耦合器 U3 在其引腳 4 上的輸出被帶到微控制器引腳 12,即端口引腳 PB0(Arduino 上的 D8)。它用于將啟用信號(hào)與我們可能選擇連接到接頭 P-IN 的任何輔助設(shè)備進(jìn)行光學(xué)隔離。如果光耦合器輸出側(cè)由其輸入端的內(nèi)部 LED 照亮,則該值將很低。電阻器 R3 將通過(guò)輸入電平的電流限制在規(guī)范范圍內(nèi),1K 值適用于我們期望在火腿小屋中擁有的最常見(jiàn)電壓。一個(gè) 1N4148 二極管可保護(hù)同一個(gè)輸入二極管免受意外的反極性連接。如果沒(méi)有這個(gè)保護(hù)二極管,光耦合器的 LED 將無(wú)法承受超過(guò) 6V 的反向電壓。

請(qǐng)注意:此 P-IN 接頭與屏蔽版本不同。連接外部觸發(fā)器時(shí)必須小心。外部線路的負(fù)極,通常是接地,應(yīng)該連接到 P-IN 接頭的引腳 2。外部線路的正極應(yīng)連接到引腳 1。這在接頭的絲印上標(biāo)記為“+VE 1”。

P5 是我們連接 DS18B20 溫度傳感器的位置,確保我們遵循其引腳排列。它的數(shù)據(jù)線 DQ 接至引腳 11,或端口引腳 PD7(Uno 上的 D7)。這是與傳感器通信的單線總線。當(dāng)我們?cè)儐?wèn)和接收來(lái)自傳感器的溫度數(shù)據(jù)時(shí),白色 LED2 將閃爍。需要一個(gè)上拉電阻來(lái)確保良好的總線通信。

我發(fā)現(xiàn) 2K 的值可以提供穩(wěn)定的數(shù)據(jù)流以及我使用的 0805 表面貼裝 LED 的充足照明??梢允褂?4.7K 等更高的值,但最終取決于所使用的 LED 上的電壓降。這可能因制造商、型號(hào)和顏色而異。您的里程可能會(huì)有所不同。

使用標(biāo)頭 J1,我們可以選擇兩個(gè)風(fēng)扇之間的工作模式。這發(fā)生在開(kāi)關(guān) ON 時(shí)。引腳 1 和 3 分別連接到 ATmega 的引腳 26 和 25。這些是微控制器端口引腳 PC3 和 PC2(相當(dāng)于 Uno 引腳 A3 和 A2)。讀取這些輸入的狀態(tài)將定義輔助風(fēng)扇 B 如何與風(fēng)扇 A 一起工作。與主風(fēng)扇 A 對(duì)稱(chēng)(串聯(lián))或不對(duì)稱(chēng)(相反)。跳線放置將使引腳 2 上的一個(gè)或另一個(gè)引腳接地。如果跳線跨引腳 3 和 4,則實(shí)際上是斷路。邏輯 1 將出現(xiàn)在兩個(gè)輸入引腳 A2 和 A3 上,因?yàn)樗鼈兊膬?nèi)部上拉電阻已被配置。使用左側(cè)的跳線,設(shè)置非對(duì)稱(chēng)操作。通過(guò)中間的跳線,設(shè)置對(duì)稱(chēng)操作。使用右側(cè)的跳線,設(shè)置熱備。

雖然我們實(shí)際上不需要它來(lái)橋接 3 號(hào)和 4 號(hào)引腳,但這只是一種方便的方式來(lái)存放小跳線并防止我們丟失它。

頭 J2 在開(kāi)關(guān)打開(kāi)期間也被讀取并路由到引腳 9。這是端口引腳 PD5 (Uno D5)。如果此接頭的引腳 1 和 2 由跳線橋接,則引腳 9 被拉低,代碼隨后將以華氏度計(jì)算溫度。如果引腳 2 和 3 被橋接,則實(shí)際上電路中沒(méi)有任何內(nèi)容。同樣,我們只是將跳線存放在引腳 2 和 3 上以避免丟失。在這里,引腳 9 的內(nèi)部上拉將保持高電平,代碼將以攝氏度溫度單位工作。

開(kāi)關(guān) SW18 在 ATmega 328P 的引腳 29 上連接到設(shè)備的復(fù)位電路。拉低它會(huì)強(qiáng)制微控制器復(fù)位。在正常操作中,上拉電阻 R2 將其保持為高電平。二極管 D2 保護(hù)微控制器免受由于我們串行端口的 DTR 線上的電容器 C7 而發(fā)生的任何電壓尖峰的影響。如果這個(gè) DTR 變高,我們的復(fù)位線上的電壓會(huì)短暫加倍。1N4148 安全地分流這個(gè) 10V。串口的 DTR 線上需要電容 C7,作為微分器。當(dāng)連接到串口時(shí),大多數(shù) USB 轉(zhuǎn)串口芯片會(huì)將 DTR 設(shè)置為低并保持低。我們只需要一個(gè)短脈沖來(lái)初始重啟微控制器。ATmega 的復(fù)位引腳也被任何 ICSP 編程器使用,因此還連接到 ICSP 接頭引腳 5。

綠色 LED 5 和 6 概括地表明我們有 +12V 和 +5V 到達(dá)我們的電路板。LED5采用2K限流電阻R10表示+12V,LED6采用1K限流電阻R11表示+5V。電阻值差異是由于指示的電壓不同。像這樣,它們的亮度水平將相等。

DC 桶形連接器和通電開(kāi)關(guān) SW2 之后,AMS1117 +5V 穩(wěn)壓器 U36 為電路板提供 +5V。該穩(wěn)壓器的版本被引用為具有 15V 至 20V 的最大輸入電壓。雖然推薦值較低。功耗和發(fā)熱將取決于它將通過(guò)多少電流。它保持在功耗規(guī)格范圍內(nèi),因?yàn)橥ㄟ^(guò)它的總電流相對(duì)較低。盡管如此,我還是包含了一個(gè)臨時(shí) PCB 散熱器,因?yàn)槲矣须娐钒蹇臻g。穩(wěn)壓器的 +5V 選項(xiàng)卡連接到此,它也有通往底部 PCB 層的熱通孔。

AS1117 兩端的 1N4007 二極管 U1,用于在使用 ICSP 端口時(shí)進(jìn)行保護(hù)。通常,ICSP 編程器會(huì)在 ICSP 端口的引腳 2 上放置 +5V。當(dāng)我們燒掉 ATmega 芯片時(shí),這可以保護(hù) AMS1117 LDO 穩(wěn)壓器免受反饋電壓的影響。

為了給風(fēng)扇供電,我們需要+12V。在通過(guò) AMS1117 將電壓調(diào)節(jié)至 +5V 之前,此電壓來(lái)自桶形連接器。在輸入電壓通過(guò)標(biāo)有 M7 的反向電壓保護(hù)二極管后獲取風(fēng)扇電壓。這是一個(gè)標(biāo)準(zhǔn)的 1N4007 整流二極管,它也會(huì)將 12V 電壓降低約 0.7V。

AMS7111 +5v LDO 穩(wěn)壓器的額定電流為 800mA。理想情況下,我們需要低于這個(gè)值,因?yàn)槲覀円呀?jīng)處于他推薦的輸入電壓的頂端(盡管最大輸入要高得多)。小型線性穩(wěn)壓器需要從用于為風(fēng)扇供電的主 12V 中釋放大約 6V 的電壓。然而,總電流消耗遠(yuǎn)低于這個(gè) 800mA 的最大值。因此,即使需要丟棄 6V,但通過(guò)它的電流如此之低,我們?nèi)赃h(yuǎn)低于 AMS1117 的功耗規(guī)格。

如前所述,為風(fēng)扇供電所需的 +12V 取自 U37 的陰極。這是 1N4007 二極管,它為我們提供了一些簡(jiǎn)單的反向功率保護(hù),但會(huì)下降約 0.7V。即使有這種下降,仍然有足夠的電壓在其指定的電壓容差范圍內(nèi)驅(qū)動(dòng)大多數(shù)風(fēng)扇。這可以在風(fēng)扇的數(shù)據(jù)表上進(jìn)行檢查。通常 12V 風(fēng)扇可承受 10V 至 13.2V(有些甚至 7v 至 13.8V)。

在桶形連接器輸入端使用 +12V,在二極管的壓降之后,我們?nèi)匀挥写蠹s 11.3V,這是可以接受的。使用13.8V,這是任何小屋電源的正常輸出,我們有13.1V。仍在大多數(shù)風(fēng)扇規(guī)格范圍內(nèi),但您可能會(huì)注意到 RPM 有所增加。這種小的輸入電壓增加不會(huì)給 AMS1117 +5V 穩(wěn)壓器帶來(lái)更多負(fù)擔(dān)。

使用 16MHz 外部晶振 Q6。此選項(xiàng)必須在 ATmega 的保險(xiǎn)絲設(shè)置中進(jìn)行配置。晶體 Q6 上的 1M 電阻器 R13 改善了各種晶體規(guī)格的振蕩的啟動(dòng)和維持。一些微控制器內(nèi)置了此功能。為了完整起見(jiàn),將其包含在內(nèi)。

許多 Arduino 板使用陶瓷諧振器而不是晶體。雖然不如水晶準(zhǔn)確,但它更小,似乎對(duì)于日常應(yīng)用來(lái)說(shuō)足夠準(zhǔn)確。我選擇了晶體,因?yàn)?16MHz 晶體在我所在的地區(qū)更容易找到,并且比微型陶瓷諧振器更容易處理。我不確定內(nèi)部 ATmega 的振蕩器是否足以滿(mǎn)足我們的需求,尤其是對(duì)于串行通信功能。

串口頭H7可用于調(diào)試。如果引導(dǎo)加載程序先前已燒錄到微控制器,它也可用于上傳新草圖。需要一個(gè) FT232RL FTDI USB 到 TTL 串行適配器模塊,設(shè)置為在 +5V 下工作。插頭引腳將與大多數(shù)可用的適配器模塊對(duì)齊。接地側(cè)在串口絲印上標(biāo)記的引腳 1 上。Tx 和 Rx 線上的兩個(gè) 1K 電阻器 R8 和 R12 限制電流。因此,如果適配器端變高,然后微控制器代碼將相應(yīng)的輸出引腳發(fā)送到低電平,這將避免直接對(duì)地短路。串行接頭的 Vcc 引腳 3 未連接。風(fēng)扇控制器由其自身的穩(wěn)壓器供電,而轉(zhuǎn)接板則通過(guò)計(jì)算機(jī)的 USB 連接供電。兩者都有共同點(diǎn)。100nF 電容 C7 已經(jīng)討論過(guò)了。它構(gòu)成了復(fù)位電路的一部分,確保來(lái)自串行端口 DTR 引腳的短暫低脈沖觸發(fā)復(fù)位。

要使用 ICSP 端口 J5,需要一個(gè)在線串行編程器來(lái)直接燒錄到微控制器的內(nèi)存。使用新的 ATmega 328P-AU,這將是將第一個(gè)代碼上傳到微控制器的唯一方法。如果您刻錄引導(dǎo)加載程序,您將能夠僅使用串行端口和 Arduino IDE 以經(jīng)典方式上傳草圖。ICSP 接頭引腳排列遵循標(biāo)準(zhǔn)布局,與 Arduino Uno R3 板上一樣。對(duì)于 ICSP 編程,我使用便宜且易于使用的 USBasp 編程器。如果引腳匹配,當(dāng)然可以使用其他程序員。

編程時(shí),風(fēng)扇控制器板應(yīng)斷電,因?yàn)樗鼘?ICSP 編程器獲取電源。然而,一些較舊的 ICSP 編程器需要在 ICSP 引腳 2 處從其目標(biāo)獲得電壓才能正常工作。在這種情況下,應(yīng)打開(kāi)設(shè)備電源。

ICSP 的 MISO 和 MOSI 線位于插頭的引腳 1 和 4,并連接到微控制器 MISO 和 MOSI 引腳 16 和 15。插頭引腳 3 的時(shí)鐘線 SCK 在 17 處連接到芯片的 SCK 引腳,復(fù)位線 RST 在頭針 5 加入復(fù)位電路,連接到芯片 29 處的復(fù)位針。前面討論的紅色 LED4 用于在正常運(yùn)行期間發(fā)出主風(fēng)扇 A 停止的信號(hào),現(xiàn)在將用于向我們顯示任何 ICSP 活動(dòng)。端口引腳 PB3 也是 MOSI 引腳,所以 LED4 會(huì)在我們連接芯片時(shí)閃爍。

嵌入式版本構(gòu)建:

同樣,該板混合使用了通孔和表面貼裝元件。0805 SMD 封裝是首選,因?yàn)檫@種小尺寸仍然相對(duì)容易處理。如果您是第一次在更簡(jiǎn)單的項(xiàng)目甚至練習(xí)板上練習(xí) SMD 焊接技術(shù),可能會(huì)很合理。嵌入式版本不是一個(gè)好的第一個(gè) SMD 項(xiàng)目。在獲得有效的嵌入式版本的過(guò)程中,已經(jīng)有足夠多的陷阱需要提防。這可能會(huì)給新手帶來(lái)很大的挫敗感。表面貼裝或嵌入式微控制器新手最好從屏蔽版本開(kāi)始。如果你有信心,我現(xiàn)在將通過(guò)一個(gè)合乎邏輯的工作流程,這可能會(huì)避免自制的不滿(mǎn)。

- 對(duì)于 SMD,我使用小型回流焊爐和一些低溫含鉛焊膏。通過(guò)使用與所用焊料相匹配的特定溫度曲線,可以輕松控制熱量。當(dāng)然,您也可以使用熱板和熱風(fēng)返修站,但請(qǐng)注意因過(guò)熱而熔化任何塑料外殼組件。例如,注意電解電容器周?chē)碾娊橘|(zhì)可能會(huì)損壞。對(duì)于焊料,無(wú)鉛類(lèi)型現(xiàn)在都是炒作,但相信我,它沒(méi)有那么寬容。無(wú)鉛焊料容易成珠,不易流動(dòng)或粘連。大型 PCB 工廠使用環(huán)保焊料是合理的。對(duì)于我們的小型家庭愛(ài)好來(lái)說(shuō),它真的是海洋中的一個(gè)環(huán)境下降。健康方面,焊芯中助焊劑產(chǎn)生的煙霧實(shí)際上更有害,含鉛和無(wú)鉛焊料中都存在這種情況。

- 我建議先回流所有 SMD 組件,然后立即測(cè)試和 ICSP 燃燒 Atmega 328P-AU。也就是說(shuō),在安裝較大的通孔組件之前。像這樣,立即診斷任何編程問(wèn)題會(huì)更容易。如果您需要拆焊和重新焊接組件,則無(wú)需整板的雜亂。我的第一個(gè)完成的電路板有幾個(gè)問(wèn)題,需要我移除和更換組件以追蹤問(wèn)題。雖然我解決了這些問(wèn)題并且董事會(huì)工作了,但它看起來(lái)確實(shí)有點(diǎn)像最后的狗晚餐,而不是我們努力為每個(gè)完成的項(xiàng)目提供的米其林星級(jí)餐。

首先,回流所有 SMD:U1、U36、U37、U25、Q6、SW18、D1、D2、LED2、LED4、LED5、LED6、C1、C2、C3、C4、C5、C6、C7、C8、C9 、C12、C13、C14、R1、R2、R3、R4、R5、R6、R7、R8、R9、R10、R11、R12、R13。完成此操作后,目視檢查焊點(diǎn)是否良好且無(wú)焊橋。使用放大鏡或數(shù)碼顯微鏡。在一些 ATmega 328P-AU 引腳上經(jīng)常有橋接,應(yīng)該使用一些拆焊編織物將它們吸起來(lái)。一旦我們感到滿(mǎn)意,我們就可以通過(guò) ICSP 接頭進(jìn)入對(duì)微控制器進(jìn)行編程的下一階段。

poYBAGJ7gU6AYRZOAAJItMKFSjA314.png

檢查您的 ATmega 328P 是否有連接。如果一切順利,至少你的 MISO、MOSI、RST、SCK 和 ICSP 到微控制器的電源引腳是好的。

檢查保險(xiǎn)絲和鎖定位的當(dāng)前狀態(tài)。這些保險(xiǎn)絲的出廠默認(rèn)設(shè)置通常不是我們想要的。在這里,他們需要設(shè)置為該項(xiàng)目的要求。重新編程時(shí)要小心,因?yàn)殄e(cuò)誤的設(shè)置可能會(huì)使微控制器變磚并使其難以再次輕松正?;?。

將 ATmega 配置為使用 16MHz 的外部晶振,保留引導(dǎo)加載程序空間、掉電檢測(cè)、啟動(dòng)延遲、引導(dǎo)復(fù)位引腳等。有關(guān)配置四組保險(xiǎn)絲的 ATmega 數(shù)據(jù)表和其他資源,請(qǐng)參閱參考書(shū)目部分。

低保險(xiǎn)絲:對(duì)于 CCKDIV8、CKOUT、SUT 和四個(gè) CKSEL 位。

高保險(xiǎn)絲:適用于帶 BOOTRST 的 RSTDISBL、DWEN、SPIEN、WDTON、EESAVE 和 BOOTSZ。

擴(kuò)展保險(xiǎn)絲:用于 BOD 級(jí)別。

鎖定位:限制對(duì)程序存儲(chǔ)器的訪問(wèn)。

我使用類(lèi)似于以下值的值設(shè)置該項(xiàng)目的保險(xiǎn)絲:

L F7h

H DEh

E FDh

LB FFh

因?yàn)樾滦酒某鰪S默認(rèn)設(shè)置通常是:

長(zhǎng) 62 小時(shí)

高 D9h

E FFh

LB FFh

(除其他外,微控制器保險(xiǎn)絲設(shè)置為使用其內(nèi)部 RC 振蕩器、時(shí)鐘除以 8、掉電檢測(cè)禁用等)

警告:RSTDISBL、SPIEN、DWEN 保險(xiǎn)絲和鎖定位有可能使 ATmega 芯片變磚,或者至少使芯片很難再次使用。因此,在單擊“寫(xiě)入”按鈕之前,請(qǐng)務(wù)必仔細(xì)檢查您的保險(xiǎn)絲設(shè)置值。

- 一旦建立了與微控制器及其保險(xiǎn)絲的通信,我們就可以加載草圖了。同樣有多種方法可以做到這一點(diǎn),盡管我發(fā)現(xiàn)在這里使用 Arduino IDE 與相同的 USBasp ICSP 編程器和出色的 MiniCore Arduino 內(nèi)核是實(shí)用的。一旦在 IDE 的板管理器中配置,它就允許對(duì)許多 ATmega 微控制器(包括現(xiàn)在有時(shí)在 Arduino 板上使用的 ATmega 328PB 版本)進(jìn)行編程。此內(nèi)核使用自定義版本的 Optiboot,它是常規(guī)引導(dǎo)加載程序的一種節(jié)省空間且更高效的替代方案。

在 IDE 的板管理器中設(shè)置 MiniCore 后,我們可以在“工具”中選擇我們的 ATmega 328P 并檢查其選項(xiàng)。編程器當(dāng)然應(yīng)該設(shè)置為 USBasp(MiniCore)。我可以選擇將引導(dǎo)加載程序上傳到內(nèi)存并激活 USB 端口,以便以后通過(guò)串行 USB-FTDI 端口更新草圖。這會(huì)在打開(kāi)時(shí)產(chǎn)生 2 秒的延遲。在此期間,引導(dǎo)加載程序被調(diào)用并等待任何草圖上傳。該串口也用于 115200 波特的調(diào)試。我們也可以選擇不上傳引導(dǎo)加載程序并取消串行上傳草圖。由于代碼將立即開(kāi)始運(yùn)行,因此不會(huì)有 2 秒的延遲。任何草圖上傳都只能使用 ICSP 完成。

最初嘗試上傳 Blink 草圖。在 Arduino IDE 首選項(xiàng)部分啟用詳細(xì)模式是一個(gè)很好的策略。像這樣,可以看到在編譯和上傳代碼期間發(fā)生的事情的詳細(xì)信息。Blink 草圖很小、很簡(jiǎn)單并且可以快速上傳。微控制器端口 B3 上的 LED 可用于查看 Blink 草圖是否與電路板配合使用。這應(yīng)該在您的 Blink 代碼中定義為數(shù)據(jù)引腳 11。它是 328P 微控制器引腳 15 上的紅色風(fēng)扇 A 警告 LED。順便說(shuō)一句,這個(gè) LED 也連接到 ICSP 端口的 MOSI 線,因此可以在發(fā)生在線串行編程活動(dòng)時(shí)向我們顯示。

既然項(xiàng)目的微控制器端已經(jīng)配置和測(cè)試過(guò)了,PCB 可以通過(guò)手工焊接剩余的通孔元件來(lái)完成。

最后,風(fēng)扇控制器草圖可以上傳到板上并測(cè)試其所有功能。

示例用途

我在以下示例中使用風(fēng)扇控制器。我為每個(gè)應(yīng)用程序調(diào)整風(fēng)扇速度溫度斜率。它確保在可接受的噪音水平下充分冷卻。

天線假負(fù)載

隨著價(jià)格低廉的 50 歐姆陶瓷電阻器的出現(xiàn),我找到了一些時(shí)間來(lái)構(gòu)建高功率虛擬負(fù)載。它非常適合測(cè)試 HF 收發(fā)器。它使用 250N50F 氮化鋁 (AlN) 陶瓷電阻器。替代品包括氧化鈹 (BeO) 電阻器。這些都是以前使用過(guò)的組件。被一些有進(jìn)取心的貿(mào)易商從報(bào)廢的設(shè)備中拯救出來(lái)。

您應(yīng)該管理應(yīng)用于負(fù)載的“電源時(shí)間:休息時(shí)間”比率。在更長(zhǎng)的時(shí)間內(nèi)更多的功率意味著更高的溫度,因此需要更多的冷卻時(shí)間。

大型散熱器加上這些雙風(fēng)扇形式的智能冷卻解決方案是理想的選擇。風(fēng)扇控制器板安裝在此封裝的一端。陶瓷電阻用螺栓固定在散熱器上,它本身夾在兩個(gè)冷卻風(fēng)扇之間。DS18B20 溫度傳感器被夾在與散熱器直接接觸的位置。您可以使用一些氧化鋅導(dǎo)熱膏進(jìn)行良好測(cè)量。我用的尿布膏和我手頭的東西基本一樣。

pYYBAGJ7gUeALW2BAAM8NuoHpxk153.png

工業(yè)電腦

我討厭噪音。我使用帶有 macOS 的 Mac Mini 和帶有 Windows 的工業(yè) PC。既不發(fā)出任何聲音,也完全保持沉默。然而,很快就發(fā)現(xiàn)運(yùn)行 Windows 的無(wú)風(fēng)扇工業(yè) PC 可能會(huì)發(fā)熱很多。盡管被有效地安置在一個(gè)大的散熱器盒中,但缺乏氣流意味著它的溫度在執(zhí)行某些任務(wù)時(shí)確實(shí)會(huì)顯著升高。這從來(lái)都不是好事。

我使用風(fēng)扇控制器和兩個(gè)風(fēng)扇來(lái)促進(jìn) PC 上方的氣流。配置溫度/風(fēng)扇速度曲線,充分降低其溫度,但仍不會(huì)產(chǎn)生分散注意力的風(fēng)扇噪音。溫度傳感器安裝在與 PC 外殼直接接觸的位置。

poYBAGJ7gUOAEG03AAYyg6s0arw401.png

線性電源單元

我的 Microset PT-135 35A 電源大、堅(jiān)固且無(wú)風(fēng)扇。它使用線性調(diào)節(jié)并且過(guò)度設(shè)計(jì)。它在射頻和小屋中都提供了美妙的沉默。它的后部有一個(gè)大散熱器,用于散熱。我決定添加一些主動(dòng)冷卻。并不是它需要它。只是一點(diǎn)幫助,以幫助氣流。

poYBAGJ7gT-AdVQmAAZjMrE9JAw277.png

這里使用了屏蔽版本。配置低風(fēng)扇速度曲線可將任何風(fēng)扇噪音保持在無(wú)法察覺(jué)的水平。它緊緊地夾在散熱片的背面。另一種解決方案可能是使用小磁鐵將其固定在外殼上。溫度傳感器安裝在電路板上方,僅檢測(cè)環(huán)境溫度。它只在炎熱的日子里激活風(fēng)扇。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 微控制器
    +關(guān)注

    關(guān)注

    48

    文章

    7454

    瀏覽量

    150851
  • 冷卻系統(tǒng)
    +關(guān)注

    關(guān)注

    5

    文章

    114

    瀏覽量

    17763
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何利用微控制器實(shí)現(xiàn)PWM?有什么方法?

    PWM具有什么屬性?如何利用微控制器實(shí)現(xiàn)PWM?有什么方法?
    發(fā)表于 05-11 06:11

    如何利用MSP430微控制器實(shí)現(xiàn)數(shù)字風(fēng)扇控制系統(tǒng)的設(shè)計(jì)

    本文主要描述如何利用 MSP430 系列微控制器實(shí)現(xiàn)數(shù)字風(fēng)扇控制系統(tǒng)的設(shè)計(jì)。1. 概述風(fēng)扇常用于
    發(fā)表于 09-08 08:04

    變頻電源的冷卻系統(tǒng)組成部分

    中港揚(yáng)盛變頻電源的冷卻系統(tǒng)主要包括散熱片和冷卻風(fēng)扇冷卻風(fēng)扇是工作壽命比較短壽的零件,臨近工作壽命時(shí),風(fēng)
    發(fā)表于 11-15 09:18

    使用LM35的冷卻風(fēng)扇控制器

    描述使用 LM35 的冷卻風(fēng)扇控制器功率元件的高溫是電子學(xué)中的一個(gè)已知現(xiàn)象。為了克服這一挑戰(zhàn),設(shè)計(jì)人員在組件上安裝散熱以散熱,然而,在許多商用和家用電器設(shè)備中,嵌入式散熱
    發(fā)表于 06-30 07:21

    使用LM35溫度傳感和ATTiny13微控制器控制風(fēng)扇的教程

    影響設(shè)備的壽命和性能。因此,嵌入一個(gè)緊湊的自動(dòng)冷卻風(fēng)扇控制器板會(huì)很有用。此外,它還可用于保護(hù)您自己設(shè)計(jì)的電路及其功率元件,例如穩(wěn)壓、MOSFET、功率晶體管等。 之前,我已經(jīng)介紹了一
    發(fā)表于 07-21 06:19

    層流冷卻系統(tǒng)自尋優(yōu)模糊控制研究

    熱軋帶鋼層流冷卻系統(tǒng)將帶鋼由較高的終軋溫度迅速冷卻到卷取溫度,是軋制過(guò)程的重要環(huán)節(jié)。由于帶鋼溫度受到各種錯(cuò)綜復(fù)雜因素的影響,精確的數(shù)學(xué)描述無(wú)法建立,常規(guī)控制
    發(fā)表于 12-19 12:06 ?7次下載

    一祌新型變壓冷卻系統(tǒng)智能監(jiān)控裝置的研究

     目前,國(guó)內(nèi)2201^及以上變壓一般采用強(qiáng)迫 油循環(huán)風(fēng)冷卻方式。冷卻系統(tǒng)由數(shù)組冷卻器控制裝置組成,每組
    發(fā)表于 06-28 08:38 ?28次下載

    單芯冷卻風(fēng)扇方案設(shè)計(jì)

     冷卻系統(tǒng)中,冷卻風(fēng)扇的使用率非常高。然而傳統(tǒng)的冷卻風(fēng)扇系統(tǒng)需要較多的外圍器件,設(shè)計(jì)比較復(fù)雜。為
    發(fā)表于 07-04 09:24 ?2232次閱讀

    車(chē)輛冷卻系統(tǒng)測(cè)控軟件設(shè)計(jì)

    數(shù)據(jù)采集卡和傳感等硬件設(shè)計(jì)開(kāi)發(fā)了車(chē)輛冷卻系統(tǒng)的測(cè)控軟件。詳細(xì)介紹了三層架構(gòu)的數(shù)據(jù)訪問(wèn)層、業(yè)務(wù)邏輯層、表示層在測(cè)控程序中的具體實(shí)現(xiàn)過(guò)程,完成了對(duì)測(cè)控?cái)?shù)據(jù)的實(shí)時(shí)采集、存儲(chǔ)與處理,繪制了測(cè)控?cái)?shù)據(jù)實(shí)時(shí)曲線和歷史曲線,以及
    發(fā)表于 03-15 15:16 ?0次下載
    車(chē)輛<b class='flag-5'>冷卻系統(tǒng)</b>測(cè)控軟件設(shè)計(jì)

    汽車(chē)冷卻系統(tǒng)如何來(lái)實(shí)現(xiàn)電氣控制

    在檢所謂“溫度調(diào)節(jié)執(zhí)行元件”,就是指發(fā)動(dòng)機(jī)冷卻系統(tǒng)中的“節(jié)溫”。節(jié)溫實(shí)質(zhì)上就是一個(gè)“調(diào)溫”,作用是按冷卻水溫度的高低,來(lái)改變發(fā)動(dòng)機(jī)
    發(fā)表于 07-09 17:06 ?1230次閱讀

    新能源汽車(chē)技術(shù)11--驅(qū)動(dòng)電動(dòng)機(jī)冷卻系統(tǒng)

    電動(dòng)汽車(chē)驅(qū)動(dòng)電動(dòng)機(jī)與控制器冷卻系統(tǒng)主要依靠冷卻水泵帶動(dòng)冷卻液在冷卻管道中循環(huán)流動(dòng),通過(guò)在散熱
    的頭像 發(fā)表于 12-26 17:51 ?2200次閱讀

    變頻電源的冷卻系統(tǒng)

    中港揚(yáng)盛變頻電源的冷卻系統(tǒng)主要包括散熱片和冷卻風(fēng)扇,冷卻風(fēng)扇是工作壽命比較短壽的零件,臨近工作壽命時(shí),風(fēng)
    發(fā)表于 11-08 17:51 ?11次下載
    變頻電源的<b class='flag-5'>冷卻系統(tǒng)</b>

    使用LM35的冷卻風(fēng)扇控制器

    電子發(fā)燒友網(wǎng)站提供《使用LM35的冷卻風(fēng)扇控制器.zip》資料免費(fèi)下載
    發(fā)表于 07-06 10:56 ?4次下載
    使用LM35的<b class='flag-5'>冷卻</b><b class='flag-5'>風(fēng)扇</b><b class='flag-5'>控制器</b>

    示波器測(cè)量汽車(chē)發(fā)動(dòng)機(jī)冷卻風(fēng)扇信號(hào)及分析

    汽車(chē)發(fā)動(dòng)機(jī)的冷卻風(fēng)扇是車(chē)輛冷卻系統(tǒng)的重要組成部分,若風(fēng)扇出現(xiàn)故障,則會(huì)導(dǎo)致發(fā)動(dòng)機(jī)冷卻不足或冷卻過(guò)
    的頭像 發(fā)表于 12-27 14:01 ?1131次閱讀
    示波器測(cè)量汽車(chē)發(fā)動(dòng)機(jī)<b class='flag-5'>冷卻</b><b class='flag-5'>風(fēng)扇</b>信號(hào)及分析

    冷卻系統(tǒng)各組件及控制作用

    。 一、冷卻系統(tǒng)的組成 冷卻系統(tǒng)通常由以下幾個(gè)主要部分組成: 散熱 :用于散發(fā)熱量。 水泵 :用于循環(huán)冷卻液。 風(fēng)扇 :用于增加空氣流動(dòng),
    的頭像 發(fā)表于 09-30 10:59 ?224次閱讀