Forum: Mikrocontroller und Digitale Elektronik Mit PWM motor ansteuern


von Karl (Gast)


Lesenswert?

Hallo,

Also ich würd gern mit PWM einen Motor ansteuern....
Habe mir eine einfache H-brücke zusammen gebaut und die jeweiligen 
tranistoren an das PIN OC1A und OC1B angeschlossen.
Wenn ich mich nicht irre muss ich den Timer1 dementsprechend aktivieren 
und mein Problem ist, wenn ich ja den Timer1 aktiviere wird OC1A und 
OC1B aktiviert. Wie kann ich es so programmieren das immer nur einer von 
den PWM-Ausgängen aktiv ist?? Weil wenn ich beide gleichzeitg auf "1" 
habe wird ein Kurzschluss verursacht....

Hier sind beide Ausgänge aktiv oder??

void init(void)
{
  TCCR1A = (1<<WGM10) | (1<<WGM11) | (1<<COM1A1);
  TCCR1B = (1<<CS10);
  OCR1A = 0xFF0F;
  OCR1B = 0xFF0F;
}

Danke im Vorraus
lg Karl

von tsaG (Gast)


Lesenswert?

Welcher Controller? Schaltplan!

von Karl (Gast)


Lesenswert?

tsaG schrieb:
> Welcher Controller? Schaltplan!

atmega32 und schaltplan ist eine einfache H-brücke aus 4 NPN 
transistoren...

von Torsten O. (Gast)


Lesenswert?

Also wenn ich dich richtig verstanden habe, möchtest du den Motor in 
beide Richtungen drehen lassen - dafür die H-Brücke.

Den Kurzschluss verhinderst du, indem du die COM - Register für jede 
Richtung extra einstellst. Du darfst sie natürlich nicht gleichzeitig 
(als Beispiel) auf "Clear on Compare Match" setzen. Genau dann entsteht 
der Kurzschluss. Das heißt wenn du Linkslauf steuern möchtest das eine 
Register auf (als Beispiel) "Clear on Compare Match" und das andere auf 
"Normal Port Operation". Für den Rechtslauf dementsprechend umgekehrt.

Ich hoffe, dass ich helfen konnte.


lg Torsten

von Karl (Gast)


Lesenswert?

Könntest du mir bitte ein bespiel dafür geben ....

von Torsten O. (Gast)


Lesenswert?

Hm... ich versuche es mal.

Ich halte mich jetzt mal nicht an das Datenblatt!!!

Angenommen PA0 = OC1A (PWM-Signal Linkslauf)
           PA1 = OC1B (PWM-Signal Rechtslauf)
           PA2 = Durchschalttransistor Linkslauf
           PA3 = Durchschalttransistor Rechtslauf

Für den Linkslauf
-----------------

1. Schritt :  PA1 abschalten, also OC1B = "Normal Port Operation"
2. Schritt :  PA3 abschalten

Somit sind die Transistoren für den Rechtslauf abgeschaltet und der 
Stromfluss ist in eine einzige Richtung definiert.

3. Schritt :  PA2 einschalten
4. Schritt :  PA0 einschalten, also OC1A = "Clear on Compare Match"

Für den Rechtslauf musst du es eben andersherum machen.


lg Torsten

von Karl (Gast)


Lesenswert?

Klingt simple aber wie schalt ich OC1B auf "Normal Port Operation" bzw. 
OC1A?

von gtf (Gast)


Lesenswert?

Karl schrieb:
> Wie kann ich es so programmieren das immer nur einer von
> den PWM-Ausgängen aktiv ist??



PWM Ausgang OC1A abschalten:
 TCCR1A = (1<<WGM10) | (1<<WGM11) | (0<<COM1A1|0<<COM1A0)

PWM Ausgang OC1A einschalten:
 TCCR1A = (1<<WGM10) | (1<<WGM11) | (1<<COM1A1 | 0<<COM1A0)


PWM Ausgang OC1B abschalten:
 TCCR1A = (1<<WGM10) | (1<<WGM11) | (0<<COM1B1 | 0<<COM1B0)

PWM Ausgang OC1B einschalten:
 TCCR1A = (1<<WGM10) | (1<<WGM11) | (1<<COM1B1 | 0<<COM1B0)


Übrigens kann kein C :-)

von Karl (Gast)


Lesenswert?

gtf schrieb:
> Übrigens kann kein C :-)

ehm...wie soll ich dann wissen, ob das richtig ist, was du da 
geschrieben hast?

von Jobst M. (jobstens-de)


Angehängte Dateien:

Lesenswert?

Hier mal eine kleine Anregung.

Anmerkungen:

1. Es kann kein Kurzschluss durch fehlerhafte Ansteuerung entstehen.

2. Die unteren FETs werden nicht optimal angesteuert - evtl. also noch 
eine Treiberstufe erforderlich. Funktioniert aber auch so.

3. Bei einem Tastverhältnis von 50% steht der Motor.

4. Die Schaltung sollte nicht längere Zeit ohne Signal (PWM) sein, da 
irgendwann die Ladung im Bootstrap-Kondensator nachlässt und der obere 
Transistor hochohmig und somit heiß wird.

T: z.B. IRF720
D: z.B. 1N4007
C: z.B. 22uF 25V
R: ca. 1k

Die Betriebsspannung sollte die maximal zulässige Gate-Source-Spannung 
nicht überschreiten.


Gruß

Jobst

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.