1kHz PWM mit Arduino

Gast #2263103
Lesenswert?

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?
Gast #2263409
Lesenswert?

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 ?
Gast #2263449
Lesenswert?

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
}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren