INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
PWM springt bei einem bestimmten Wert auf High
11.10.2019, 20:44 (Dieser Beitrag wurde zuletzt bearbeitet: 12.10.2019 00:19 von Bitklopfer.)
Beitrag #1
PWM springt bei einem bestimmten Wert auf High
Hallo,

für eines meiner kleinen Projekte verwende ich einen Arduino Nano 168 und benötige ein pulsweitenmoduliertes Ausgangssignal. Hierbei reichen mir die Standardausgaben (Frequenz 490/980Hz, Auflösung 255) allerdings nicht aus. Deshalb hab ich beispielsweise den Pin 9/10 auf 15600Hz und 1023 Auflösung gestellt. Jetzt hab ich aber das Problem, dass bei einem Ausgabewert von ca. 1,16 bis 1,18V PWM, der Ausgang immer auf volle 5V springt und in dem genannten Bereich dort permanent verweilt. Für Regelanwendung wäre das sehr unschön. Darüber und darunter wird wieder moduliert. Auch auf anderen PWM-Pin´s hab ich das gleiche Phänomen, unabhängig davon, welche Frequenz und Auflösung ich wähle, und ob ich einen analogen Eingang oder einen berechneten Wert auf den Ausgang gebe. Dies ist bei allen PWM-Ausgängen so. Bei der Standarteinstellung des Arduino tritt das Problem allerdings nicht auf. Auch Wechsel des Arduino oder anderer analoger Eingang brachte keine Änderung. Das analoge Eingangssignal springt nicht, ist also nicht verantwortlich . Bei einfach berechneten Werten ist das Problem wie schon erwähnt ja auch.
Bisher hab ich niergends etwas über diese Problem finden können. Vielleicht hat jemand eine Erklärung dafür und kann mir helfen.
Hier noch ein einfaches Sketch-Beispiel zum nachvollziehen.

Code:
void setup()
{
  TCCR1A = B00000011; //Auflösung 1023
  TCCR1B = B00001001; //Frequenz 15600Hz

  pinMode( 9 , OUTPUT);
}

void loop()
{
  analogWrite(9 , analogRead(0));
}

Vielen Dank im Voraus für alle hilfreichen Antworten.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.10.2019, 00:18
Beitrag #2
RE: PWM springt bei einem bestimmten Wert auf High
...vermute mal das eine PWM Frequenz von 15600Hz im Arduino nicht unterstützt wird, siehe die Code-Referenz.
lgbk

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.10.2019, 11:52
Beitrag #3
RE: PWM springt bei einem bestimmten Wert auf High
(12.10.2019 00:18)Bitklopfer schrieb:  ...vermute mal das eine PWM Frequenz von 15600Hz im Arduino nicht unterstützt wird, siehe die Code-Referenz.
lgbk

Es ist bei allen Frequenzen und Auflösungen die außerhalb der Standardeinstellung eingestellt werden. Und nur um den erwähnten Wert springt die PWM auf High-Pegel. Ansonsten funktioniert es.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.10.2019, 16:24
Beitrag #4
RE: PWM springt bei einem bestimmten Wert auf High
(12.10.2019 11:52)fingerpfeifer schrieb:  
(12.10.2019 00:18)Bitklopfer schrieb:  ...vermute mal das eine PWM Frequenz von 15600Hz im Arduino nicht unterstützt wird, siehe die Code-Referenz.
lgbk

Es ist bei allen Frequenzen und Auflösungen die außerhalb der Standardeinstellung eingestellt werden. Und nur um den erwähnten Wert springt die PWM auf High-Pegel. Ansonsten funktioniert es.

....dann weist ja an was das liegt...du bist außerhalbs der Arduino Vorgaben.

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.10.2019, 19:01
Beitrag #5
RE: PWM springt bei einem bestimmten Wert auf High
Kannst du das bitte etwas präzisieren. Welch Vorgaben genau meinst du?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.10.2019, 20:48
Beitrag #6
RE: PWM springt bei einem bestimmten Wert auf High
(12.10.2019 19:01)fingerpfeifer schrieb:  Kannst du das bitte etwas präzisieren. Welch Vorgaben genau meinst du?

kannsu über den Blauen Link Code-Referenz nachlesen... das ist der Arduino Master...

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
13.10.2019, 09:39 (Dieser Beitrag wurde zuletzt bearbeitet: 13.10.2019 09:41 von fingerpfeifer.)
Beitrag #7
RE: PWM springt bei einem bestimmten Wert auf High
(12.10.2019 20:48)Bitklopfer schrieb:  
(12.10.2019 19:01)fingerpfeifer schrieb:  Kannst du das bitte etwas präzisieren. Welch Vorgaben genau meinst du?

kannsu über den Blauen Link Code-Referenz nachlesen... das ist der Arduino Master...

Die Arduinos verfügen über weit mehr als nur die Standardeinstellung bei entsprechenden Einstellungen der Teiler-Register.
Bitklopfer, ich danke Dir für Deine Bemühungen mein Problem zu lösen, diese sind aber leider nicht zielführend.

Grüße
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
13.10.2019, 12:32
Beitrag #8
RE: PWM springt bei einem bestimmten Wert auf High
(13.10.2019 09:39)fingerpfeifer schrieb:  ...
Die Arduinos verfügen über weit mehr als nur die Standardeinstellung bei entsprechenden Einstellungen der Teiler-Register.
Bitklopfer, ich danke Dir für Deine Bemühungen mein Problem zu lösen, diese sind aber leider nicht zielführend.

Grüße

Das die Timerregister eines Atmel Chips mehr Einstellungen beherrschen ist nichts Neues - es stellt sich nur die Frage ob der Bootloader bzw. der eh schon laufende millis() und mikros() Timer damit zurechtkommt. Theoretisch müßte einer der Timer frei sein...bin mir aber nicht sicher. Wenn man aber einen Atmel Chip ohne Arduino IDE programmiert kann man die Timer auch mit allen Features nutzen.
lgbk

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Den Wert eines PWM Pins auslesen - was mache ich falsch? Gelegenheitsbastler 8 714 25.11.2019 10:49
Letzter Beitrag: MicroBahner
  SD-Karte Ersten und Letzten wert anzeigen Luis90 1 324 12.11.2019 12:23
Letzter Beitrag: Tommy56
Information Arduino Wert mit Drucktaster hochzählen und berechnen Pauli33_student 4 411 07.11.2019 21:35
Letzter Beitrag: Tommy56
  wie kann ich ausgangspins aus einem array steuern? uwe.z 4 458 04.11.2019 21:46
Letzter Beitrag: Holzauge
  Werte in Arduino mittels Drucktaster eingeben und mittels Formel Wert berechnen Pauli33_student 5 462 04.11.2019 13:20
Letzter Beitrag: Peter_hno3
  Wenn pin high dann anderen pin kurz aktivieren Prospekteur 16 1.616 15.10.2019 14:18
Letzter Beitrag: Tommy56
  Wert von einem Arduino zu einem zweiten Arduino senden Thorsten_S 9 1.186 14.10.2019 14:48
Letzter Beitrag: Thorsten_S
  Servo in einem Bereich bewegen koksi_92 5 594 08.10.2019 11:28
Letzter Beitrag: MicroBahner
  Aktivierung nur in einer bestimmten Zeit Prospekteur 48 3.119 14.09.2019 12:57
Letzter Beitrag: MicroBahner
  Mehrere HX711 mit einem Arduino Uno be14b029 8 5.039 16.03.2019 18:22
Letzter Beitrag: charlie883

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste