警告?。?本項目中討論的電路圖僅用于教育目的。請注意,使用 220V 交流電源電壓需要采取極端的預(yù)防措施,并應(yīng)遵循安全程序。電路運行時,請勿觸摸任何元件或電線。
就像我們在許多基于 Arduino 的家庭自動化項目中所做的那樣,使用開關(guān)或使用某種控制機制很容易打開或關(guān)閉任何家用電器。但是有很多應(yīng)用需要我們部分控制交流電源,例如控制風(fēng)扇的速度或燈的強度。在這種情況下,使用了PWM 技術(shù),所以在這里我們將學(xué)習(xí)如何使用 Arduino 生成的 PWM 來控制 Arduino 的交流風(fēng)扇速度。
在這個項目中,我們將演示使用 TRIAC 的 Arduino 交流風(fēng)扇速度控制。這里使用交流信號的相位控制方法來控制交流風(fēng)扇的速度,使用 Arduino 生成的 PWM 信號。在之前的教程中,我們使用 PWM 控制直流風(fēng)扇的速度。
所需組件
Arduino UNO
4N25(過零檢測器)
10k 電位器
MOC3021 0pto耦合器
(0-9)V、500 mA 降壓變壓器
BT136 可控硅
230 VAC 軸流交流風(fēng)扇
連接線
使用 Arduino 進(jìn)行交流風(fēng)扇控制
工作可以分為四個不同的部分。它們?nèi)缦?/p>
1. 過零檢測器
2. 相位角控制電路
3. 控制風(fēng)扇轉(zhuǎn)速量的電位器
4. PWM 信號發(fā)生電路
1. 過零檢測器
我們家中的交流電源是 220v AC RMS,50 HZ。該交流信號本質(zhì)上是交替的,并且會周期性地改變其極性。在每個周期的前半部分,它沿一個方向流動,達(dá)到峰值電壓,然后下降到零。然后在下一個半周期,它以交替方向(負(fù))流動到峰值電壓,然后再次變?yōu)榱?。為了控?AC Fan 的速度,需要對兩個半周期的峰值電壓進(jìn)行斬波或控制。為此,我們必須檢測要控制/斬波信號的零點。電壓曲線上電壓改變方向的這一點稱為過零電壓。
下圖所示的電路是用于獲取過零點的過零檢測器電路。首先,使用降壓變壓器將 220V AC 電壓降為 9V AC ,然后在其引腳 1 和 2 處饋入 4N25 光耦合器。4N25 光耦合器具有內(nèi)置 LED,引腳 1 為陽極,引腳 2 為陰極。因此,根據(jù)下面的電路,當(dāng)交流波接近零交叉點時,4N25 的內(nèi)置 LED 將關(guān)閉,因此,4N25 的輸出晶體管也將關(guān)閉,輸出脈沖引腳將被拉到5V。同樣,當(dāng)信號逐漸增加到峰值時點,然后 LED 打開,晶體管也將打開,接地引腳連接到輸出引腳,這使得該引腳為 0V。使用此脈沖,可以使用 Arduino 檢測過零點。

2. 相位角控制電路
檢測到過零點后,現(xiàn)在我們必須控制電源開啟和關(guān)閉的時間量。該PWM 信號將決定輸出到交流電機的電壓量,進(jìn)而控制電機的速度。這里使用了BT136 TRIAC,它控制交流電壓,因為它是用于控制交流電壓信號的電力電子開關(guān)。
TRIAC是一種三端交流開關(guān),可由其柵極端的低能量信號觸發(fā)。在 SCR 中,它僅在一個方向上導(dǎo)通,但在 TRIAC 的情況下,可以在兩個方向上控制功率。要了解有關(guān)TRIAC和SCR的更多信息,請閱讀我們之前的文章。

如上圖所示,通過向 TRIAC 施加一個小的柵極脈沖信號以 90 度的觸發(fā)角觸發(fā) TRIAC。時間“t1”是根據(jù)調(diào)光要求給出的延遲時間。例如,在這種情況下,觸發(fā)角為 90%,因此功率輸出也將減半,因此燈也會以一半的強度發(fā)光。
我們知道這里交流信號的頻率是 50 Hz。所以時間段將是 1/f,即 20ms。對于半個周期,這將是 10 毫秒或 10,000 微秒。因此,為了控制交流燈的功率,“t1”的范圍可以在 0-10000 微秒之間變化。
光耦:
光耦也稱為光隔離器。它用于保持兩個電路(如直流和交流信號)之間的隔離?;旧?,它由發(fā)射紅外光的 LED 和檢測紅外光的光電傳感器組成。這里使用 MOC3021 光耦合器從微控制器信號(直流信號)控制交流風(fēng)扇。
TRIAC和光耦連接圖:

3. 控制風(fēng)扇轉(zhuǎn)速的電位器

這里使用電位器來改變交流風(fēng)扇的速度。我們知道電位器是一個三端器件,它充當(dāng)分壓器并提供可變電壓輸出。這個可變的模擬輸出電壓在 Arduino 模擬輸入端給出,用于設(shè)置交流風(fēng)扇的速度值。
4. PWM信號發(fā)生單元
在最后一步中,根據(jù)速度要求向 TRIAC 提供PWM 脈沖,從而改變 AC 信號的 ON/OFF 時序并提供可變輸出來控制風(fēng)扇速度。在這里,Arduino 用于生成 PWM 脈沖,該脈沖從電位器獲取輸入,并將 PWM 信號輸出到 TRIAC 和光耦合器電路,進(jìn)一步以所需的速度驅(qū)動交流風(fēng)扇。
電路原理圖
這個基于 Arduino 的 230v 風(fēng)扇速度控制電路的電路圖如下所示:

注意:我在面包板上展示了完整的電路,只是為了便于理解。您不應(yīng)該直接在面包板上使用 220V 交流電源,我使用虛線板進(jìn)行連接,如下圖所示

為 Arduino 編程以控制交流風(fēng)扇速度
硬件連接后,我們需要為 Arduino 編寫代碼,它會產(chǎn)生一個PWM 信號,使用電位器輸入來控制 AC 信號的 ON/OFF 時序。我們以前在許多項目中使用過 PWM 技術(shù)。
這個Arduino AC風(fēng)扇速度控制項目的完整代碼在這個項目的底部給出。下面給出代碼的逐步解釋。
第一步,聲明所有需要的變量,這些變量將在整個代碼中使用。這里 BT136 TRIAC 連接到 Arduino 的引腳 6。并且聲明了變量speed_val來存儲速度步長的值。
int TRIAC = 6; int speed_val =0;
接下來,在setup函數(shù)中,將TRIAC引腳聲明為輸出,因為 PWM 輸出將通過該引腳生成。然后,配置一個中斷來檢測過零。這里我們使用了一個名為attachInterrupt的函數(shù),它將 Arduino 的數(shù)字引腳 3 配置為外部中斷,并在其引腳檢測到任何中斷時調(diào)用名為zero_crossing的函數(shù)。
無效設(shè)置()
{
pinMode(燈,輸出);
attachInterrupt(digitalPinToInterrupt(3), zero_crossing, CHANGE);
}
在無限循環(huán)中,從連接在 A0 的電位器讀取模擬值,并將其映射到 (10-49) 的值范圍。
要找出這個范圍,我們必須做一個小計算。早些時候有人說,每半個周期相當(dāng)于 10,000 微秒。所以這里的調(diào)光將被控制在 50 步,這是一個任意值,可以改變。這里的最小步數(shù)取為 10,而不是零,因為 0-9 步給出的功率輸出大致相同,最大步數(shù)取為 49,因為實際上不建議采用上限(在這種情況下為 50)。
那么每一步的時間可以計算為 10000/50= 200 微秒。這將在代碼的下一部分中使用。
無效循環(huán)()
{
int pot=analogRead(A0);
int data1 = map(pot, 0, 1023,10,49);
speed_val=data1;
}
最后一步,配置中斷驅(qū)動函數(shù)zero_crossing。在這里,可以通過將單個步進(jìn)時間乘以 no 來計算調(diào)光時間。的步驟。然后在此延遲時間之后,可以使用 10 微秒的小高脈沖觸發(fā) TRIAC,這足以打開 TRIAC。
無效過零()
{
int 斬波時間 = (200*speed_val);
延遲微秒(chop_time);
數(shù)字寫入(TRIAC,高);
延遲微秒(10);
數(shù)字寫入(TRIAC,低);
}
下面給出了使用 Arduino 和 PWM進(jìn)行交流風(fēng)扇控制的完整代碼
int TRIAC = 6;
int speed_val=0;
無效設(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,低);
}
無效循環(huán)()
{
int pot=analogRead(A0);
int data1 = map(pot, 0, 1023,10,40);
speed_val=data1;
}
-
PWM
+關(guān)注
關(guān)注
116文章
5869瀏覽量
225595 -
TRIAC
+關(guān)注
關(guān)注
0文章
27瀏覽量
24435 -
風(fēng)扇控制
+關(guān)注
關(guān)注
0文章
19瀏覽量
7008 -
Arduino
+關(guān)注
關(guān)注
190文章
6526瀏覽量
196911
發(fā)布評論請先 登錄
如何使用PWM技術(shù)控制LED的亮度或直流風(fēng)扇的速度
溫控直流風(fēng)扇電路圖分享
Arduino應(yīng)用之PWM控制直流電機風(fēng)扇
基于DSP的小型直流風(fēng)扇自動化測試系統(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é)
如何使用Arduino生成的PWM來控制交流風(fēng)扇的速度
評論