Hallo wer kann mir einen Tipp geben, wie ich eine Spannungsabhängige PWM hinkriege. Beispiel: PIC16F876, am ADC kommt die Spannung von 0-5 Volt an, Steuerung eines PWM mit 300 Hz bis 1.2 kHz. Im Dateianhang ist ein ASM-File bei dem nur das Tastverhältniss je nach Spannung verändert wird. Hat jemand einen Tipp? (Bin Anfänger und lerne noch heftigst, mein Schädel raucht schon, mein PIC noch nicht:-)) Gruß Markus
Eine PWM hält die Frequenz konstant und ändert nur das Tastverhältnis, kann also nicht gehen. Du must die Reload-Funktion des Timers nehmen. Von PICs habe ich keine Ahnung, ich würds mit nem ATTiny26 machen. Ich würds in C schreiben, damit man es Frequenz linear entzerren kann. Peter
Hallo danke für die Antwort. Schade ich habe bis jetzt nur mit PIC´s experimentiert. Gibt es prinzipiell eine andere Möglichkeit einen fließenden Ton von 300 Hz bis 1.2 kHz abhängig von der Spannung am ADC zu erzeugen? Das ganze auch noch mit einem Pic. Markus
Wie gesagt, Du must die Auto-Reload Funktion auswählen. Beim AVR nennt sich das "Clear On Compare Match". Etwas tricky ist es aber eine konstante Frequenzschrittweite einzustellen, da man ja die Periodendauer ändert. Am einfachsten ist das mit einer Tabelle, die für jeden ADC-Wert den entsprechenden Reloadwert enthält (z.B. mit Excel ausrechnen lassen und einfügen). Peter
Hallo @Markus läuft dein Programm auch auf einem ATmega8? bzw kann ich es einfach umschreiben für den mega? Gruss Michael
Hallo @Michael ich weis nicht ob es so auf einem ATmega8 läuft. Sicher kannst das Programm umschreiben. Wie gesagt ich habe gerade angefangen und mich bis jezt nur mit PIC´s beschäftigt. Gruß Markus
Hallo, habe ein ähnliches Problem, gibt es eine fertige Funktion in C, die ein PWM-Modul simuliert? Ich wollte gern 3 LED´s dimmen und das am besten mit dem pic12f675, der hat kein pwm, aber es sollte doch auch so gehen. Da ich leider kein Programmierexperte bin, wäre es schon praktisch, wenn sowas gäb, der man z.B. nur das Verhältnis und Frequenz übergeben würde. gruß peter
Hallo Peter Die LED's per PWM dimmen ist okay, wenn die Spannung gleich bleibt. Dann mußt Du einen Zähler Programmieren, der entweder immer von 0 nach oben Zählt und von vorn oder hin und her Zwischen 0 und Wert X. Dann nimmst Du deinen Wert Y denn du nach jedem Zählschritt mit dem Wert der Zählers vergleichst und bei Übereinstümmung (>= bzw. <=) Pin Z setzen bzw. löschen. Über den Wert Y veränderst Du das Tastverhältnis und über X die Periodenlänge und Auflösung. So macht es der PWM im Tiny und anderen Atmels.
@Peter: Bei der PWM-Ansteuerung der LEDs musst Du beachten, dass Helligkeitseindruck und PWM-Verhältnis nicht linear sind. Beispiel: Um 10% Helligkeitseindruck zu erhalten, brauchst Du nur 1% PWM-On-Zeit. Das Verhältnis ist ungefähr quadratisch. Stefan
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.