int potipluspin = 12; // atmega pin 18 Poti Pluspol int potischleiferpin = A5; // atmega pin 28 Poti Schleifer Über RC-TP int temppin = A4; // atmega pin 27 Temp-Sensor-Tranistor bool temp; int enuppin = 2; // atmega pin 4, Katode Optoled int enunpin = 3; // atmega pin 5, Katode Optoled int enzppin = 4; // atmega pin 6, Katode Optoled int upin = 9; // atmega pin 15, Anode Optoled int zpin = 10; // atmega pin 16, Anode Optoled int enznpin = 7; // atmega pin 13, Katode Optoled int relaispin = 8; // atmega pin 14 schaltet Relais ein int zwkpin = 13; // atmega pin 19 wird HIGH wenn die Zwischenkreisspannung größer 750VDC wird. int netzpin = 11; // atmega pin 17 über Widerstand an Sekundärwicklung vom Netztrafo unsigned long netzist; unsigned long netzstart; bool netz; bool netzweg; unsigned long bremsist; unsigned long bremsstart; unsigned long bremsdauer = 500; // 5*RC vom Potischleifer unsigned long zwkstart; unsigned long zwkist; unsigned long zwkvz = 100; bool zwk; unsigned long mvstart; // Multivibrator unsigned long mvist; bool mvv; // Multivibratorzustand am Anfang der Loop bool mv; unsigned long enupstart; unsigned long enupistzeit; unsigned long enunstart; unsigned long enunistzeit; bool enup; // enable Arbeitsphase positive Halbwelle bool enun; // enable Arbeitsphase negative Halbwelle bool enzp; // enable Hilfsphase positive Halbwelle bool enzn; // enable Hilfsphase negative Halbwelle long per; //Periodendauer in ms int wert = 25; int add = 10; int lies; int wertvor; int uspg; int usinspg; int zspg; int zsinspg; byte zahl = 1; int usin; int zsin; void setup() { TCCR1B = TCCR1B & B11111000 | B00000010; // for PWM frequency of 3921.16 Hz pinMode(upin, OUTPUT); // PWM pinMode(zpin, OUTPUT); // PWM analogWrite(upin,0); analogWrite(zpin,0); pinMode(enuppin,OUTPUT); digitalWrite(enuppin,HIGH); pinMode(enunpin,OUTPUT); digitalWrite(enunpin,HIGH); pinMode(enzppin,OUTPUT); digitalWrite(enzppin,HIGH); pinMode(enznpin,OUTPUT); digitalWrite(enznpin,HIGH); pinMode(relaispin,OUTPUT); pinMode(zwkpin,INPUT); pinMode(netzpin,INPUT); delay(3000); // Zeit zum Zwischenkreisladen digitalWrite(relaispin,HIGH); pinMode(potipluspin,OUTPUT); per = 5100 / wert; // Berechnung der Periodendauer uspg = 164 + 10 * wert / 28; // Frequenzabhänige Spannung für Arbeitswicklung zspg = (uspg * 10 / 10); // Frequenzabhänige Spannung für Hilfswicklung delay(500); // Anzugszeit für das Relais digitalWrite(potipluspin,HIGH); netzstart = millis(); // verhindert netzweg-Impuls bei start von void loop() } void drehzahlspannung(){ wert = (lies / 4) + add; if(wert < 25){wert = 25;} // Mindestdrehzahl if(wert >= 255){wert = 255;} // Höchstdrehzahl per = 5100 / wert; // Berechnung der Periodendauer uspg = 164 + 10 * wert / 28; // Frequenzabhänige Spannung für Arbeitswicklung zspg = (uspg * 10 / 10); // Frequenzabhänige Spannung für Hilfswicklung } void loop() { netz = digitalRead(netzpin); // Erkennung ob Netzspannung weg Anfang if(netz == LOW){netzist = millis(); if(netzist - netzstart > 25){netzweg = HIGH;}} // 25ms ist etwas mehr als eine Netzperiode =20ms else{netzstart = millis(); netzweg = LOW;} // Erkennung ob Netzspannung weg Ende if(netzweg == HIGH) // Bremse bei Netzspannung weg Anfang {digitalWrite(potipluspin,LOW); bremsist = millis(); if(bremsist -bremsstart > bremsdauer) {zwk = HIGH; digitalWrite(relaispin,LOW);}} else{bremsstart = millis(); digitalWrite(potipluspin,HIGH);} // Bremse bei Netzspannung weg Ende lies = analogRead(potischleiferpin); drehzahlspannung(); if(analogRead(temppin) <= 761){temp = HIGH;} // 761 entspricht 50 Grad Celsius if((digitalRead(zwkpin) || temp) == HIGH){zwkist = micros(); // Überspannungsabschaltung Zwischenkreis und Übertemp. if(zwkist - zwkstart > zwkvz) {digitalWrite(relaispin,LOW); zwk = HIGH;}} else{zwkstart = micros();} // zwk soll HIGH bleiben Überspannungs- u. Temperaturabschaltung mvv = mv; mvist = micros(); if((wert <= 255) && (wert >= 128)){liste20(); add = 12;} if((wert <= 127) && (wert >= 52)){liste40(); add = 10;} if((wert <= 51) && (wert >= 25)){liste100(); add = 8;} if(enup && !zwk && !enun){digitalWrite(enuppin,LOW);} // Freigaben Anfang else{enup = LOW; digitalWrite(enuppin,HIGH);} if(enun && !zwk && !enup){digitalWrite(enunpin,LOW);} else{enun = LOW; digitalWrite(enunpin,HIGH);} if(enzp && !zwk && !enzn){digitalWrite(enzppin,LOW);} else{enzp = LOW; digitalWrite(enzppin,HIGH);} if(enzn && !zwk && !enzp){digitalWrite(enznpin,LOW);} else{enzn = LOW; digitalWrite(enznpin,HIGH);} // Freigaben Ende zsinspg = zspg * zsin / 100; // Multiplikation der PWM-Spg. mit dem Sinuswert usinspg = uspg * usin / 100; // Multiplikation der PWM-Spg. mit dem Sinuswert if(zwk == HIGH) // keine PWM wenn ZWK-Spg. oder Temp zu hoch {analogWrite(upin,0); analogWrite(zpin,0);} else{analogWrite(upin,usinspg); analogWrite(zpin,zsinspg);} } void liste20(){ if(mvist - mvstart >= (50 * per)){mvstart = mvist; if(mv == LOW){mv = HIGH;} else {mv = LOW;}} // Multivibrator if(mv != mvv){zahl ++;} // Zähler if(zahl >= 21){zahl = 1;} // Zähler switch(zahl) {case 1: enup = LOW; enun = HIGH; enzp = LOW; enzn = LOW; usin = 100; zsin = 0; break; case 2: enup = LOW; enun = HIGH; enzp = HIGH; enzn = LOW; usin = 89; zsin = 45; break; case 3: enup = LOW; enun = HIGH; enzp = HIGH; enzn = LOW; usin = 71; zsin = 71; break; case 4: enup = LOW; enun = HIGH; enzp = HIGH; enzn = LOW; usin = 45; zsin = 89; break; case 5: enup = LOW; enun = LOW; enzp = HIGH; enzn = LOW; usin = 0; zsin = 100; break; case 6: enup = LOW; enun = LOW; enzp = HIGH; enzn = LOW; usin = 0; zsin = 100; break; case 7: enup = HIGH; enun = LOW; enzp = HIGH; enzn = LOW; usin = 45; zsin = 89; break; case 8: enup = HIGH; enun = LOW; enzp = HIGH; enzn = LOW; usin = 71; zsin = 71; break; case 9: enup = HIGH; enun = LOW; enzp = HIGH; enzn = LOW; usin = 89; zsin = 45; break; case 10: enup = HIGH; enun = LOW; enzp = LOW; enzn = LOW; usin = 100; zsin = 0; break; case 11: enup = HIGH; enun = LOW; enzp = LOW; enzn = LOW; usin = 100; zsin = 0; break; case 12: enup = HIGH; enun = LOW; enzp = LOW; enzn = HIGH; usin = 89; zsin = 45; break; case 13: enup = HIGH; enun = LOW; enzp = LOW; enzn = HIGH; usin = 71; zsin = 71; break; case 14: enup = HIGH; enun = LOW; enzp = LOW; enzn = HIGH; usin = 45; zsin = 89; break; case 15: enup = LOW; enun = LOW; enzp = LOW; enzn = HIGH; usin = 0; zsin = 100; break; case 16: enup = LOW; enun = LOW; enzp = LOW; enzn = HIGH; usin = 0; zsin = 100; break; case 17: enup = LOW; enun = HIGH; enzp = LOW; enzn = HIGH; usin = 45; zsin = 89; break; case 18: enup = LOW; enun = HIGH; enzp = LOW; enzn = HIGH; usin = 71; zsin = 71; break; case 19: enup = LOW; enun = HIGH; enzp = LOW; enzn = HIGH; usin = 89; zsin = 45; break; case 20: enup = LOW; enun = HIGH; enzp = LOW; enzn = LOW; usin = 100; zsin = 0; break;} } void liste40(){ if(mvist - mvstart >= (25 * per)){mvstart = mvist; if(mv == LOW){mv = HIGH;} else {mv = LOW;}} if(mv != mvv){zahl ++;} if(zahl >= 41){zahl = 1;} if(zahl == 1) {enup = LOW; enun = HIGH; enzp = LOW; enzn = LOW; usin = 100; zsin = 0;} if(zahl == 2) {enup = LOW; enun = HIGH; enzp = HIGH; enzn = LOW; usin = 97; zsin = 23;} if(zahl == 3) {enup = LOW; enun = HIGH; enzp = HIGH; enzn = LOW; usin = 92; zsin = 38;} if(zahl == 4) {enup = LOW; enun = HIGH; enzp = HIGH; enzn = LOW; usin = 85; zsin = 52;} if(zahl == 5) {enup = LOW; enun = HIGH; enzp = HIGH; enzn = LOW; usin = 76; zsin = 65;} if(zahl == 6) {enup = LOW; enun = HIGH; enzp = HIGH; enzn = LOW; usin = 65; zsin = 76;} if(zahl == 7) {enup = LOW; enun = HIGH; enzp = HIGH; enzn = LOW; usin = 52; zsin = 85;} if(zahl == 8) {enup = LOW; enun = HIGH; enzp = HIGH; enzn = LOW; usin = 38; zsin = 92;} if(zahl == 9) {enup = LOW; enun = HIGH; enzp = HIGH; enzn = LOW; usin = 23; zsin = 97;} if(zahl == 10) {enup = LOW; enun = LOW; enzp = HIGH; enzn = LOW; usin = 0; zsin = 100;} if(zahl == 11) {enup = LOW; enun = LOW; enzp = HIGH; enzn = LOW; usin = 0; zsin = 100;} if(zahl == 12) {enup = HIGH; enun = LOW; enzp = HIGH; enzn = LOW; usin = 23; zsin = 97;} if(zahl == 13) {enup = HIGH; enun = LOW; enzp = HIGH; enzn = LOW; usin = 38; zsin = 92;} if(zahl == 14) {enup = HIGH; enun = LOW; enzp = HIGH; enzn = LOW; usin = 52; zsin = 85;} if(zahl == 15) {enup = HIGH; enun = LOW; enzp = HIGH; enzn = LOW; usin = 65; zsin = 76;} if(zahl == 16) {enup = HIGH; enun = LOW; enzp = HIGH; enzn = LOW; usin = 76; zsin = 65;} if(zahl == 17) {enup = HIGH; enun = LOW; enzp = HIGH; enzn = LOW; usin = 85; zsin = 52;} if(zahl == 18) {enup = HIGH; enun = LOW; enzp = HIGH; enzn = LOW; usin = 92; zsin = 38;} if(zahl == 19) {enup = HIGH; enun = LOW; enzp = HIGH; enzn = LOW; usin = 97; zsin = 23;} if(zahl == 20) {enup = HIGH; enun = LOW; enzp = LOW; enzn = LOW; usin = 100; zsin = 0;} if(zahl == 21) {enup = HIGH; enun = LOW; enzp = LOW; enzn = LOW; usin = 100; zsin = 0;} if(zahl == 22) {enup = HIGH; enun = LOW; enzp = LOW; enzn = HIGH; usin = 97; zsin = 23;} if(zahl == 23) {enup = HIGH; enun = LOW; enzp = LOW; enzn = HIGH; usin = 92; zsin = 38;} if(zahl == 24) {enup = HIGH; enun = LOW; enzp = LOW; enzn = HIGH; usin = 85; zsin = 52;} if(zahl == 25) {enup = HIGH; enun = LOW; enzp = LOW; enzn = HIGH; usin = 76; zsin = 65;} if(zahl == 26) {enup = HIGH; enun = LOW; enzp = LOW; enzn = HIGH; usin = 65; zsin = 76;} if(zahl == 27) {enup = HIGH; enun = LOW; enzp = LOW; enzn = HIGH; usin = 52; zsin = 85;} if(zahl == 28) {enup = HIGH; enun = LOW; enzp = LOW; enzn = HIGH; usin = 38; zsin = 92;} if(zahl == 29) {enup = HIGH; enun = LOW; enzp = LOW; enzn = HIGH; usin = 23; zsin = 97;} if(zahl == 30) {enup = LOW; enun = LOW; enzp = LOW; enzn = HIGH; usin = 0; zsin = 100;} if(zahl == 31) {enup = LOW; enun = LOW; enzp = LOW; enzn = HIGH; usin = 0; zsin = 100;} if(zahl == 32) {enup = LOW; enun = HIGH; enzp = LOW; enzn = HIGH; usin = 23; zsin = 97;} if(zahl == 33) {enup = LOW; enun = HIGH; enzp = LOW; enzn = HIGH; usin = 38; zsin = 92;} if(zahl == 34) {enup = LOW; enun = HIGH; enzp = LOW; enzn = HIGH; usin = 52; zsin = 85;} if(zahl == 35) {enup = LOW; enun = HIGH; enzp = LOW; enzn = HIGH; usin = 65; zsin = 76;} if(zahl == 36) {enup = LOW; enun = HIGH; enzp = LOW; enzn = HIGH; usin = 76; zsin = 65;} if(zahl == 37) {enup = LOW; enun = HIGH; enzp = LOW; enzn = HIGH; usin = 85; zsin = 52;} if(zahl == 38) {enup = LOW; enun = HIGH; enzp = LOW; enzn = HIGH; usin = 92; zsin = 38;} if(zahl == 39) {enup = LOW; enun = HIGH; enzp = LOW; enzn = HIGH; usin = 97; zsin = 23;} if(zahl == 40) {enup = LOW; enun = HIGH; enzp = LOW; enzn = LOW; usin = 100; zsin = 0;} } void liste100(){ if(mvist - mvstart >= (10 * per)){mvstart = mvist; if(mv == LOW){mv = HIGH;} else {mv = LOW;}} if(mv != mvv){zahl ++;} if(zahl >= 101){zahl = 1;} if(zahl == 1) {enup = LOW; enun = HIGH; enzp = LOW; enzn = LOW; usin = 100; zsin = 0;} if(zahl == 2) {enup = LOW; enun = HIGH; enzp = HIGH; enzn = LOW; usin = 99; zsin = 9;} if(zahl == 3) {enup = LOW; enun = HIGH; enzp = HIGH; enzn = LOW; usin = 99; zsin = 16;} if(zahl == 4) {enup = LOW; enun = HIGH; enzp = HIGH; enzn = LOW; usin = 98; zsin = 22;} if(zahl == 5) {enup = LOW; enun = HIGH; enzp = HIGH; enzn = LOW; usin = 96; zsin = 28;} if(zahl == 6) {enup = LOW; enun = HIGH; enzp = HIGH; enzn = LOW; usin = 94; zsin = 34;} if(zahl == 7) {enup = LOW; enun = HIGH; enzp = HIGH; enzn = LOW; usin = 92; zsin = 40;} if(zahl == 8) {enup = LOW; enun = HIGH; enzp = HIGH; enzn = LOW; usin = 89; zsin = 45;} if(zahl == 9) {enup = LOW; enun = HIGH; enzp = HIGH; enzn = LOW; usin = 86; zsin = 51;} if(zahl == 10) {enup = LOW; enun = HIGH; enzp = HIGH; enzn = LOW; usin = 83; zsin = 56;} if(zahl == 11) {enup = LOW; enun = HIGH; enzp = HIGH; enzn = LOW; usin = 79; zsin = 61;} if(zahl == 12) {enup = LOW; enun = HIGH; enzp = HIGH; enzn = LOW; usin = 75; zsin = 66;} if(zahl == 13) {enup = LOW; enun = HIGH; enzp = HIGH; enzn = LOW; usin = 71; zsin = 71;} if(zahl == 14) {enup = LOW; enun = HIGH; enzp = HIGH; enzn = LOW; usin = 66; zsin = 75;} if(zahl == 15) {enup = LOW; enun = HIGH; enzp = HIGH; enzn = LOW; usin = 61; zsin = 79;} if(zahl == 16) {enup = LOW; enun = HIGH; enzp = HIGH; enzn = LOW; usin = 56; zsin = 83;} if(zahl == 17) {enup = LOW; enun = HIGH; enzp = HIGH; enzn = LOW; usin = 51; zsin = 86;} if(zahl == 18) {enup = LOW; enun = HIGH; enzp = HIGH; enzn = LOW; usin = 45; zsin = 89;} if(zahl == 19) {enup = LOW; enun = HIGH; enzp = HIGH; enzn = LOW; usin = 40; zsin = 92;} if(zahl == 20) {enup = LOW; enun = HIGH; enzp = HIGH; enzn = LOW; usin = 34; zsin = 94;} if(zahl == 21) {enup = LOW; enun = HIGH; enzp = HIGH; enzn = LOW; usin = 28; zsin = 96;} if(zahl == 22) {enup = LOW; enun = HIGH; enzp = HIGH; enzn = LOW; usin = 22; zsin = 98;} if(zahl == 23) {enup = LOW; enun = HIGH; enzp = HIGH; enzn = LOW; usin = 16; zsin = 99;} if(zahl == 24) {enup = LOW; enun = HIGH; enzp = HIGH; enzn = LOW; usin = 9; zsin = 99;} if(zahl == 25) {enup = LOW; enun = LOW; enzp = HIGH; enzn = LOW; usin = 0; zsin = 100;} if(zahl == 26) {enup = LOW; enun = LOW; enzp = HIGH; enzn = LOW; usin = 0; zsin = 100;} if(zahl == 27) {enup = HIGH; enun = LOW; enzp = HIGH; enzn = LOW; usin = 9; zsin = 99;} if(zahl == 28) {enup = HIGH; enun = LOW; enzp = HIGH; enzn = LOW; usin = 16; zsin = 99;} if(zahl == 29) {enup = HIGH; enun = LOW; enzp = HIGH; enzn = LOW; usin = 22; zsin = 98;} if(zahl == 30) {enup = HIGH; enun = LOW; enzp = HIGH; enzn = LOW; usin = 28; zsin = 96;} if(zahl == 31) {enup = HIGH; enun = LOW; enzp = HIGH; enzn = LOW; usin = 34; zsin = 94;} if(zahl == 32) {enup = HIGH; enun = LOW; enzp = HIGH; enzn = LOW; usin = 40; zsin = 92;} if(zahl == 33) {enup = HIGH; enun = LOW; enzp = HIGH; enzn = LOW; usin = 45; zsin = 89;} if(zahl == 34) {enup = HIGH; enun = LOW; enzp = HIGH; enzn = LOW; usin = 51; zsin = 86;} if(zahl == 35) {enup = HIGH; enun = LOW; enzp = HIGH; enzn = LOW; usin = 56; zsin = 83;} if(zahl == 36) {enup = HIGH; enun = LOW; enzp = HIGH; enzn = LOW; usin = 61; zsin = 79;} if(zahl == 37) {enup = HIGH; enun = LOW; enzp = HIGH; enzn = LOW; usin = 66; zsin = 75;} if(zahl == 38) {enup = HIGH; enun = LOW; enzp = HIGH; enzn = LOW; usin = 71; zsin = 71;} if(zahl == 39) {enup = HIGH; enun = LOW; enzp = HIGH; enzn = LOW; usin = 75; zsin = 66;} if(zahl == 40) {enup = HIGH; enun = LOW; enzp = HIGH; enzn = LOW; usin = 79; zsin = 61;} if(zahl == 41) {enup = HIGH; enun = LOW; enzp = HIGH; enzn = LOW; usin = 83; zsin = 56;} if(zahl == 42) {enup = HIGH; enun = LOW; enzp = HIGH; enzn = LOW; usin = 86; zsin = 51;} if(zahl == 43) {enup = HIGH; enun = LOW; enzp = HIGH; enzn = LOW; usin = 89; zsin = 45;} if(zahl == 44) {enup = HIGH; enun = LOW; enzp = HIGH; enzn = LOW; usin = 92; zsin = 40;} if(zahl == 45) {enup = HIGH; enun = LOW; enzp = HIGH; enzn = LOW; usin = 94; zsin = 34;} if(zahl == 46) {enup = HIGH; enun = LOW; enzp = HIGH; enzn = LOW; usin = 96; zsin = 28;} if(zahl == 47) {enup = HIGH; enun = LOW; enzp = HIGH; enzn = LOW; usin = 98; zsin = 22;} if(zahl == 48) {enup = HIGH; enun = LOW; enzp = HIGH; enzn = LOW; usin = 99; zsin = 16;} if(zahl == 49) {enup = HIGH; enun = LOW; enzp = HIGH; enzn = LOW; usin = 99; zsin = 9;} if(zahl == 50) {enup = HIGH; enun = LOW; enzp = LOW; enzn = LOW; usin = 100; zsin = 0;} if(zahl == 51) {enup = HIGH; enun = LOW; enzp = LOW; enzn = LOW; usin = 100; zsin = 0;} if(zahl == 52) {enup = HIGH; enun = LOW; enzp = LOW; enzn = HIGH; usin = 99; zsin = 9;} if(zahl == 53) {enup = HIGH; enun = LOW; enzp = LOW; enzn = HIGH; usin = 99; zsin = 16;} if(zahl == 54) {enup = HIGH; enun = LOW; enzp = LOW; enzn = HIGH; usin = 98; zsin = 22;} if(zahl == 55) {enup = HIGH; enun = LOW; enzp = LOW; enzn = HIGH; usin = 96; zsin = 28;} if(zahl == 56) {enup = HIGH; enun = LOW; enzp = LOW; enzn = HIGH; usin = 94; zsin = 34;} if(zahl == 57) {enup = HIGH; enun = LOW; enzp = LOW; enzn = HIGH; usin = 92; zsin = 40;} if(zahl == 58) {enup = HIGH; enun = LOW; enzp = LOW; enzn = HIGH; usin = 89; zsin = 45;} if(zahl == 59) {enup = HIGH; enun = LOW; enzp = LOW; enzn = HIGH; usin = 86; zsin = 51;} if(zahl == 60) {enup = HIGH; enun = LOW; enzp = LOW; enzn = HIGH; usin = 83; zsin = 56;} if(zahl == 61) {enup = HIGH; enun = LOW; enzp = LOW; enzn = HIGH; usin = 79; zsin = 61;} if(zahl == 62) {enup = HIGH; enun = LOW; enzp = LOW; enzn = HIGH; usin = 75; zsin = 66;} if(zahl == 63) {enup = HIGH; enun = LOW; enzp = LOW; enzn = HIGH; usin = 71; zsin = 71;} if(zahl == 64) {enup = HIGH; enun = LOW; enzp = LOW; enzn = HIGH; usin = 66; zsin = 75;} if(zahl == 65) {enup = HIGH; enun = LOW; enzp = LOW; enzn = HIGH; usin = 61; zsin = 79;} if(zahl == 66) {enup = HIGH; enun = LOW; enzp = LOW; enzn = HIGH; usin = 56; zsin = 83;} if(zahl == 67) {enup = HIGH; enun = LOW; enzp = LOW; enzn = HIGH; usin = 51; zsin = 86;} if(zahl == 68) {enup = HIGH; enun = LOW; enzp = LOW; enzn = HIGH; usin = 45; zsin = 89;} if(zahl == 69) {enup = HIGH; enun = LOW; enzp = LOW; enzn = HIGH; usin = 40; zsin = 92;} if(zahl == 70) {enup = HIGH; enun = LOW; enzp = LOW; enzn = HIGH; usin = 34; zsin = 94;} if(zahl == 71) {enup = HIGH; enun = LOW; enzp = LOW; enzn = HIGH; usin = 28; zsin = 96;} if(zahl == 72) {enup = HIGH; enun = LOW; enzp = LOW; enzn = HIGH; usin = 22; zsin = 98;} if(zahl == 73) {enup = HIGH; enun = LOW; enzp = LOW; enzn = HIGH; usin = 16; zsin = 99;} if(zahl == 74) {enup = HIGH; enun = LOW; enzp = LOW; enzn = HIGH; usin = 9; zsin = 99;} if(zahl == 75) {enup = LOW; enun = LOW; enzp = LOW; enzn = HIGH; usin = 0; zsin = 100;} if(zahl == 76) {enup = LOW; enun = LOW; enzp = LOW; enzn = HIGH; usin = 0; zsin = 100;} if(zahl == 77) {enup = LOW; enun = HIGH; enzp = LOW; enzn = HIGH; usin = 9; zsin = 99;} if(zahl == 78) {enup = LOW; enun = HIGH; enzp = LOW; enzn = HIGH; usin = 16; zsin = 99;} if(zahl == 79) {enup = LOW; enun = HIGH; enzp = LOW; enzn = HIGH; usin = 22; zsin = 98;} if(zahl == 80) {enup = LOW; enun = HIGH; enzp = LOW; enzn = HIGH; usin = 28; zsin = 96;} if(zahl == 81) {enup = LOW; enun = HIGH; enzp = LOW; enzn = HIGH; usin = 34; zsin = 94;} if(zahl == 82) {enup = LOW; enun = HIGH; enzp = LOW; enzn = HIGH; usin = 40; zsin = 92;} if(zahl == 83) {enup = LOW; enun = HIGH; enzp = LOW; enzn = HIGH; usin = 45; zsin = 89;} if(zahl == 84) {enup = LOW; enun = HIGH; enzp = LOW; enzn = HIGH; usin = 51; zsin = 86;} if(zahl == 85) {enup = LOW; enun = HIGH; enzp = LOW; enzn = HIGH; usin = 56; zsin = 83;} if(zahl == 86) {enup = LOW; enun = HIGH; enzp = LOW; enzn = HIGH; usin = 61; zsin = 79;} if(zahl == 87) {enup = LOW; enun = HIGH; enzp = LOW; enzn = HIGH; usin = 66; zsin = 75;} if(zahl == 88) {enup = LOW; enun = HIGH; enzp = LOW; enzn = HIGH; usin = 71; zsin = 71;} if(zahl == 89) {enup = LOW; enun = HIGH; enzp = LOW; enzn = HIGH; usin = 75; zsin = 66;} if(zahl == 90) {enup = LOW; enun = HIGH; enzp = LOW; enzn = HIGH; usin = 79; zsin = 61;} if(zahl == 91) {enup = LOW; enun = HIGH; enzp = LOW; enzn = HIGH; usin = 83; zsin = 56;} if(zahl == 92) {enup = LOW; enun = HIGH; enzp = LOW; enzn = HIGH; usin = 86; zsin = 51;} if(zahl == 93) {enup = LOW; enun = HIGH; enzp = LOW; enzn = HIGH; usin = 89; zsin = 45;} if(zahl == 94) {enup = LOW; enun = HIGH; enzp = LOW; enzn = HIGH; usin = 92; zsin = 40;} if(zahl == 95) {enup = LOW; enun = HIGH; enzp = LOW; enzn = HIGH; usin = 94; zsin = 34;} if(zahl == 96) {enup = LOW; enun = HIGH; enzp = LOW; enzn = HIGH; usin = 96; zsin = 28;} if(zahl == 97) {enup = LOW; enun = HIGH; enzp = LOW; enzn = HIGH; usin = 98; zsin = 22;} if(zahl == 98) {enup = LOW; enun = HIGH; enzp = LOW; enzn = HIGH; usin = 99; zsin = 16;} if(zahl == 99) {enup = LOW; enun = HIGH; enzp = LOW; enzn = HIGH; usin = 99; zsin = 9;} if(zahl == 100) {enup = LOW; enun = HIGH; enzp = LOW; enzn = LOW; usin = 100; zsin = 0;} } /* Inverter für Kondensatormotor Dekupiersäge dd3et D5,D6 sind 1KHz Pins. Die Zeitkonstante zwischen Potischleifer und Potischleiferpin bestimmt die Sanftanlauf- und Abbremszeit Hilfswicklung zspg = (uspg * 10 / 38); für GE-Motor in setup() und drehzahlspannung() anpassen, zspg = (uspg * 10 / 10); für Dekupiersäge. 4KHz PWM https://etechnophiles.com/change-frequency-pwm-pins-arduino-uno/ */