洗手液機(jī)DIY全攻略)
1. 項(xiàng)目概述一個(gè)“保持社交距離”的自動(dòng)洗手液分配器最近幾年大家對(duì)公共衛(wèi)生和個(gè)人防護(hù)的意識(shí)顯著提高了。一個(gè)很具體、很實(shí)際的需求擺在我們面前如何在公共或半公共場(chǎng)所比如辦公室前臺(tái)、小型商店入口、家庭玄關(guān)既方便地取用洗手液進(jìn)行手部清潔又能最大限度地減少人與人、人與物的直接接觸傳統(tǒng)的按壓式或壁掛式洗手液瓶需要每個(gè)人都去觸摸同一個(gè)泵頭這本身就成了一個(gè)潛在的交叉接觸點(diǎn)。這個(gè)“Social Distancing Hand Wash Dispenser”項(xiàng)目就是為了解決這個(gè)問(wèn)題而生的。它的核心思路很簡(jiǎn)單利用常見(jiàn)的電子元件制作一個(gè)非接觸式的、自動(dòng)感應(yīng)出液的洗手液裝置。你不需要用手去按壓只需要將手伸到感應(yīng)器下方機(jī)器就會(huì)自動(dòng)噴出定量的洗手液或消毒凝膠。這不僅能有效減少接觸提升衛(wèi)生水平其自動(dòng)化和“無(wú)接觸”的科技感本身也能在潛移默化中鼓勵(lì)更多人養(yǎng)成勤洗手的好習(xí)慣。這個(gè)項(xiàng)目非常適合對(duì)電子制作、Arduino或樹(shù)莓派編程感興趣的愛(ài)好者、創(chuàng)客也適合小型商戶或社區(qū)空間的負(fù)責(zé)人自己動(dòng)手改造以極低的成本提升場(chǎng)所的衛(wèi)生形象。它涉及傳感器技術(shù)、基礎(chǔ)電路設(shè)計(jì)和簡(jiǎn)單的機(jī)械控制是一個(gè)將創(chuàng)意轉(zhuǎn)化為實(shí)用產(chǎn)品的經(jīng)典案例。接下來(lái)我會(huì)詳細(xì)拆解從設(shè)計(jì)思路、元件選型到組裝調(diào)試的全過(guò)程并分享我在制作過(guò)程中踩過(guò)的坑和總結(jié)的經(jīng)驗(yàn)。2. 項(xiàng)目整體設(shè)計(jì)與核心思路拆解制作一個(gè)自動(dòng)洗手液機(jī)聽(tīng)起來(lái)可能有點(diǎn)復(fù)雜但如果我們把它拆解成幾個(gè)功能模塊就會(huì)清晰很多。整個(gè)系統(tǒng)的運(yùn)行邏輯可以概括為“感知-決策-執(zhí)行”。2.1 核心功能邏輯與方案選型首先我們需要一個(gè)“眼睛”來(lái)感知是否有手靠近。這里最常見(jiàn)的方案是使用紅外接近傳感器或超聲波測(cè)距傳感器。我優(yōu)先推薦紅外接近傳感器例如HC-SR501人體紅外感應(yīng)模塊因?yàn)樗鼉r(jià)格低廉、功耗相對(duì)較低且專門(mén)為檢測(cè)人體移動(dòng)設(shè)計(jì)誤觸發(fā)少。超聲波傳感器如HC-SR04雖然測(cè)距精確但功耗稍高且對(duì)于只是伸手這樣一個(gè)動(dòng)作紅外方案完全夠用且更穩(wěn)定。當(dāng)傳感器檢測(cè)到手部時(shí)需要有一個(gè)“大腦”來(lái)處理這個(gè)信號(hào)并發(fā)出控制指令。對(duì)于這個(gè)項(xiàng)目一塊Arduino Uno或Arduino Nano開(kāi)發(fā)板是絕佳的選擇。它易于編程、社區(qū)資源豐富、引腳夠用是創(chuàng)客項(xiàng)目的標(biāo)配。樹(shù)莓派雖然功能強(qiáng)大但用于控制一個(gè)繼電器和傳感器有點(diǎn)“殺雞用牛刀”且成本、功耗都更高。“大腦”做出“出液”決策后就需要“手”來(lái)執(zhí)行。洗手液瓶的泵頭通常是機(jī)械按壓的。我們的執(zhí)行機(jī)構(gòu)就是用一個(gè)微型直流減速電機(jī)配合一個(gè)簡(jiǎn)單的機(jī)械結(jié)構(gòu)比如凸輪去模擬“按壓”動(dòng)作或者更直接地使用一個(gè)微型電磁閥來(lái)控制液路。但考慮到洗手液通常比較粘稠電磁閥容易堵塞且需要額外的液路系統(tǒng)對(duì)于初學(xué)者不夠友好。因此我強(qiáng)烈推薦使用5V繼電器模塊直接控制一個(gè)現(xiàn)成的自動(dòng)洗手液機(jī)泵頭。這種泵頭是市面上很多自動(dòng)洗手液機(jī)的核心部件內(nèi)部集成了電機(jī)和機(jī)械結(jié)構(gòu)我們只需要給它提供電源通常是3-6V它就能完成一次完整的按壓出液動(dòng)作。這大大降低了機(jī)械設(shè)計(jì)的難度和失敗率。最后還需要一個(gè)“能量中心”。整個(gè)系統(tǒng)需要穩(wěn)定的5V電源。如果放在固定位置一個(gè)5V/2A的USB電源適配器加一根Micro USB線給Arduino供電是最穩(wěn)妥的。如果想做成便攜或電池供電可以考慮使用18650鋰電池搭配充放電保護(hù)板但需要注意續(xù)航問(wèn)題因?yàn)殡姍C(jī)工作瞬間電流較大。所以最終的方案鏈就是HC-SR501傳感器檢測(cè)到手 → Arduino板接收到高電平信號(hào) → Arduino控制繼電器模塊閉合 → 繼電器為自動(dòng)泵頭接通電源 → 泵頭工作一次噴出洗手液。2.2 為什么選擇“繼電器成品泵頭”方案這里重點(diǎn)解釋一下這個(gè)關(guān)鍵選擇。很多DIY教程會(huì)教你用舵機(jī)去撥動(dòng)原瓶的壓嘴或者用電機(jī)帶動(dòng)螺桿推動(dòng)活塞。這些方案固然有創(chuàng)意但存在幾個(gè)普遍問(wèn)題力度和行程控制難不同洗手液瓶的壓嘴阻力不同需要反復(fù)調(diào)試舵機(jī)角度或電機(jī)行程否則可能按不動(dòng)或按過(guò)量??煽啃圆顧C(jī)械結(jié)構(gòu)不夠穩(wěn)固長(zhǎng)期使用容易錯(cuò)位、磨損。通用性低換一個(gè)瓶子可能就需要重新調(diào)整。而直接購(gòu)買(mǎi)專用的自動(dòng)出液泵頭相當(dāng)于把最復(fù)雜的機(jī)械部分外包給了專業(yè)廠家。這種泵頭通常包括微型電機(jī)提供動(dòng)力。齒輪箱減速并增大扭矩。活塞機(jī)構(gòu)將旋轉(zhuǎn)運(yùn)動(dòng)轉(zhuǎn)化為直線運(yùn)動(dòng)推動(dòng)液體。吸管和噴嘴完整的液路。我們只需要提供電源它就能輸出一個(gè)標(biāo)準(zhǔn)化、定量通常是0.8-1.2ml的液體。它的接口通常是兩根導(dǎo)線正負(fù)極完美適配繼電器控制。雖然比單獨(dú)買(mǎi)一個(gè)傳感器或繼電器稍貴大約10-20元但它節(jié)省了你無(wú)數(shù)調(diào)試機(jī)械結(jié)構(gòu)的時(shí)間極大地提高了項(xiàng)目的成功率和成品的美觀度、可靠性。這是我認(rèn)為這個(gè)項(xiàng)目中最值得的投資。3. 核心元件解析與電路連接要點(diǎn)工欲善其事必先利其器。我們先來(lái)詳細(xì)認(rèn)識(shí)一下要用到的幾個(gè)核心元件以及如何將它們正確地連接起來(lái)。3.1 元件清單與功能說(shuō)明主控板Arduino Uno R3。這是大腦負(fù)責(zé)運(yùn)行我們的控制程序。選擇Uno是因?yàn)槠湟_有防呆設(shè)計(jì)方便插線且USB接口為B型連接穩(wěn)定。傳感器HC-SR501 人體紅外感應(yīng)模塊。它的工作電壓是5V-20V我們直接接Arduino的5V。它有三個(gè)引腳VCC電源、GND電源-、OUT信號(hào)輸出。當(dāng)檢測(cè)到人體移動(dòng)時(shí)OUT引腳會(huì)輸出高電平約3.3V持續(xù)一段時(shí)間可通過(guò)模塊上的電位器調(diào)節(jié)通常調(diào)至最小出液間隔。執(zhí)行器5V 高電平觸發(fā)單路繼電器模塊。注意是“高電平觸發(fā)”意思是當(dāng)控制端IN收到高電平信號(hào)時(shí)公共端COM和常開(kāi)端NO會(huì)接通。它也有三個(gè)引腳VCC、GND、IN。我們用它來(lái)控制泵頭電源的通斷。泵頭3-6V 直流自動(dòng)出液泵頭。這是核心執(zhí)行機(jī)構(gòu)。通常有紅黑兩根線紅色接電源正極黑色接負(fù)極。電源給Arduino和整個(gè)系統(tǒng)供電一個(gè)5V/2A的USB電源適配器。Arduino的Vin引腳或USB口接入均可。給泵頭供電由于泵頭工作電流可能超過(guò)Arduino引腳的最大輸出電流約500mA我們不能直接用Arduino的5V引腳驅(qū)動(dòng)泵頭。因此需要外部電源。這里一個(gè)巧妙的做法是使用一個(gè)5V雙路輸出電源適配器一路給Arduino供電另一路通過(guò)繼電器給泵頭供電?;蛘哂靡粋€(gè)輸出能力足夠的5V電源如2A接入Arduino的電源輸入口然后從Arduino的5V引腳取電給傳感器和繼電器而泵頭的電源則從電源適配器上直接分接由繼電器控制。切記泵頭電源絕不能直接接在Arduino的5V引腳上其他杜邦線若干公對(duì)公、母對(duì)母、一個(gè)容納所有元件的盒子可以是塑料收納盒需要開(kāi)孔、固定用的熱熔膠槍或螺絲。3.2 電路連接詳解與原理圖連接電路是項(xiàng)目的關(guān)鍵一步務(wù)必仔細(xì)。遵循“先信號(hào)后電源先低壓后高壓”的原則。這里我們所有部件都是5V屬于低壓相對(duì)安全。連接步驟給Arduino供電將5V USB電源適配器連接到Arduino的USB口或Vin引腳如果使用Vin請(qǐng)確保電源是7-12V直流但我們的5V適配器接USB口最方便。連接HC-SR501傳感器傳感器VCC → Arduino 5V引腳傳感器GND → Arduino GND引腳傳感器OUT → Arduino 數(shù)字引腳 2這里選擇引腳2你可以選其他數(shù)字引腳但代碼中要對(duì)應(yīng)修改連接繼電器模塊繼電器VCC → Arduino 5V引腳繼電器GND → Arduino GND引腳繼電器IN → Arduino 數(shù)字引腳 3連接泵頭與外部電源重點(diǎn)準(zhǔn)備一個(gè)5V電源可以是獨(dú)立的也可以是從給Arduino供電的電源上分接出的另一路。找到電源的正極和負(fù)極-。將電源的正極接到繼電器模塊的常開(kāi)端NO。將泵頭的紅色線接到繼電器模塊的公共端COM。將電源的負(fù)極-和泵頭的黑色線-直接連接在一起。這樣當(dāng)Arduino讓繼電器吸合時(shí)COM和NO接通電源的正極就通過(guò)繼電器流到了泵頭正極與已經(jīng)連通的負(fù)極構(gòu)成回路泵頭工作。重要提示在接通泵頭電源前務(wù)必用萬(wàn)用表確認(rèn)一下電源電壓是否為泵頭標(biāo)稱的3-6V范圍內(nèi)通常5V沒(méi)問(wèn)題。接反極性可能會(huì)損壞泵頭。電路邏輯簡(jiǎn)述傳感器檢測(cè)到手輸出高電平給Arduino引腳2。Arduino程序檢測(cè)到這個(gè)信號(hào)隨即向引腳3輸出一個(gè)高電平脈沖比如持續(xù)500毫秒。這個(gè)脈沖使繼電器吸合500毫秒在此期間外部電源通過(guò)繼電器給泵頭供電泵頭完成一次按壓出液動(dòng)作。之后繼電器斷開(kāi)等待下一次觸發(fā)。4. 程序設(shè)計(jì)、上傳與核心邏輯實(shí)現(xiàn)硬件連接好后就需要給Arduino“注入靈魂”——編寫(xiě)并上傳控制程序。代碼非常簡(jiǎn)單但里面有一些細(xì)節(jié)決定了用戶體驗(yàn)的好壞。4.1 代碼逐行解析與編寫(xiě)打開(kāi)Arduino IDE新建一個(gè)項(xiàng)目輸入以下代碼// 定義引腳常量提高代碼可讀性和可維護(hù)性 const int sensorPin 2; // 紅外傳感器信號(hào)線接在數(shù)字引腳2 const int relayPin 3; // 繼電器控制線接在數(shù)字引腳3 const int dispenseTime 500; // 繼電器吸合即出液時(shí)間單位毫秒 // 防誤觸發(fā)相關(guān)變量 unsigned long lastDispenseTime 0; // 記錄上一次出液的時(shí)間點(diǎn) const unsigned long cooldownPeriod 3000; // 冷卻時(shí)間3秒內(nèi)不重復(fù)觸發(fā) void setup() { // 初始化串口通信用于調(diào)試發(fā)布時(shí)可以注釋掉 Serial.begin(9600); Serial.println(Auto Hand Sanitizer Dispenser Initialized.); // 配置傳感器引腳為輸入模式讀取傳感器的信號(hào) pinMode(sensorPin, INPUT); // 配置繼電器引腳為輸出模式用于控制繼電器通斷 pinMode(relayPin, OUTPUT); digitalWrite(relayPin, LOW); // 初始狀態(tài)確保繼電器是斷開(kāi)狀態(tài) } void loop() { // 1. 讀取傳感器狀態(tài) int sensorState digitalRead(sensorPin); // 2. 打印傳感器狀態(tài)到串口監(jiān)視器調(diào)試用 Serial.print(Sensor State: ); Serial.println(sensorState); // 3. 判斷是否觸發(fā)出液條件 // 條件一傳感器檢測(cè)到高電平有手靠近 // 條件二距離上一次出液已經(jīng)過(guò)了至少cooldownPeriod毫秒防誤觸發(fā) if (sensorState HIGH (millis() - lastDispenseTime) cooldownPeriod) { Serial.println(Dispensing...); // 調(diào)試信息 // 4. 觸發(fā)出液打開(kāi)繼電器 digitalWrite(relayPin, HIGH); delay(dispenseTime); // 保持繼電器吸合一段時(shí)間讓泵頭完成一次完整動(dòng)作 // 5. 關(guān)閉繼電器 digitalWrite(relayPin, LOW); // 6. 更新上一次出液時(shí)間 lastDispenseTime millis(); Serial.println(Done.); // 調(diào)試信息 // 7. 一個(gè)小延時(shí)避免loop循環(huán)過(guò)快在冷卻期結(jié)束前重復(fù)判斷 delay(100); } // 如果沒(méi)有觸發(fā)則進(jìn)行一個(gè)很短的延時(shí)減少CPU占用 delay(50); }代碼關(guān)鍵點(diǎn)解讀防誤觸發(fā)機(jī)制 (cooldownPeriod)這是代碼中最重要的一環(huán)。HC-SR501傳感器在觸發(fā)后其輸出高電平會(huì)持續(xù)一段時(shí)間可調(diào)通常2-3秒。如果不加處理在這持續(xù)的幾秒內(nèi)loop()函數(shù)會(huì)飛速運(yùn)行數(shù)百次每次都滿足觸發(fā)條件導(dǎo)致繼電器瘋狂開(kāi)合泵頭連續(xù)工作可能一下噴出大量洗手液。我們通過(guò)記錄lastDispenseTime并與當(dāng)前時(shí)間millis()做比較強(qiáng)制兩次出液動(dòng)作之間必須間隔至少cooldownPeriod這里設(shè)為3000毫秒即3秒。這個(gè)時(shí)間應(yīng)略大于傳感器自身的輸出延時(shí)和泵頭單次工作周期之和。出液時(shí)間 (dispenseTime)500毫秒是一個(gè)經(jīng)驗(yàn)起始值。不同的泵頭其內(nèi)部電機(jī)完成一次按壓所需的時(shí)間不同。時(shí)間太短可能按壓不到位出液量少或不穩(wěn)定時(shí)間太長(zhǎng)電機(jī)可能被堵轉(zhuǎn)發(fā)熱甚至損壞。這個(gè)值需要根據(jù)你實(shí)際購(gòu)買(mǎi)的泵頭進(jìn)行測(cè)試和調(diào)整。測(cè)試時(shí)可以從300ms開(kāi)始嘗試逐步增加直到出液量穩(wěn)定且電機(jī)聲音順暢為止。調(diào)試信息Serial.print語(yǔ)句在初期調(diào)試時(shí)極其有用。你可以打開(kāi)Arduino IDE的“串口監(jiān)視器”工具-串口監(jiān)視器波特率設(shè)為9600實(shí)時(shí)查看傳感器狀態(tài)和程序運(yùn)行邏輯快速定位問(wèn)題是傳感器沒(méi)檢測(cè)到還是繼電器沒(méi)動(dòng)作。初始狀態(tài)在setup()中一定要將relayPin設(shè)置為L(zhǎng)OW確保設(shè)備上電時(shí)繼電器是斷開(kāi)的避免意外啟動(dòng)。4.2 程序上傳與初步測(cè)試用USB數(shù)據(jù)線將Arduino Uno連接到電腦。在Arduino IDE中選擇正確的板卡類型工具-板卡-Arduino Uno和端口工具-端口-對(duì)應(yīng)的COM口。點(diǎn)擊“上傳”按鈕向右的箭頭。上傳成功后先不要連接泵頭的電源。打開(kāi)串口監(jiān)視器。用手在HC-SR501傳感器前晃動(dòng)觀察串口監(jiān)視器。你應(yīng)該能看到“Sensor State: 1”和“Dispensing...”、“Done.”的打印信息。同時(shí)可以聽(tīng)到繼電器模塊發(fā)出“咔噠”一聲吸合的聲音。如果繼電器能正常響應(yīng)說(shuō)明傳感器和邏輯控制部分工作正常。此時(shí)再連接泵頭的外部電源進(jìn)行最終的出液測(cè)試。5. 機(jī)械組裝、外殼設(shè)計(jì)與用戶體驗(yàn)優(yōu)化電路和程序都調(diào)試成功后我們需要給它一個(gè)“家”并優(yōu)化細(xì)節(jié)讓它從一個(gè)實(shí)驗(yàn)臺(tái)上的原型變成一個(gè)可以日常使用的產(chǎn)品。5.1 外殼制作與元件布局一個(gè)合適的外殼能保護(hù)電路、固定元件、提升美觀度。你可以使用現(xiàn)成的塑料防水盒也可以使用3D打印定制外殼。布局要點(diǎn)傳感器開(kāi)孔HC-SR501傳感器前方有一個(gè)半球形的菲涅爾透鏡這是它的“眼睛”。必須將這個(gè)透鏡部分完全暴露在外前方不能有遮擋亞克力板也會(huì)大幅衰減信號(hào)。開(kāi)孔直徑略小于透鏡即可或者將傳感器模塊整體嵌在殼體外。泵頭安裝這是核心。你需要將泵頭牢固地固定在殼體內(nèi)。通常泵頭底部有螺絲孔或卡扣設(shè)計(jì)??梢杂寐萁z配合支架固定或者用扎帶、熱熔膠注意承重和耐久性。泵頭的吸管要能伸到外部的洗手液儲(chǔ)液瓶中噴嘴要伸出外殼一定距離確保液體能噴到手中而不是流到機(jī)器上。出液口與儲(chǔ)液瓶?jī)?chǔ)液瓶可以用原來(lái)的洗手液瓶剪掉泵頭部分將吸管插入即可。確保連接處密封良好防止漏液。出液口下方最好設(shè)計(jì)一個(gè)淺淺的導(dǎo)流槽防止偶爾滴落的液體污染機(jī)身。電源線與開(kāi)關(guān)建議在電源線上加一個(gè)船型開(kāi)關(guān)方便徹底斷電。所有電線在殼體內(nèi)要整理好用扎帶固定避免纏繞或接觸到運(yùn)動(dòng)部件如泵頭的電機(jī)部分。5.2 靈敏度調(diào)節(jié)與出液量校準(zhǔn)HC-SR501靈敏度與延時(shí)調(diào)節(jié)模塊上有兩個(gè)電位器。一個(gè)是靈敏度調(diào)節(jié)Sensitivity逆時(shí)針旋轉(zhuǎn)降低靈敏度檢測(cè)距離變短順時(shí)針提高。另一個(gè)是延時(shí)調(diào)節(jié)Time Delay即觸發(fā)后輸出高電平的持續(xù)時(shí)間。對(duì)于洗手液機(jī)我們希望靈敏度適中比如檢測(cè)距離15-25厘米避免過(guò)遠(yuǎn)誤觸發(fā)延時(shí)時(shí)間應(yīng)調(diào)至最短逆時(shí)針擰到底因?yàn)槲覀冇么a來(lái)控制防誤觸發(fā)傳感器自身的延時(shí)越短響應(yīng)越快。出液量校準(zhǔn)這需要通過(guò)調(diào)整代碼中的dispenseTime來(lái)實(shí)現(xiàn)。準(zhǔn)備一個(gè)小的量杯或已知重量的容器。將dispenseTime設(shè)為300ms運(yùn)行程序觸發(fā)10次收集液體計(jì)算單次平均出液量。如果出液量不足比如少于0.8ml逐步增加dispenseTime每次增加50ms重復(fù)測(cè)試。如果出液量過(guò)多則減少時(shí)間。目標(biāo)是單次出液量在1ml左右且泵頭電機(jī)聲音清脆無(wú)拖沓或堵轉(zhuǎn)聲。注意不要追求過(guò)大的出液量而設(shè)置過(guò)長(zhǎng)的通電時(shí)間這可能燒毀泵頭內(nèi)的小電機(jī)。5.3 進(jìn)階優(yōu)化與功能擴(kuò)展基礎(chǔ)功能實(shí)現(xiàn)后可以考慮以下優(yōu)化讓作品更完善狀態(tài)指示增加一個(gè)LED燈。傳感器檢測(cè)到時(shí)LED閃爍出液時(shí)LED常亮。讓用戶有明確的視覺(jué)反饋。液位檢測(cè)在儲(chǔ)液瓶?jī)?nèi)增加一個(gè)浮球開(kāi)關(guān)或紅外對(duì)管當(dāng)液體用完時(shí)讓另一個(gè)LED燈常亮或閃爍報(bào)警。電池供電與低功耗如果想做成完全無(wú)線的可以使用大容量18650電池兩節(jié)串聯(lián)約7.4V通過(guò)降壓模塊給系統(tǒng)供電并將代碼改為休眠模式。Arduino平時(shí)深度休眠僅由HC-SR501的報(bào)警中斷喚醒這樣可以極大延長(zhǎng)續(xù)航。外觀美化使用亞克力板、木紋貼紙、噴涂油漆等方式美化外殼讓它更好地融入使用環(huán)境。6. 常見(jiàn)問(wèn)題排查與實(shí)戰(zhàn)經(jīng)驗(yàn)分享在實(shí)際制作過(guò)程中你幾乎一定會(huì)遇到下面這些問(wèn)題。我把它們和解決方法整理出來(lái)希望能幫你節(jié)省大量時(shí)間。6.1 問(wèn)題速查表問(wèn)題現(xiàn)象可能原因排查步驟與解決方案?jìng)鞲衅鳠o(wú)反應(yīng)1. 電源未接通或接反。2. 傳感器損壞。3. 感應(yīng)透鏡被遮擋。4. 引腳接錯(cuò)。1. 檢查VCC和GND是否分別接到5V和GND用萬(wàn)用表測(cè)電壓。2. 觀察傳感器上通常有一個(gè)紅色指示燈檢測(cè)到移動(dòng)時(shí)會(huì)閃爍。不亮則可能損壞。3. 確保傳感器前方無(wú)任何遮擋特別是金屬外殼。4. 確認(rèn)OUT引腳接到了正確的Arduino數(shù)字引腳。繼電器不動(dòng)作1. 繼電器觸發(fā)方式不對(duì)。2. Arduino控制引腳輸出問(wèn)題。3. 繼電器損壞。1.確認(rèn)你買(mǎi)的是“高電平觸發(fā)”繼電器。用杜邦線將IN腳直接接到5V聽(tīng)是否有“咔噠”聲。有則繼電器是好的問(wèn)題在控制信號(hào)。2. 在代碼中手動(dòng)給控制引腳寫(xiě)HIGH用萬(wàn)用表測(cè)該引腳電壓是否為~5V。檢查代碼中引腳號(hào)是否正確。3. 更換繼電器模塊。泵頭不工作/出液量小1. 泵頭電源未接通或電壓不足。2. 繼電器未正確接通泵頭電路。3.dispenseTime時(shí)間太短。4. 吸管未插入液面下或漏氣。5. 泵頭內(nèi)部有氣泡或初次使用未 priming引液。1. 用萬(wàn)用表直接測(cè)量泵頭兩根線在觸發(fā)時(shí)的電壓確保在4.5V以上。2. 觸發(fā)時(shí)用萬(wàn)用表通斷檔測(cè)繼電器COM和NO是否導(dǎo)通。3.逐步增加dispenseTime這是最常見(jiàn)的原因。4. 確保吸管插到底接口密封。5.首次使用或更換液體后需要“引液”長(zhǎng)時(shí)間給泵頭通電如2-3秒讓電機(jī)持續(xù)運(yùn)轉(zhuǎn)將液體從瓶底抽上來(lái)直到噴嘴流出。泵頭連續(xù)工作不停1. 代碼中缺少防誤觸發(fā)機(jī)制。2.cooldownPeriod設(shè)置時(shí)間過(guò)短小于傳感器自身延時(shí)。3. 傳感器一直輸出高電平可能損壞或靈敏度調(diào)太高有持續(xù)熱源干擾。1.檢查代碼是否包含了lastDispenseTime和cooldownPeriod的邏輯。2. 將cooldownPeriod增加到5000ms以上試試。3. 用串口監(jiān)視器查看傳感器狀態(tài)是否一直為1。移開(kāi)可能的熱源如燈泡、暖氣或降低靈敏度。出液后滴漏1. 泵頭質(zhì)量不佳止回閥不嚴(yán)。2. 液體過(guò)于稀薄。3. 噴嘴有殘留。1. 更換質(zhì)量更好的泵頭。這是硬件問(wèn)題較難修復(fù)。2. 使用粘稠度適中的洗手液或凝膠。3. 在出液口下方加裝導(dǎo)流槽或海綿吸附墊。6.2 實(shí)操心得與避坑指南先分模塊調(diào)試再系統(tǒng)集成不要把所有東西焊死或粘死再測(cè)試。先單獨(dú)測(cè)試傳感器看串口輸出再單獨(dú)測(cè)試?yán)^電器用代碼控制最后接上泵頭不裝液體測(cè)試動(dòng)作。全部正常后再組裝固定。這能幫你快速定位問(wèn)題模塊。電源是萬(wàn)惡之源至少70%的奇怪問(wèn)題都和電源有關(guān)。確保你的5V電源適配器在帶載尤其是電機(jī)啟動(dòng)瞬間時(shí)電壓不會(huì)跌落到4.5V以下。電機(jī)啟動(dòng)電流大差的電源會(huì)瞬間被拉低電壓導(dǎo)致Arduino重啟或繼電器工作不穩(wěn)定。用一個(gè)舊的手機(jī)充電頭往往比某些劣質(zhì)的“USB供電模塊”更可靠。重視“引液”操作新的泵頭或更換液體后管道里是空氣泵頭空轉(zhuǎn)是無(wú)法將液體吸上來(lái)的。你需要讓泵頭持續(xù)工作幾秒鐘直到噴嘴有液體連續(xù)流出??梢栽诖a里臨時(shí)寫(xiě)一個(gè)長(zhǎng)延時(shí)或者直接短接繼電器輸出端給泵頭長(zhǎng)時(shí)間通電來(lái)完成這一步。密封密封密封所有液路連接處特別是吸管和泵頭進(jìn)口、泵頭和儲(chǔ)液瓶口的連接處必須密封良好。一點(diǎn)點(diǎn)漏氣就會(huì)導(dǎo)致吸不上液或出液無(wú)力??梢允褂煤线m的硅膠軟管并加上卡箍或扎帶緊固。為維護(hù)留余地設(shè)計(jì)外殼時(shí)考慮如何方便地添加洗手液、清潔噴嘴、更換電池。不要用死膠把所有東西都封在里面。使用螺絲固定蓋板或者設(shè)計(jì)可滑開(kāi)的卡扣會(huì)讓你的作品壽命更長(zhǎng)。這個(gè)項(xiàng)目從想法到實(shí)現(xiàn)最有成就感的那一刻不是代碼第一次跑通而是當(dāng)你把手伸過(guò)去機(jī)器“嗡”的一聲精準(zhǔn)地吐出一團(tuán)凝膠到你手心的時(shí)候。它不僅僅是一個(gè)簡(jiǎn)單的電子制作更是一個(gè)切實(shí)解決微小痛點(diǎn)的產(chǎn)品思維實(shí)踐。你可以根據(jù)這個(gè)基礎(chǔ)框架衍生出很多變體比如非接觸式的消毒噴霧機(jī)、自動(dòng)給皂器等等。