- Wat is een AC-fasehoekregeling en hoe werkt het?
- Uitdagingen in Phase Angle Control
- Vereist materiaal voor AC-fasehoekregelcircuit
- Schakelschema AC-fasehoekregeling
- AC-fasehoekregelcircuit - Werkend
- PCB-ontwerp voor het AC-fasehoekregelcircuit
- Arduino-code voor AC-fasehoekregeling
- Testen van het AC-fasehoekregelcircuit
- Verdere verbeteringen
Domotica-systemen worden steeds populairder met de dag, en tegenwoordig is het gemakkelijk geworden om bepaalde apparaten aan en uit te zetten door een eenvoudig bedieningsmechanisme zoals een relais of een schakelaar te gebruiken.We hebben eerder veel Arduino-gebaseerde Home Automation-projecten gebouwd met behulp van relais. Maar er zijn veel huishoudelijke apparaten die controle over deze wisselstroom nodig hebben in plaats van alleen maar aan of uit te zetten. Betreed nu de wereld van AC-fasehoekregeling, het is een eenvoudige techniek waarmee u de AC-fasehoek kunt regelen. Dit betekent dat u de snelheid van uw plafondventilator of een andere AC-ventilator kunt regelen, of zelfs dat u de intensiteit van een LED of gloeilamp kunt regelen.
Hoewel het eenvoudig klinkt, is het proces om het daadwerkelijk te implementeren erg moeilijk, dus in dit artikel gaan we een eenvoudig AC-fasehoekcontrolecircuit bouwen met behulp van een 555-timer, en uiteindelijk zullen we een Arduino gebruiken om een eenvoudig PWM-signaal te genereren om de intensiteit van een gloeilamp te regelen. Zoals je je nu duidelijk kunt voorstellen, kun je met dit circuit een eenvoudig domoticasysteem bouwen waarbij je de ventilator en de AC-lichtdimmers kunt bedienen met een enkele Arduino.
Wat is een AC-fasehoekregeling en hoe werkt het?
AC-fasehoekregeling is een methode waarmee we een AC-sinusgolf kunnen regelen of hakken. De ontstekingshoek van de schakelinrichting wordt gevarieerd na een nuldoorgangsdetectie, wat resulteert in een gemiddelde spanningsoutput die proportioneel verandert met de gemodificeerde sinusgolf, de onderstaande afbeelding beschrijft meer.
Zoals u kunt zien, hebben we eerst ons AC-ingangssignaal. Vervolgens hebben we het nuldoorgangssignaal, dat elke 10 ms een interrupt genereert. Vervolgens hebben we het gate-triggersignaal, zodra we een triggersignaal krijgen, wachten we een bepaalde periode voordat we de triggerpuls geven, hoe langer we wachten, hoe meer we de gemiddelde spanning kunnen verlagen en vice versa. We zullen later in het artikel meer van het onderwerp bespreken.
Uitdagingen in Phase Angle Control
Voordat we het schema en alle materiaalvereisten bekijken, laten we het hebben over enkele problemen die aan dit soort schakelingen zijn verbonden en hoe onze schakeling deze oplost.
Ons doel hier is om de fasehoek van een AC-sinusgolf te regelen met behulp van een microcontroller, voor elke soort domotica-applicatie. Als we naar de onderstaande afbeelding kijken, kun je zien dat we in het geel onze sinusgolf hebben en in groen ons nuldoorgangssignaal.
Je kunt zien dat het nuldoorgangssignaal elke 10 ms binnenkomt, omdat we werken met een sinusgolf van 50 Hz. In een microcontroller genereert het elke 10 ms een interrupt. als we daarnaast nog een andere code zouden plaatsen, werkt de andere code mogelijk niet vanwege een onderbreking. Zoals we weten, is de lijnfrequentie in India 50Hz, dus werken we met een sinusgolf van 50Hz en om de netspanning te regelen, moeten we de TRIAC binnen een bepaald tijdsbestek in- en uitschakelen. Om dat te doen, gebruikt het op microcontroller gebaseerde fasehoekbesturingscircuit het nuldoorgangssignaal als een interrupt, maar het probleem met deze methode is dat je geen andere code kunt uitvoeren dan de regelcode voor de tempohoek, omdat het in zekere zin zal breken. de luscyclus en een van die codes zullen niet werken.
Laat me dit verduidelijken met een voorbeeld, stel dat je een project moet doen waarbij je de helderheid van de gloeilamp moet regelen, en je moet ook tegelijkertijd de temperatuur meten. Om de helderheid van een gloeilamp te regelen, hebt u een fasehoekregelcircuit nodig, ook moet u de temperatuurgegevens erbij lezen, als dit het scenario is, zal uw circuit niet goed werken omdat de DHT22-sensor enige tijd nodig heeft om geef zijn uitvoergegevens. In deze periode zal het fasehoekbesturingscircuit stoppen met werken, dat wil zeggen als u het in een pollingmodus hebt geconfigureerd, maar als u het nuldoorgangssignaal in de interruptmodus hebt geconfigureerd, kunt u de DHT-gegevens nooit lezen omdat de CRC-controle mislukt.
Om dit probleem op te lossen, kunt u een andere microcontroller gebruiken voor verschillende fasehoekbesturingscircuits, maar dit zal de stuklijstkosten verhogen, een andere oplossing is om ons circuit te gebruiken dat bestaat uit generieke componenten zoals de 555-timer en ook minder kost.
Vereist materiaal voor AC-fasehoekregelcircuit
De onderstaande afbeelding toont de materialen die zijn gebruikt om het circuit te bouwen, aangezien dit is gemaakt met zeer algemene componenten, zou u al het vermelde materiaal in uw plaatselijke hobbywinkel moeten kunnen vinden.
Ik heb ook de componenten in een onderstaande tabel met type en aantal opgesomd, aangezien het een demonstratieproject is, gebruik ik hiervoor één kanaal. Maar het circuit kan eenvoudig worden opgeschaald volgens de vereisten.
Sl. Nr |
Onderdelen |
Type |
Aantal stuks |
1 |
Schroefaansluiting 5,04 mm |
Connector |
3 |
2 |
Mannelijke header 2,54 mm |
Connector |
1X2 |
3 |
56K, 1W |
Weerstand |
2 |
4 |
1N4007 |
Diode |
4 |
5 |
0.1uF, 25V |
Condensator |
2 |
6 |
100uF, 25V |
Condensator |
2 |
7 |
LM7805 |
Spanningsregelaar |
1 |
8 |
1K |
Weerstand |
1 |
9 |
470R |
Weerstand |
2 |
10 |
47R |
Weerstand |
2 |
11 |
82K |
Weerstand |
1 |
12 |
10K |
Weerstand |
1 |
13 |
PC817 |
Optocoupler |
1 |
14 |
NE7555 |
IC |
1 |
12 |
MOC3021 |
OptoTriac-schijf |
1 |
13 |
IRF9540 |
MOSFET |
1 |
14 |
3.3uF |
Condensator |
1 |
15 |
Verbindingsdraden |
Draden |
5 |
16 |
0.1uF, 1KV |
Condensator |
1 |
17 |
Arduino Nano (voor test) |
Microcontroller |
1 |
Schakelschema AC-fasehoekregeling
Het schema voor het AC-fasehoekregelcircuit wordt hieronder getoond, dit circuit is heel eenvoudig en gebruikt generieke componenten om fasehoekregeling te bereiken.
AC-fasehoekregelcircuit - Werkend
Dit circuit bestaat uit zeer zorgvuldig ontworpen componenten, ik zal ze allemaal doornemen en elk blok uitleggen.
Detectiecircuit nuldoorgang:
Ten eerste is in onze lijst het nuldoorgangdetectiecircuit gemaakt met twee 56K, 1W-weerstanden in combinatie met vier 1n4007-diodes en een PC817-optocoupler. En dit circuit is verantwoordelijk voor het leveren van het nuldoorgangssignaal aan de 555 timer-IC. We hebben ook de fase en het neutrale signaal afgeplakt om het verder te gebruiken in de TRIAC-sectie.
LM7809 Spanningsregelaar:
De 7809-spanningsregelaar wordt gebruikt om het circuit van stroom te voorzien, het circuit is verantwoordelijk voor het leveren van stroom aan het hele circuit. Daarnaast hebben we twee 470uF condensatoren en een 0.1uF condensator gebruikt als ontkoppelingscondensator voor de LM7809 IC.
Besturingscircuit met NE555-timer:
De bovenstaande afbeelding toont het 555 timerbesturingscircuit, de 555 is geconfigureerd in een monostabiele configuratie, dus wanneer een triggersignaal van het nuldoorgangdetectiecircuit de trigger raakt, begint de 555-timer de condensator op te laden met behulp van een weerstand (in het algemeen), maar ons circuit heeft een MOSFET in plaats van een weerstand, en door de poort van de MOSFET te besturen, regelen we de stroom die naar de condensator gaat, daarom regelen we de oplaadtijd, vandaar dat we de output van de 555-timers regelen. In veel projecten hebben we de 555 timer-IC gebruikt om ons project te maken, als je meer wilt weten over dit onderwerp, kun je alle andere projecten bekijken.
TRIAC en het TRIAC-Driver Circuit:
De TRIAC fungeert als de hoofdschakelaar die daadwerkelijk in- en uitschakelt, en dus de output van het AC-signaal regelt. De TRIAC wordt aangedreven door de MOC3021 optotriac-drive, deze stuurt niet alleen de TRIAC aan, maar biedt ook optische isolatie, de 0,01uF 2KV hoogspanningscondensator en de 47R-weerstand vormt een snubbercircuit dat ons circuit beschermt tegen hoogspanningspieken die optreden wanneer het is aangesloten op een inductieve belasting, is de niet-sinusvormige aard van het geschakelde AC-signaal verantwoordelijk voor de pieken. Het is ook verantwoordelijk voor problemen met de arbeidsfactor, maar dat is een onderwerp voor een ander artikel. Ook hebben we in verschillende artikelen de TRIAC als ons voorkeursapparaat gebruikt, u kunt deze bekijken als dat uw interesse wekt.
Laagdoorlaatfilter en de P-kanaal MOSFET (fungeert als de weerstand in het circuit):
De 82K-weerstand en de 3.3uF-condensator vormen het laagdoorlaatfilter dat verantwoordelijk is voor het afvlakken van het hoogfrequente PWM-signaal dat door de Arduino wordt gegenereerd. Zoals eerder vermeld, fungeert de P-Channel MOSFET als de variabele weerstand, die de oplaadtijd van de condensator regelt. Het is het PWM-signaal dat wordt afgevlakt door het laagdoorlaatfilter. In het vorige artikel hebben we het concept van laagdoorlaatfilters verwijderd, je kunt het artikel over actief laagdoorlaatfilter of passief laagdoorlaatfilter lezen als je meer wilt weten over het onderwerp.
PCB-ontwerp voor het AC-fasehoekregelcircuit
De printplaat voor ons Phase angle Control-circuit is ontworpen in een enkelzijdig bord. Ik heb Eagle gebruikt om mijn PCB te ontwerpen, maar je kunt elke ontwerpsoftware van je keuze gebruiken. De 2D-afbeelding van mijn bordontwerp wordt hieronder weergegeven.
Er wordt voldoende grondvulling gebruikt om goede aardverbindingen te maken tussen alle componenten. De 12V DC ingang en de 220 Volt AC ingang is aan de linkerkant gevuld, de uitgang bevindt zich aan de rechterkant van de print. Het complete ontwerpbestand voor Eagle samen met de Gerber kan worden gedownload via onderstaande link.
- Download PCB Design, GERBER & PDF-bestanden voor AC Phase Angle Control Circuit
Handgemaakte printplaat:
Voor het gemak heb ik mijn handgemaakte versie van de PCB gemaakt en deze wordt hieronder weergegeven.
Arduino-code voor AC-fasehoekregeling
Een eenvoudige PWM-generatiecode wordt gebruikt om het circuit te laten werken, de code en de uitleg worden hieronder gegeven. De volledige code vind je ook onderaan deze pagina. Eerst declareren we alle benodigde variabelen, const int analogInPin = A0; // Analoge ingangspen waaraan de potentiometer is bevestigd const int analogOutPin = 9; // Analoge output pin die de LED is bevestigd aan int sensorValue = 0; // waarde gelezen uit de pot int outputValue = 0; // waarde output naar de PWM (analoog uit)
De variabelen zijn om de analoge pin, de analogOut-pin te declareren, en de andere variabelen zijn om de toegewezen waarde op te slaan, om te zetten en af te drukken. Vervolgens initialiseren we in de sectie setup () de UART met 9600 baud zodat we de output konden volgen en zo kunnen we erachter komen welk PWM-bereik de output van het circuit volledig kon regelen.
void setup () {// initialiseer seriële communicatie op 9600 bps: Serial.begin (9600); }
Vervolgens lezen we in het gedeelte loop () de analoge pin A0 en slaan we de waarde op in sensorwaarde-variabele, vervolgens brengen we de sensorwaarde in kaart naar 0 -255 omdat de PWM-timer van de atmega slechts 8-bits is, vervolgens stel het PWM-signaal in met een analogWrite () -functie van de Arduino. en tot slot drukken we de waarden af naar het seriële monitorvenster om het bereik van het stuursignaal te achterhalen. Als u deze tutorial volgt, geeft de video aan het einde u een duidelijker idee over het onderwerp.
sensorValue = analogRead (analogInPin); // lees de analoge waarde: outputValue = map (sensorValue, 0, 1023, 0, 255); // wijs het toe aan het bereik van de analoge uitgang: analogWrite (analogOutPin, outputValue); // verander de analoge uit-waarde: Serial.print ("sensor ="); // print de resultaten naar de seriële monitor: Serial.print (sensorValue); Serial.print ("\ t output ="); Serial.println (outputValue);
Testen van het AC-fasehoekregelcircuit
De bovenstaande afbeelding toont de testopstelling van het circuit. De 12V-voeding wordt verzorgd door een 12V SMPS-circuit, de belasting is in ons geval een gloeilamp, deze kan eenvoudig worden vervangen \ door een inductieve belasting zoals een ventilator. Ook zoals je kunt zien heb ik een potmeter aangesloten om de helderheid van de lamp te regelen maar deze kan vervangen worden door elke andere vorm van controller, als je inzoomt op de afbeelding kun je zien dat de pot is aangesloten op de A0 pin van de Arduino en het PWM signaal komt van pin9 van de Arduino.
Zoals je in de bovenstaande afbeelding kunt zien, is de outputwaarde 84 en is de helderheid van de gloeilamp erg laag,
Op deze afbeelding kun je zien dat de waarde 82 is en dat de helderheid van de gloeilamp toeneemt.
Na vele mislukte pogingen kon ik een circuit bedenken dat echt goed werkt. Heb je je ooit afgevraagd hoe een testbank eruitziet als een circuit niet werkt? Laat me je vertellen dat het er erg slecht uitziet
Dit is een eerder ontworpen circuit waar ik aan werkte. Ik moest het helemaal weggooien en een nieuwe maken omdat de vorige niet een beetje werkte.
Verdere verbeteringen
Voor deze demonstratie is het circuit gemaakt op een handgemaakte PCB, maar het circuit kan eenvoudig worden gebouwd in een PCB van goede kwaliteit, in mijn experimenten is de grootte van de PCB erg groot vanwege de grootte van het onderdeel, maar in een productieomgeving is het kan worden verminderd door goedkope SMD-componenten te gebruiken. In mijn experimenten ontdekte ik dat het gebruik van een 7555-timer in plaats van een 555-timer de controle aanzienlijk verhoogt, bovendien neemt ook de stabiliteit van het circuit toe.