Besturing voor 3-fase motoren met ster/driehoek omschakeling.
Hoofdstroomcircuit
Omdat relais' tijd nodig hebben om te schakelen dienen we via hulpcontacten, verbreekcontacten, op de ster en driehoek relais plaatsen zodat bij het schakelen van ster naar driehoek de driehoekrelais pas inkomt als de sterrelais is afgevallen, zodat er geen kortsluiting kan ontstaan. Even zo kan het sterrelais ps opkomen als het driehoekrelais uit is. We doen dit door de hulpcontacten in serie met de relaisspoelen te plaatsen.
De sourcecode is beveiligd voor verkeerde werking. Te denken valt als de motor loopt het drukken op de starttoets geen effect heeft.
Met de stopknop kan in ster en driehoek de motor worden uitgeschakeld. Herstarten pas na 3 sec.
Iedere Arduino.
Knoppen schakelen naar massa.
Twee vrije ingangen en drie uitgangen per motor.
Deze code kan ook deels in andere projecten gebruikt worden.
#define b_start A1 #define b_stop A2 #define r_net 10 #define r_ster 11 #define r_driehoek 12 int run = 0; int ster = 0; int driehoek = 0; void setup() { pinMode(b_start, INPUT_PULLUP); pinMode(b_stop, INPUT_PULLUP); pinMode(r_net, OUTPUT); digitalWrite(r_net, LOW); pinMode(r_ster, OUTPUT); digitalWrite(r_ster, LOW); pinMode(r_driehoek, OUTPUT); digitalWrite(r_driehoek, LOW); } void loop() { int start, stop; unsigned long timer; start = digitalRead(b_start); stop = digitalRead(b_stop); if (start == LOW && stop == HIGH) { run = 1; timer = millis(); digitalWrite(r_net, run); } //Automatische ster-driehoek omschakeling if ((run == 1) && (driehoek == 0)) { ster = 1; if (ster == 1 && millis() <= (timer + 5000)) { digitalWrite(r_ster, run); } else { ster = 0; digitalWrite(r_ster, LOW); driehoek = 1; } } //Bedrijf in driehoek if (driehoek == 1) { digitalWrite(r_driehoek, run); } // Stilzetten if (stop == LOW) { run = 0; ster = 0; driehoek = 0; digitalWrite(r_net, run); digitalWrite(r_ster, run); digitalWrite(r_driehoek, run); delay(3000); //Voorkomt dat de motor te snel weer opstart. Optioneel. } }