Forum: Mikrocontroller und Digitale Elektronik Arduino 2560 PWM Frequenz ändern auf 100Hz


von student (Gast)


Lesenswert?

Hallo,

mit meinem Arduino 2560 möchte ich über Labview 4 PWM signale steuern.
Was ich auch soweit hinbekommen habe. nur möchte ich jetzt die Freuguenz 
der einzelnen Pins änder... Pin 12,10,9 und 3.
Nach dem laden der LIFA Base Datei(die von Arduino vorgegeben ist) kann 
ich nun Labview mit dem arduino verbinden.

dDie Frequenz ist durch ein Unterdatei "AFMotor" gegebn. Pin 12 hat 
480Hz und Pin 3 980 Hz, ich möchte das alle 100Hz haben.

Wie kann ich das änder?

mfg
student

von Philipp H. (hansimglueck2)


Lesenswert?

Schaust du hier :

http://playground.arduino.cc/Code/PwmFrequency#.Uyto2_l5OsQ

aber mit der änderung ändern sich auch die timer zeiten...

von Mike (Gast)


Lesenswert?

student schrieb:
> Die Frequenz ist durch ein Unterdatei "AFMotor" gegebn.

Dann musst du sie dort wohl auch ändert.

von student (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

danke für die Antworten besonders an Herr Hunger.

Ich habe mal im Anhang ein Paar daten... um zu verdeutlichen wo ich dran 
bin.

Also nochmal: ich kann mit Schiebern die PWM Signale mit labview 
steuern, aber ich kann über Labview nicht die Frequenzen ändern!

Ich möchte an Pin 12, 10, 9 und 3 100Hz haben.
Vielleicht steigt ja einer von euch da durch wie man das macht.

MfG

von EGS (Gast)


Lesenswert?

Hallo Student,

also in der Datei "AFMotorcpp.txt" finden sich folgende Zeilen:

"/******************************************
               MOTORS
******************************************/
inline void initPWM1(uint8_t freq) {
#if defined(_AVR_ATmega8_) || \
    defined(_AVR_ATmega48_) || \
    defined(_AVR_ATmega88_) || \
    defined(_AVR_ATmega168_) || \
    defined(_AVR_ATmega328P_)
    // use PWM from timer2A on PB3 (Arduino pin #11)
    TCCR2A |= _BV(COM2A1) | _BV(WGM20) | _BV(WGM21); // fast PWM, turn 
on oc2a
    TCCR2B = freq & 0x7;
    OCR2A = 0;
#elif defined(_AVR_ATmega1280_) || defined(_AVR_ATmega2560_)
    // on arduino mega, pin 11 is now PB5 (OC1A)
    TCCR1A |= _BV(COM1A1) | _BV(WGM10); // fast PWM, turn on oc1a
    TCCR1B = (freq & 0x7) | _BV(WGM12);
    OCR1A = 0;
#else
   #error "This chip is not supported!"
#endif
    pinMode(11, OUTPUT);
}
..."

Sieht mir mächtig danach aus, als ob man hier sagen kann welche 
PWM-Frequenz des Arduinos an welchem Portpin benutzt werden soll. Das 
ganze noch abhängig vom benutzen µC+Frequenz des XTALs.


MfG EGS

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
Noch kein Account? Hier anmelden.