警告?。?本項(xiàng)目中討論的電路圖僅用于教育目的。請(qǐng)注意,使用 220V 交流電源電壓需要采取極端的預(yù)防措施,并應(yīng)遵循安全程序。電路運(yùn)行時(shí),請(qǐng)勿觸摸任何元件或電線。
就像我們?cè)谠S多基于 Arduino 的家庭自動(dòng)化項(xiàng)目中所做的那樣,使用開(kāi)關(guān)或使用某種控制機(jī)制很容易打開(kāi)或關(guān)閉任何家用電器。但是有很多應(yīng)用需要我們部分控制交流電源,例如控制風(fēng)扇的速度或燈的強(qiáng)度。在這種情況下,使用了PWM 技術(shù),所以在這里我們將學(xué)習(xí)如何使用 Arduino 生成的 PWM 來(lái)控制 Arduino 的交流風(fēng)扇速度。
在這個(gè)項(xiàng)目中,我們將演示使用 TRIAC 的 Arduino 交流風(fēng)扇速度控制。這里使用交流信號(hào)的相位控制方法來(lái)控制交流風(fēng)扇的速度,使用 Arduino 生成的 PWM 信號(hào)。在之前的教程中,我們使用 PWM 控制直流風(fēng)扇的速度。
所需組件
Arduino UNO
4N25(過(guò)零檢測(cè)器)
10k 電位器
MOC3021 0pto耦合器
(0-9)V、500 mA 降壓變壓器
BT136 可控硅
230 VAC 軸流交流風(fēng)扇
連接線
使用 Arduino 進(jìn)行交流風(fēng)扇控制
工作可以分為四個(gè)不同的部分。它們?nèi)缦?/p>
1. 過(guò)零檢測(cè)器
2. 相位角控制電路
3. 控制風(fēng)扇轉(zhuǎn)速量的電位器
4. PWM 信號(hào)發(fā)生電路
1. 過(guò)零檢測(cè)器
我們家中的交流電源是 220v AC RMS,50 HZ。該交流信號(hào)本質(zhì)上是交替的,并且會(huì)周期性地改變其極性。在每個(gè)周期的前半部分,它沿一個(gè)方向流動(dòng),達(dá)到峰值電壓,然后下降到零。然后在下一個(gè)半周期,它以交替方向(負(fù))流動(dòng)到峰值電壓,然后再次變?yōu)榱?。為了控?AC Fan 的速度,需要對(duì)兩個(gè)半周期的峰值電壓進(jìn)行斬波或控制。為此,我們必須檢測(cè)要控制/斬波信號(hào)的零點(diǎn)。電壓曲線上電壓改變方向的這一點(diǎn)稱為過(guò)零電壓。
下圖所示的電路是用于獲取過(guò)零點(diǎn)的過(guò)零檢測(cè)器電路。首先,使用降壓變壓器將 220V AC 電壓降為 9V AC ,然后在其引腳 1 和 2 處饋入 4N25 光耦合器。4N25 光耦合器具有內(nèi)置 LED,引腳 1 為陽(yáng)極,引腳 2 為陰極。因此,根據(jù)下面的電路,當(dāng)交流波接近零交叉點(diǎn)時(shí),4N25 的內(nèi)置 LED 將關(guān)閉,因此,4N25 的輸出晶體管也將關(guān)閉,輸出脈沖引腳將被拉到5V。同樣,當(dāng)信號(hào)逐漸增加到峰值時(shí)點(diǎn),然后 LED 打開(kāi),晶體管也將打開(kāi),接地引腳連接到輸出引腳,這使得該引腳為 0V。使用此脈沖,可以使用 Arduino 檢測(cè)過(guò)零點(diǎn)。
2. 相位角控制電路
檢測(cè)到過(guò)零點(diǎn)后,現(xiàn)在我們必須控制電源開(kāi)啟和關(guān)閉的時(shí)間量。該P(yáng)WM 信號(hào)將決定輸出到交流電機(jī)的電壓量,進(jìn)而控制電機(jī)的速度。這里使用了BT136 TRIAC,它控制交流電壓,因?yàn)樗怯糜诳刂平涣麟妷盒盘?hào)的電力電子開(kāi)關(guān)。
TRIAC是一種三端交流開(kāi)關(guān),可由其柵極端的低能量信號(hào)觸發(fā)。在 SCR 中,它僅在一個(gè)方向上導(dǎo)通,但在 TRIAC 的情況下,可以在兩個(gè)方向上控制功率。要了解有關(guān)TRIAC和SCR的更多信息,請(qǐng)閱讀我們之前的文章。
如上圖所示,通過(guò)向 TRIAC 施加一個(gè)小的柵極脈沖信號(hào)以 90 度的觸發(fā)角觸發(fā) TRIAC。時(shí)間“t1”是根據(jù)調(diào)光要求給出的延遲時(shí)間。例如,在這種情況下,觸發(fā)角為 90%,因此功率輸出也將減半,因此燈也會(huì)以一半的強(qiáng)度發(fā)光。
我們知道這里交流信號(hào)的頻率是 50 Hz。所以時(shí)間段將是 1/f,即 20ms。對(duì)于半個(gè)周期,這將是 10 毫秒或 10,000 微秒。因此,為了控制交流燈的功率,“t1”的范圍可以在 0-10000 微秒之間變化。
光耦:
光耦也稱為光隔離器。它用于保持兩個(gè)電路(如直流和交流信號(hào))之間的隔離。基本上,它由發(fā)射紅外光的 LED 和檢測(cè)紅外光的光電傳感器組成。這里使用 MOC3021 光耦合器從微控制器信號(hào)(直流信號(hào))控制交流風(fēng)扇。
TRIAC和光耦連接圖:
3. 控制風(fēng)扇轉(zhuǎn)速的電位器
這里使用電位器來(lái)改變交流風(fēng)扇的速度。我們知道電位器是一個(gè)三端器件,它充當(dāng)分壓器并提供可變電壓輸出。這個(gè)可變的模擬輸出電壓在 Arduino 模擬輸入端給出,用于設(shè)置交流風(fēng)扇的速度值。
4. PWM信號(hào)發(fā)生單元
在最后一步中,根據(jù)速度要求向 TRIAC 提供PWM 脈沖,從而改變 AC 信號(hào)的 ON/OFF 時(shí)序并提供可變輸出來(lái)控制風(fēng)扇速度。在這里,Arduino 用于生成 PWM 脈沖,該脈沖從電位器獲取輸入,并將 PWM 信號(hào)輸出到 TRIAC 和光耦合器電路,進(jìn)一步以所需的速度驅(qū)動(dòng)交流風(fēng)扇。
電路原理圖
這個(gè)基于 Arduino 的 230v 風(fēng)扇速度控制電路的電路圖如下所示:
注意:我在面包板上展示了完整的電路,只是為了便于理解。您不應(yīng)該直接在面包板上使用 220V 交流電源,我使用虛線板進(jìn)行連接,如下圖所示
為 Arduino 編程以控制交流風(fēng)扇速度
硬件連接后,我們需要為 Arduino 編寫代碼,它會(huì)產(chǎn)生一個(gè)PWM 信號(hào),使用電位器輸入來(lái)控制 AC 信號(hào)的 ON/OFF 時(shí)序。我們以前在許多項(xiàng)目中使用過(guò) PWM 技術(shù)。
這個(gè)Arduino AC風(fēng)扇速度控制項(xiàng)目的完整代碼在這個(gè)項(xiàng)目的底部給出。下面給出代碼的逐步解釋。
第一步,聲明所有需要的變量,這些變量將在整個(gè)代碼中使用。這里 BT136 TRIAC 連接到 Arduino 的引腳 6。并且聲明了變量speed_val來(lái)存儲(chǔ)速度步長(zhǎng)的值。
int TRIAC = 6; int speed_val =0;
接下來(lái),在setup函數(shù)中,將TRIAC引腳聲明為輸出,因?yàn)?PWM 輸出將通過(guò)該引腳生成。然后,配置一個(gè)中斷來(lái)檢測(cè)過(guò)零。這里我們使用了一個(gè)名為attachInterrupt的函數(shù),它將 Arduino 的數(shù)字引腳 3 配置為外部中斷,并在其引腳檢測(cè)到任何中斷時(shí)調(diào)用名為zero_crossing的函數(shù)。
無(wú)效設(shè)置() { pinMode(燈,輸出); attachInterrupt(digitalPinToInterrupt(3), zero_crossing, CHANGE); }
在無(wú)限循環(huán)中,從連接在 A0 的電位器讀取模擬值,并將其映射到 (10-49) 的值范圍。
要找出這個(gè)范圍,我們必須做一個(gè)小計(jì)算。早些時(shí)候有人說(shuō),每半個(gè)周期相當(dāng)于 10,000 微秒。所以這里的調(diào)光將被控制在 50 步,這是一個(gè)任意值,可以改變。這里的最小步數(shù)取為 10,而不是零,因?yàn)?0-9 步給出的功率輸出大致相同,最大步數(shù)取為 49,因?yàn)閷?shí)際上不建議采用上限(在這種情況下為 50)。
那么每一步的時(shí)間可以計(jì)算為 10000/50= 200 微秒。這將在代碼的下一部分中使用。
無(wú)效循環(huán)() { int pot=analogRead(A0); int data1 = map(pot, 0, 1023,10,49); speed_val=data1; }
最后一步,配置中斷驅(qū)動(dòng)函數(shù)zero_crossing。在這里,可以通過(guò)將單個(gè)步進(jìn)時(shí)間乘以 no 來(lái)計(jì)算調(diào)光時(shí)間。的步驟。然后在此延遲時(shí)間之后,可以使用 10 微秒的小高脈沖觸發(fā) TRIAC,這足以打開(kāi) TRIAC。
無(wú)效過(guò)零() { int 斬波時(shí)間 = (200*speed_val); 延遲微秒(chop_time); 數(shù)字寫入(TRIAC,高); 延遲微秒(10); 數(shù)字寫入(TRIAC,低); } 下面給出了使用 Arduino 和 PWM進(jìn)行交流風(fēng)扇控制的完整代碼
int TRIAC = 6;
int speed_val=0;
無(wú)效設(shè)置()
{
pinMode(TRIAC,輸出);
attachInterrupt(digitalPinToInterrupt(3), zero_crossing, CHANGE);
}
void zero_crossing()
{
int Chop_time = (200*speed_val);
延遲微秒(chop_time);
數(shù)字寫入(TRIAC,高);
延遲微秒(10);
數(shù)字寫入(TRIAC,低);
}
無(wú)效循環(huán)()
{
int pot=analogRead(A0);
int data1 = map(pot, 0, 1023,10,40);
speed_val=data1;
}
-
PWM
+關(guān)注
關(guān)注
116文章
5507瀏覽量
219354 -
TRIAC
+關(guān)注
關(guān)注
0文章
26瀏覽量
24127 -
風(fēng)扇控制
+關(guān)注
關(guān)注
0文章
8瀏覽量
6939 -
Arduino
+關(guān)注
關(guān)注
190文章
6498瀏覽量
192121
發(fā)布評(píng)論請(qǐng)先 登錄
如何使用PWM技術(shù)控制LED的亮度或直流風(fēng)扇的速度

溫控直流風(fēng)扇電路圖分享

Arduino應(yīng)用之PWM控制直流電機(jī)風(fēng)扇
基于DSP的小型直流風(fēng)扇自動(dòng)化測(cè)試系統(tǒng)
采用FanSense TM技術(shù)的PWM風(fēng)扇速度控制器
抗電磁干擾的PWM風(fēng)扇控制器原理及應(yīng)用

pwm風(fēng)扇,使用PWM控制直流風(fēng)扇

風(fēng)扇速度控制系統(tǒng)中的噪音和如何利用PWM抑制它的方法

直流風(fēng)扇和交流風(fēng)扇的基本組成結(jié)構(gòu)?
抑制PWM風(fēng)扇速度控制系統(tǒng)中的噪音

基于Arduino制作直流風(fēng)扇速度控制器
用Arduino和紅外遙控器制作直流風(fēng)扇速度控制器

使用Arduino和晶閘管(TRIAC)控制交流風(fēng)扇的速度

風(fēng)扇控制的進(jìn)步:考慮風(fēng)扇速度調(diào)節(jié)

評(píng)論