www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PWM für 3 Motoren


Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo liebe Community...


Mitlerweile komme ich gut mit der Programmierung von ATMegas in AVR-GCC 
zurecht.

Doch da ich nun ein neues Projekt anstrebe kommen natürlich auch wieder 
viele Probleme.


Folgende Idee:
Ich möchte 3 Motoren für eine Lasershow mit PWM ansteuern. Die 
Geschwindigkeiten sollen per zufall sein für alle 3 Motoren. Natürlich 
sollen die Geschwindigkeiten der einzelnen Motoren unterschiedlich 
sein...
Diese sollen natürlich auch in einem Zeitabstand von 5 Sekunden oder so 
wechseln...


Ich hätte mir da gedacht, 3 der 4 PWM ausgänge eines ATMega 16 zu 
nehmen. Also OC0 OC1A und OC1B

Schaltung und so ist kein Problem aber dafür die Software.

Ich habe hier im Forum bereits viel über PWM gelesen und möchte jetzt 
erstmal klein Anfangen indem ich EINE Led an OC0 dimme.

Und hier komme ich schon nicht mehr weiter...

Könnte mir vielleicht mal jemand einen Code dafür schicken oder einen 
Link zu Programmbeispielen??

Komme nämlich im moment einfach nicht weiter

Grüße
Sebastian

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau mal hier,
da wird eine Motorregelung mit ATmega realisiert. Dort kann auch der 
Source Code heruntergeladen werden.

http://www.mikrokopter.com/ucwiki/

Stefan

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm das ist aber schon mal ganz schön kompliziert für den Anfang. Gibt es 
denn nich einfachere Codes oder eben Tutorials die besser sind als das 
PWM Tutorial hier im Forum?

Wäre echt toll wenn mir da jemand weiterhelfen könnte :)


Grüße
Sebastian

Autor: Matthias Lipinsky (lippy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Hm das ist aber schon mal ganz schön kompliziert für den Anfang. Gibt es
>denn nich einfachere Codes oder eben Tutorials die besser sind als das
>PWM Tutorial hier im Forum?

Vielleicht ist die Aufgabe zu kompliziert für den Anfang? Vielleicht 
solltest du mit einer blinkenden LED anfangen??



Tutorials dienen dazu, dem Einsteiger Hilfe beim Erlernen eines 
Sachverhaltes zu geben.

Zum Verständnis: Programmieren bedeutet nicht, irgendwelche 
Codeschnipsel zusammenzukopieren!

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hab ja geschrieben dass ich erstmal eine LED dimmen möchte :)

LEDs Blinken lassen ist kein Problem... genauso wenig wie UART, LCDs 
ansteuern usw...


Nur mit PWM komm ich gar net zurecht... Deswegen such ich nach einem 
Verständlichen tutorial :)

Grüße
Sebastian

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Software PWM hab ich mittlerweile hinbekommen aber immer noch nicht das 
mit der Hardware...

Keiner hier der weiß wo es ein gutes Tutorial gibt?


Grüße
Sebastian

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bitte Helft mir ...

Ich hab zwar das Programm schon mit Software PWM aber das ist ewig lang 
und ich würde lieber die Hardware PWMs nutzen :)

Aber ich finde einfach keine Tutorials darüber die verständlich sind...


Grüße
Sebastian

Autor: 123 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Teplotaxl X. (t3plot4x1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aus dem Tut zusammengestellt
ggf. Anpassen
TCCR1A = (1<<WGM11)|(1<<WGM10)|(1<<COM1A1);
TCCR1B = (1<<CS10);
OCR1A = 32;  

PS: Der betreffende Port muss natürlich noch als Ausgang konfiguriert 
werden.

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich danke euch vielmals, dafür dass ihr euch die mühe gemacht habt :)

Hab auch was in nem anderen Forum gefunden dass auch sehr hilfreich ist.
Ich denke mithilfe des Datenblattes dürfte es nun kein Problem mehr 
sein.


Danke euch vielmals :)

Ich schreib hier nochmal den Code für eine LED dimmen sobald ich das 
fertig habe.

DAnke nochmal

Grüße
Sebastian

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wenn ich das jetzt richtig verstanden habe hat der Code folgende 
eigenschaften:

(ich trenn das ganze ein wenig auf)
Korrigiert mich bitte wenn ein Fehler drin ist:


TCCR1A (welcher PWM ausgang also OC1A OC1B OC0 oder OC2)

(1<<WGM11)|(1<<WGM10) (die Auflösung... Also hier 10 Bit -> obergrenze 
ist 1023)

(1<<COM1A1) (Anschalten des Timers)

TCCR1B = (1<<CS10); (quelle des Timers... in dem Fall CPU Takt)


OCR1A = 32; (Ausgabe des Wertes 32 an dem Pin also ca. 0,15 V ??)


Wenn ich jetzt noch den OC1B aktivieren will muss ich nur noch

OCR1A = 32;

eingeben da die ja mit dem selben Timer laufen oder??


Hab ich das richtig verstanden?

Grüße
Sebastian

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
oh verschrieben

ich meinte

OCR1B = 32; zum ausgeben von 0,15 V an OC1B

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stimmt das Grundprinzip so?

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
okay also funktionieren tut der Code schonmal...


So als Frage nebenbei:

Gibt es in AVR GCC eine funktion für eine Random Zahl

(z.B Randomzahl aus 255)??


Grüße
Sebastian

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
k hat sich erledigt

-> anderer Beitrag


Kann geschlossen werden


Grüße
Sebastian

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.