Guten Tag, ich benutze im Moment ein Adruino Pro Mini Board für die Generierung einer PWM. Die von mir genutzte Funktion analogWrite() erzeugt eine PWM mit einer Frequenz von ca 490Hz. Nun brauche ich aber eine PWM mit einer Frequenz von 1kHz. Wie kann ich dies erreichen ? Kann es sein das die Ausgänge des Boards gar nicht schnell genug sind?
Nicht die Arduino API verwenden, die diese absolut alles per Software realisiert, sondern selber ein Programm in C, ASM oder Bascom programmieren. Siehe z.B. AVR-GCC-Tutorial.
Falls Wert auf die Arduino-Umgebung gelegt wird: http://www.arduino.cc/playground/Code/Timer1 Tassilo
Danke Tassilo Böhr, das genau das was ich suche.
1 | pwm(pin, duty, period) |
Um diese Funktion in einzubinden muss ich doch zunächt einmal die Zip-Datei herunterladen und ihren Inhalt unter "libraries" ablegen? Anschließend habe ich in meinem Programm noch unter "Sketch/Import Library" die neue Library hinzugefügt:
1 | #include <TimerOne.h> |
2 | #include <TimerThree.h> |
3 | |
4 | int PWMout = 9; // LED connected to digital pin 9 |
5 | int PWMsoll = A0; // Eingang Poti |
6 | int PWMsollValue = 0; // Value Poti |
7 | int t = 1000; // t in microseconds |
8 | |
9 | |
10 | void setup() {
|
11 | } |
12 | |
13 | |
14 | void loop() {
|
15 | // Einlesen des Potis (0-1023) |
16 | PWMsollValue = analogRead(PWMsoll); |
17 | |
18 | //analogWrite(PWMout,PWMoutValue); |
19 | pwm(PWMout, PWMsollValue, t); |
20 | } |
Will ich nun jedoch kompilieren bekomme ich die Fehlermeldung: "'pwm' was not declared in this scope" Was mache ich falsch ?
Ok habe den Fehler selber gefunden. So geht es:
1 | #include <TimerOne.h> |
2 | |
3 | int PWMout = 9; // LED connected to digital pin 9 |
4 | int PWMsoll = A0; // Eingang Poti |
5 | int PWMsollValue = 0; // Value Poti |
6 | int t = 1000; // t in microseconds |
7 | |
8 | |
9 | void setup() {
|
10 | } |
11 | |
12 | |
13 | void loop() {
|
14 | // Einlesen des Potis (0-1023) |
15 | PWMsollValue = analogRead(PWMsoll); |
16 | |
17 | //analogWrite(PWMout,PWMoutValue); |
18 | Timer1.pwm(PWMout, PWMsollValue, t); |
19 | } |
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.