www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Mit PWM motor ansteuern


Autor: Karl (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: tsaG (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welcher Controller? Schaltplan!

Autor: Karl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
tsaG schrieb:
> Welcher Controller? Schaltplan!

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

Autor: Torsten O. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Karl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Könntest du mir bitte ein bespiel dafür geben ....

Autor: Torsten O. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Karl (Gast)
Datum:

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

Autor: gtf (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 :-)

Autor: Karl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
gtf schrieb:
> Übrigens kann kein C :-)

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

Autor: Jobst M. (jobstens-de)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.