這是一個(gè)用于 3D 打印干燥箱的除濕器,無(wú)需干燥劑即可保持燈絲干燥。
概述
構(gòu)建此項(xiàng)目后,你就可以給你的 3D 打印機(jī)干燥箱配備一個(gè)功能齊全的除濕機(jī),以保持您的燈絲干燥并隨時(shí)以備使用了。除濕機(jī)使用 Peltier 設(shè)備工作,該設(shè)備將熱量從設(shè)備的一側(cè)傳遞到另一側(cè),從而產(chǎn)生冷熱側(cè)。設(shè)備的冷側(cè)會(huì)產(chǎn)生冷凝水,從而去除干燥箱內(nèi)空氣中的水分。Peltier 夾在兩個(gè)散熱器之間,風(fēng)扇在其中吹過(guò)。風(fēng)扇為 Peltier 的熱側(cè)提供冷卻,同時(shí)還吹走冷散熱器翅片上積聚的冷凝水。
除濕機(jī)由兩個(gè) Particle Photon 控制。一個(gè) Photon 控制 Peltier 設(shè)備,而另一個(gè)讀取干燥箱內(nèi)的濕度和溫度。兩個(gè) Photon 相互通信以確定 Peltier 是否應(yīng)該打開(kāi)或關(guān)閉以及功率級(jí)別是否應(yīng)該設(shè)置為一或二(低或高)。當(dāng)濕度水平達(dá)到大約 30% 時(shí),高功率模式啟動(dòng)。在這一點(diǎn)上,只有通過(guò)低于冰點(diǎn)才能從空氣中去除更多的水分。可以使用預(yù)定義的變量在代碼頂部設(shè)置所需的目標(biāo)濕度和其他參數(shù)。
構(gòu)建
首先,將原來(lái)的筒形插頭從電源上斷開(kāi),并焊接在新的大電流筒形插頭上。
使用導(dǎo)熱膏和夾具支架組裝兩個(gè)散熱器和 Peltier 模塊。使用大型散熱器隨附的緊固件連接夾具支架。如圖所示,確保將大型散熱器的散熱片定位在夾具的長(zhǎng)方向上。否則散熱器將無(wú)法正確裝入外殼。
注意:散熱器隨附的彈簧將不用于此項(xiàng)目。
參考電路原理圖來(lái)組裝電子設(shè)備。如果需要,連接器可用于電路的低電流部分。
注意:在將這兩個(gè)組件連接到電路的其余部分之前,將搖臂開(kāi)關(guān)和大電流筒形插孔插入電子外殼盒。還要確保將 12V 電壓傳輸?shù)綗艚z盒中的光子的電線足夠長(zhǎng),以便通過(guò)出口空氣管進(jìn)入燈絲盒。
將 Peltier 組件放入其外殼內(nèi),并用四個(gè) M3x16 螺釘固定。
注意:只擰緊螺絲,直到它們緊貼為止。
使用適合您選擇的風(fēng)扇的緊固件將 90 毫米風(fēng)扇固定到頂部管道連接器上。
注意:調(diào)整風(fēng)扇方向,使空氣通過(guò)頂部管道連接器的小端吸入。
將頂部管道連接器和電子外殼連接到 Peltier 組件外殼,同時(shí)引導(dǎo)電線穿過(guò)外殼的切口。將四個(gè) M3x12 螺釘用于頂部管道連接器,四個(gè) M3x6 螺釘用于電子外殼(警告:一旦感覺(jué)到任何阻力,請(qǐng)停止擰緊電子外殼的螺釘,否則您會(huì)剝?nèi)ヂ菁y。這很容易做到,因?yàn)槁葆斉c塑料的接合只有 3 毫米。)
注意:對(duì)于某些電線尺寸,可能需要擴(kuò)大切口。
使用四個(gè) M3x10 螺釘將側(cè)管連接器連接到 Peltier 組件外殼。(警告:只有在第一次感覺(jué)到阻力后才稍微擰緊螺絲,否則你會(huì)剝掉螺紋。這里只有 6 毫米的嚙合。)
使用 2-1/2“ PVC 管或等效外徑的管子將空氣進(jìn)出除濕機(jī)。可以使用 M3 螺釘和螺母將夾子擰緊到管子上。
將軟管倒鉤擰入靠近 Pelter 外殼組件底部的排水口。將聚氨酯軟管連接到所需位置。注意:可能需要強(qiáng)力膠或適當(dāng)?shù)拿芊鈩﹣?lái)防止軟管倒鉤螺紋周圍的泄漏。如果軟管倒鉤不能成功地?cái)Q入印刷部件,則可以鼓勵(lì)聚乙烯軟管在沒(méi)有倒鉤的情況下裝入孔中,并用強(qiáng)力膠或其他方法固定到位。
peltier 控制代碼:
/* Program description*/
// User Configuration
const float Power_Level_1 = 90; //Low power level in percent supplied to the Peltier module that will not cause the dehumidifier to ice up
const float Power_Level_2 = 100; //Supplies maximum power to the Peltier module but may cause the dehumidifier to ice up
const float Fan_Speed_1 = 40; //Fan speed in percent for power level 1 above
const float Fan_Speed_2 = 60; //Fan speed in percent for power level 2 avove
const char Peltier_MOSFET_Pin = D0; //Pin that will control the Peltier MOSFET (Must be digital PWM)
const char Fan_MOSFET_Pin = D2; //Pin that will control the fan MOSFET (Must be digital PWM if anything other than 100 is used for the fan speeds)
const int Fan_PWM_Frequency = 20; //Frequency of the PWM signal that will be sent to the Fan
const int Peltier_PWM_Frequency = 500; //Frequency of the PWM signal that will be sent to the Peltier module
// Program Variables
bool request_Peltier_on = false;
float Peltier_power_level = (Power_Level_1/100)*255;
int Peltier_current_state = 0;
float Peltier_current_power_level = Peltier_power_level;
float fan_speed = (Fan_Speed_1/100)*255;
unsigned long last_millis = 0;
int update_interval = 60000;
// Recieved Data Handlers
void on_off_request_handler(String event, String data) {
request_Peltier_on = data.toInt();
Particle.publish("Gunner_P/MEGR_3171/Dehumidifier_Filament_Box/Peltier_state", String(request_Peltier_on), 10);
}
void Peltier_power_handler(String event, String data) {
if (data.toInt() == 1) {
Peltier_power_level = (Power_Level_1/100)*255;
fan_speed = (Fan_Speed_1/100)*255;
Particle.publish("Gunner_P/MEGR_3171/Dehumidifier_Filament_Box/Peltier_power", String(1), 10);
}
if (data.toInt() == 2) {
Peltier_power_level = (Power_Level_2/100)*255;
fan_speed = (Fan_Speed_2/100)*255;
Particle.publish("Gunner_P/MEGR_3171/Dehumidifier_Filament_Box/Peltier_power", String(2), 10);
}
}
// Dehumidifier Manager
void dehumidifier_manager() {
if (request_Peltier_on && Peltier_current_state == 0) {
analogWrite(Peltier_MOSFET_Pin, Peltier_power_level, Peltier_PWM_Frequency);
Peltier_current_power_level = Peltier_power_level;
analogWrite(Fan_MOSFET_Pin, 255, Fan_PWM_Frequency);
delay(200);
analogWrite(Fan_MOSFET_Pin, fan_speed, Fan_PWM_Frequency);
Peltier_current_state = 1;
}
if (!request_Peltier_on && Peltier_current_state == 1) {
analogWrite(Peltier_MOSFET_Pin, 0);
analogWrite(Fan_MOSFET_Pin, 0);
Peltier_current_state = 0;
}
if (Peltier_current_state == 1 && Peltier_current_power_level != Peltier_power_level) {
analogWrite(Peltier_MOSFET_Pin, Peltier_power_level, Peltier_PWM_Frequency);
Peltier_current_power_level = Peltier_power_level;
analogWrite(Fan_MOSFET_Pin, 255, Fan_PWM_Frequency);
delay(200);
analogWrite(Fan_MOSFET_Pin, fan_speed, Fan_PWM_Frequency);
}
}
// Setup
void setup() {
pinMode(Peltier_MOSFET_Pin, OUTPUT);
pinMode(Fan_MOSFET_Pin, OUTPUT);
Particle.subscribe("Elijah_C_MEGR_3171_Dehumidifier_Filament_Box_Project", on_off_request_handler);
Particle.subscribe("Elijah_C_MEGR_3171_Peltier_Power_Level_Dehumidifier_Box", Peltier_power_handler);
Particle.publish("Gunner_P/MEGR_3171/Dehumidifier_Filament_Box/Peltier_state", String(request_Peltier_on), 10);
}
// Loop
void loop() {
if (millis() - last_millis >= update_interval); {
dehumidifier_manager();
last_millis = millis();
}
}
ThingSpeak 記錄干燥箱的實(shí)時(shí)濕度和溫度以及除濕機(jī)的電源狀態(tài)。可隨時(shí)隨地查看除濕機(jī)狀態(tài),確保系統(tǒng)正常運(yùn)行。注意:上面顯示的圖表包含每 30 秒報(bào)告一次的數(shù)據(jù),而不是代碼中設(shè)置的 5 分鐘默認(rèn)值。
-
除濕機(jī)
+關(guān)注
關(guān)注
0文章
24瀏覽量
9206 -
3D打印
+關(guān)注
關(guān)注
26文章
3552瀏覽量
109246 -
干燥箱
+關(guān)注
關(guān)注
0文章
42瀏覽量
4592
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論