Hey Hannes,
danke für die Hilfe.
Bei mir wird 0 und 100 % geschaltet, aber beim PWM 1-99% macht er irgendwie nichts.
Stelle ich den Ausgang so richtig auf PWM um ?
Code:
void writePwm(float _percent)
{
if (_percent == 0)
{
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, HIGH);
}
else if (_percent == 100)
{
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, LOW); // Setzt den Digitalpin 13 auf HIGH = "Ein"
}
else if (_percent > 0 && _percent < 100)
{
//Ausgang auf PWM stellen, Vorgabewert in OCR1A schreiben (1...414)
pinMode(ledPin, OUTPUT); // Set digital pin to an output
TCCR1A = _BV(COM1A1) | _BV(COM1A0) | _BV(WGM11); // Enable the PWM output OC1A on digital pins and invert output
TCCR1B = _BV(WGM13) | _BV(WGM12) | _BV(CS12); // Set fast PWM and prescaler of 256 on timer 1
ICR1 = 415; // Set the PWM frequency to 150Hz: 16MHz/(256 * 150Hz) - 1 => (16000000/38400)-1 => 416,667 -1 => 415,667 => 415
OCR1A = (415 / 100) * _percent;
}
}
Lesezeichen