So ich habe einen eigene Funktion geschrieben mit der ich eine PWM Basisfrequenz bis ca 50Hz treiben kann mit einer Variablen ontime und
das an jedem Digital Out der Code sieht folgendermassen aus
unsigned long pmicros;
int nextCall=HIGH;
void setup(){
pinMode(13,OUTPUT);
}
void loop(){
Low_PWM(13,30,75); //erster Wert AusgangsPin,Base Frequenz,Ontime 0-100%
}
void Low_PWM(int Pin, int Fre, int Value){
long time;
long ontime;
time=1000000/Fre;
ontime=time/100*Value;
if (micros() - pmicros > time && nextCall==HIGH) {
digitalWrite(Pin,HIGH);
pmicros=micros();
nextCall=LOW;
}
if (micros() - pmicros > ontime&& nextCall==LOW){
digitalWrite(Pin,LOW);
nextCall=HIGH;
}
}
Vielleicht hilft das jemandem weiter bzw kann das gebrauchen