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
Gestern, 09:39 (Dieser Beitrag wurde zuletzt bearbeitet: Gestern 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
Gestern, 12:32
Beitrag #8
RE: PWM springt bei einem bestimmten Wert auf High
(Gestern 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
  Wert von einem Arduino zu einem zweiten Arduino senden Thorsten_S 9 162 Heute 14:48
Letzter Beitrag: Thorsten_S
  Servo in einem Bereich bewegen koksi_92 5 168 08.10.2019 11:28
Letzter Beitrag: MicroBahner
  Aktivierung nur in einer bestimmten Zeit Prospekteur 48 1.894 14.09.2019 12:57
Letzter Beitrag: MicroBahner
  Wenn pin high dann anderen pin kurz aktivieren Prospekteur 10 673 28.08.2019 14:13
Letzter Beitrag: Fips
  Mehrere HX711 mit einem Arduino Uno be14b029 8 4.030 16.03.2019 18:22
Letzter Beitrag: charlie883
  Steigenden und/oder Wert erkennen - wie macht man das? Gelegenheitsbastler 2 470 24.01.2019 11:52
Letzter Beitrag: Tommy56
  mBlock und Arduino IDE gleichzeitig auf einem PC? mgbig 4 540 14.01.2019 08:39
Letzter Beitrag: mgbig
  Variablen zu einem CHAR verbinden und einbinden Frank_aus_WOB 3 843 02.01.2019 09:07
Letzter Beitrag: Tommy56
  Funknetz mit vielen Sendern und einem Empfänger Hi72 18 1.650 20.12.2018 12:48
Letzter Beitrag: Hi72
  PWM Rampe + Impulszähler in einem Programm heini320 10 1.437 29.11.2018 18:31
Letzter Beitrag: heini320

Gehe zu:


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