- Wymagane składniki
- Działanie sterowania wentylatorem AC za pomocą Arduino
- 1. Detektor przejścia przez zero
- 2. Obwód sterowania kątem fazowym
- 3. Potencjometr do sterowania prędkością wentylatora
- 4. Jednostka generowania sygnału PWM
- Schemat obwodu
- Programowanie Arduino do sterowania prędkością wentylatora AC
OSTRZEŻENIE!! Schemat obwodu omówiony w tym projekcie służy wyłącznie do celów edukacyjnych. Należy pamiętać, że praca z napięciem sieciowym 220 V AC wymaga szczególnych środków ostrożności i przestrzegania procedur bezpieczeństwa. Nie dotykaj żadnych elementów ani przewodów, gdy obwód jest włączony.
Każde urządzenie domowe można łatwo włączyć lub wyłączyć za pomocą przełącznika lub mechanizmu sterowania, tak jak to zrobiliśmy w wielu projektach automatyki domowej opartych na Arduino. Ale jest wiele aplikacji, w których musimy częściowo kontrolować moc prądu przemiennego, na przykład, aby kontrolować prędkość wentylatora lub intensywność lampy. W tym przypadku wykorzystywana jest technika PWM, więc tutaj dowiemy się, jak wykorzystać PWM wygenerowane przez Arduino do sterowania prędkością wentylatora AC za pomocą Arduino.
W tym projekcie zademonstrujemy sterowanie prędkością wentylatora Arduino AC za pomocą TRIAC. Tutaj do sterowania prędkością wentylatora AC wykorzystywana jest metoda sterowania fazą sygnału AC, wykorzystując sygnały PWM generowane przez Arduino. W poprzednim samouczku kontrolowaliśmy prędkość wentylatora DC za pomocą PWM.
Wymagane składniki
- Arduino UNO
- 4N25 (detektor przejścia przez zero)
- Potencjometr 10 k
- MOC3021 0pto-łącznik
- (0-9) V, 500 mA Transformator obniżający napięcie
- BT136 TRIAC
- Wentylator osiowy AC 230 VAC
- Przewody łączące
- Rezystory
Działanie sterowania wentylatorem AC za pomocą Arduino
Praca można podzielić na cztery różne części. Są one następujące
1. Detektor przejścia przez zero
2. Obwód kontroli kąta fazowego
3. Potencjometr do sterowania prędkością wentylatora
4. Obwód generowania sygnału PWM
1. Detektor przejścia przez zero
Zasilanie prądem przemiennym, które otrzymujemy w naszym gospodarstwie domowym, to 220 V AC RMS, 50 Hz. Ten sygnał AC ma charakter zmienny i okresowo zmienia polaryzację. W pierwszej połowie każdego cyklu płynie w jednym kierunku, osiągając szczytowe napięcie, a następnie spada do zera. Następnie w następnym półcyklu płynie w naprzemiennym kierunku (ujemnym) do napięcia szczytowego, a następnie ponownie dochodzi do zera. Aby kontrolować prędkość wentylatora AC, napięcie szczytowe obu półcyklów musi być przerywane lub kontrolowane. W tym celu musimy wykryć punkt zerowy, z którego sygnał ma być sterowany / przerywany. Ten punkt na krzywej napięcia, w którym napięcie zmienia kierunek, nazywany jest przejściem napięcia przez zero.
Obwód pokazany poniżej jest obwodem detektora przejścia przez zero, który jest używany do uzyskania punktu przejścia przez zero. Najpierw napięcie 220 V AC jest obniżane do 9 V AC za pomocą transformatora obniżającego napięcie, a następnie jest podawane do transoptora 4N25 na pinach 1 i 2. Transoptor 4N25 ma wbudowaną diodę LED z pinem 1 jako anodą i pinem 2 jako katoda. Tak więc zgodnie z poniższym obwodem, gdy fala AC zbliża się do punktu przejścia przez zero, wbudowana dioda LED 4N25 zostanie wyłączona, w wyniku czego tranzystor wyjściowy 4N25 również zostanie wyłączony, a pin impulsu wyjściowego zostanie wyłączony. podciągnąć do 5V. Podobnie, gdy sygnał rośnie stopniowo do szczytupunkt, dioda LED zaświeci się, a tranzystor również włączy się z bolcem uziemienia podłączonym do styku wyjściowego, co powoduje, że ten pin jest 0V. Za pomocą tego impulsu punkt przejścia przez zero można wykryć za pomocą Arduino.
2. Obwód sterowania kątem fazowym
Po wykryciu punktu przejścia przez zero musimy teraz kontrolować ilość czasu, w którym zasilanie będzie WŁĄCZANE i WYŁĄCZANE. Ten sygnał PWM decyduje o wielkości napięcia wyjściowego do silnika prądu przemiennego, który z kolei steruje jego prędkością. Tutaj używany jest BT136 TRIAC, który kontroluje napięcie AC, ponieważ jest to elektroniczny przełącznik mocy do sterowania sygnałem napięcia AC.
TRIAC to trójzaciskowy przełącznik prądu przemiennego, który może być wyzwalany sygnałem o niskiej energii na zacisku bramki. W tyrystorach przewodzi tylko w jednym kierunku, ale w przypadku triaka moc można regulować w obu kierunkach. Aby dowiedzieć się więcej o TRIAC i SCR, przeczytaj nasze poprzednie artykuły.
Jak pokazano na powyższym rysunku, TRIAC jest wyzwalany pod kątem wyzwalania 90 stopni przez zastosowanie do niego małego sygnału impulsu bramki. Czas „t1” to czas opóźnienia, który jest podawany zgodnie z wymaganiami ściemniania. Na przykład w tym przypadku kąt świecenia wynosi 90 procent, stąd moc wyjściowa również zmniejszy się o połowę, a zatem lampa będzie również świecić z połową intensywności.
Wiemy, że częstotliwość sygnału AC wynosi tutaj 50 Hz. Tak więc okres czasu będzie wynosił 1 / f, czyli 20 ms. Przez pół cyklu będzie to 10 ms lub 10 000 mikrosekund. Stąd w celu kontrolowania mocy lampy prądu przemiennego, zakres „t1” może zmieniać się od 0-10000 mikrosekund.
Transoptor:
Transoptor jest również znany jako Optoizolator. Służy do zachowania izolacji między dwoma obwodami elektrycznymi, takimi jak sygnały DC i AC. Zasadniczo składa się z diody LED emitującej światło podczerwone i fotoczujnika, który je wykrywa. Tutaj transoptor MOC3021 jest używany do sterowania wentylatorem AC na podstawie sygnałów mikrokontrolera, które są sygnałem DC.
Schemat podłączenia TRIAC i transoptora:
3. Potencjometr do sterowania prędkością wentylatora
Tutaj potencjometr służy do zmiany prędkości wentylatora AC. Wiemy, że potencjometr to 3-zaciskowe urządzenie, które działa jako dzielnik napięcia i zapewnia zmienne napięcie wyjściowe. To zmienne analogowe napięcie wyjściowe jest podawane na analogowym zacisku wejściowym Arduino, aby ustawić wartość prędkości wentylatora AC.
4. Jednostka generowania sygnału PWM
W ostatnim kroku do TRIAC podawany jest impuls PWM zgodnie z wymaganiami dotyczącymi prędkości, który z kolei zmienia czas włączenia / wyłączenia sygnału AC i zapewnia zmienne wyjście do sterowania prędkością wentylatora. Tutaj Arduino służy do generowania impulsu PWM, który pobiera sygnał wejściowy z potencjometru i przekazuje sygnał PWM do obwodu TRIAC i transoptora, który dodatkowo napędza wentylator AC z żądaną prędkością. Dowiedz się więcej o generowaniu PWM przy użyciu Arduino tutaj.
Schemat obwodu
Schemat obwodu tego obwodu sterującego prędkością wentylatora 230 V opartego na Arduino jest podany poniżej:
Uwaga: pokazałem cały obwód na płytce prototypowej tylko w celu zrozumienia. Nie należy używać zasilania 220 V AC bezpośrednio na płytce stykowej, użyłem kropkowanej płytki do wykonania połączeń, jak widać na poniższym obrazku
Programowanie Arduino do sterowania prędkością wentylatora AC
Po podłączeniu sprzętu musimy napisać kod dla Arduino, który wygeneruje sygnał PWM do sterowania czasem załączania / wyłączania sygnału AC za pomocą wejścia potencjometrycznego. Wcześniej używaliśmy technik PWM w wielu projektach.
Pełny kod tego projektu sterowania prędkością wentylatora Arduino AC znajduje się na dole tego projektu. Poniżej podano szczegółowe wyjaśnienie kodu.
W pierwszym kroku zadeklaruj wszystkie wymagane zmienne, które będą używane w całym kodzie. Tutaj BT136 TRIAC jest podłączony do pinu 6 Arduino. A zmienna speed_val jest zadeklarowana do przechowywania wartości kroku prędkości.
int TRIAC = 6; int speed_val = 0;
Następnie, w funkcji konfiguracji , zadeklaruj pin TRIAC jako wyjście, ponieważ wyjście PWM będzie generowane przez ten pin. Następnie skonfiguruj przerwanie, aby wykryć przejście przez zero. Tutaj użyliśmy funkcji o nazwie attachInterrupt, która skonfiguruje cyfrowy Pin 3 Arduino jako przerwanie zewnętrzne i wywoła funkcję o nazwie zero_crossing, gdy wykryje jakiekolwiek przerwania na swoim pinie.
void setup () {pinMode (LAMPA, WYJŚCIE); attachInterrupt (digitalPinToInterrupt (3), zero_crossing, CHANGE); }
Wewnątrz nieskończonej pętli odczytaj wartość analogową z potencjometru, który jest podłączony do A0 i zmapuj ją na zakres wartości (10-49).
Aby poznać ten zakres, musimy wykonać małe obliczenia. Wcześniej mówi się, że każdy półcykl odpowiada 10 000 mikrosekund. Więc tutaj ściemnianie będzie kontrolowane w 50 krokach, co jest wartością arbitralną i można je zmienić. Tutaj minimalne kroki są przyjmowane jako 10, a nie Zero, ponieważ kroki 0-9 dają w przybliżeniu taką samą moc wyjściową, a maksymalne kroki są przyjmowane jako 49, ponieważ praktycznie nie zaleca się przyjmowania górnej granicy (która w tym przypadku wynosi 50).
Wtedy czas każdego kroku można obliczyć jako 10000/50 = 200 mikrosekund. Zostanie to wykorzystane w następnej części kodu.
void loop () {int pot = analogRead (A0); int data1 = map (pot, 0, 1023,10,49); speed_val = data1; }
W ostatnim kroku skonfiguruj sterowaną przerwaniami funkcję zero_crossing. Tutaj czas ściemniania można obliczyć, mnożąc indywidualny czas kroku bez. kroków. Następnie po tym czasie opóźnienia TRIAC można wyzwolić za pomocą małego wysokiego impulsu o długości 10 mikrosekund, który jest wystarczający do włączenia TRIAC.
void zero_crossing () {int chop_time = (200 * speed_val); delayMicroseconds (chop_time); digitalWrite (TRIAC, HIGH); delayMicroseconds (10); digitalWrite (TRIAC, LOW); }
Pełny kod wraz z działającym filmem do sterowania wentylatorem AC za pomocą Arduino i PWM znajduje się poniżej.