DC-Motoransteuerung per PC

Alle allgemeinen Themen zu Elektronik und Elektro

Alle allgemeinen Themen zu Elektronik und Elektro

Moderator: Moderatorengruppe

DC-Motoransteuerung per PC

Neuer Beitragvon Thom am Freitag 15. August 2008, 18:48

Hallo liebe Elektronik-Gemeinde,

ich habe leider noch gar keine Erfahrung mit Elektronik, abgesehen von ein paar privaten Projekten die ich aber komplett nach Anleitung zusammengelötet hab, deswegen kanns sein dass die Antwort auf meine Fragen total offensichtlich sind.
Es geht um folgendes: Ich möchte einen (im Endeffekt drei, aber einer reicht erstmal) kleinen Gleichstrom-Motor über einen PC anzusteuern. Die Motoren sind sehr simpel, also ein Kabel rein, eins raus... Eingangsspannung der Motoren je 12V, maximal 100mA Stromstärke. Gibts da ne einfache Möglichkeit? Die Anforderungen sind minimal: Wahl zwischen +12V, 0V, -12V, vielleicht auch kontinuierlich dazischen rumregeln, das wars. Das Ganze sollte dann per usb oder pci oder nem anderen Standardanschluss ansprechbar sein.
Also, hat da jemand ne Idee? Vielen Dank schonmal, ciao
Thomas

PS. Für jeden Motor gibts auch noch zwei Schalter, die jeweils betätigt werden, wenn er komplett nach vorne oder hinten ausgefahren ist - gibts da ne Möglichkeit, die Ansteuerung in eine Richtung zu verbieten, wenn einer der Schalter gedrückt ist?
Thom
Threadstarter
33653
Junior Mitglied
 
Beiträge: 20
Registriert: Freitag 15. August 2008, 18:45

Re: DC-Motoransteuerung per PC

Neuer Beitragvon anders am Freitag 15. August 2008, 19:12

Für jeden Motor gibts auch noch zwei Schalter, die jeweils betätigt werden, wenn er komplett nach vorne oder hinten ausgefahren ist - gibts da ne Möglichkeit, die Ansteuerung in eine Richtung zu verbieten, wenn einer der Schalter gedrückt ist?
Wenn diese Endschalter beim Betätigen öffnen, ist das ganz leicht:
Du schaltest die beiden Enschalter und den Motor hintereinander und überbrückst den Kontakt eines jeden Endschalters mit einer Diode, die du so polst, dass der Motor auch bei geöffnetem Schalter, aber dann natürlich nur in der Gegenrichtung, anlaufen kann.

Der Rest, Verwendung der Leitungen des PC-Druckerports, ist schon tausendmal beschrieben, das muss ich nicht wiederholen. Stichwort "H-Brücke".
anders
33654
Moderator
 
Beiträge: 4686
Registriert: Freitag 28. Februar 2003, 13:46

Re: DC-Motoransteuerung per PC

Neuer Beitragvon gerold am Freitag 15. August 2008, 20:24

Thom hat geschrieben:ich habe leider noch gar keine Erfahrung mit Elektronik
[...]
Ich möchte einen (im Endeffekt drei, aber einer reicht erstmal) kleinen Gleichstrom-Motor über einen PC anzusteuern.

Hallo Thom!

Ich versorge dich erst mal mit ein paar Links:
- http://www.strippenstrolch.de/1-4-6-polwender-1.html
- http://www.strippenstrolch.de/1-4-7-polwender-2.html
- http://www.strippenstrolch.de/1-4-8-polwender-3.html
- http://www.strippenstrolch.de/1-2-9-mot ... r-298.html
- http://www.strippenstrolch.de/1-3-13-pw ... ation.html

Und bei diesem Link ist der ganze Thread interessant für dich:
http://www.python-forum.de/topic-13792.html

Und dann gibt es noch die Möglichkeit, den Parallelport zum Steuern zu verwenden. Das ist aber nicht mehr zeitgemäß, da der Parallelport langsam ausstirbt. Aber wenn du so einen Parallelport hast, dann ist das eine billige Möglichkeit. Man muss aber auch mit Problemen rechnen, denn es kann das Betriebssystem und auch das Motherboard dazwischenfunken.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
33657
Bronze Mitglied
 
Beiträge: 127
Registriert: Montag 30. Juli 2007, 11:19
Wohnort: Oberhofen im Inntal (Tirol)
Postleitzahl: 6410
Land: Austria / Österreich

Re: DC-Motoransteuerung per PC

Neuer Beitragvon Thom am Samstag 16. August 2008, 12:34

Wow, danke für die Hilfe. Also das mit den Dioden ist schonmal prima, das werd ich genau so machen.

Die links hab ich mir alle durchgelesen, war sehr aufschlussreich, aber ich bin trotzdem etwas durcheinander, was aber meistens so ist wenn ich mich in ein komplett neues Gebiet wage.
Also ich würde diese Schaltung hier benutzen: http://www.skilltronics.de/versuch/elek ... 93_pwm.gif .
Jetzt ist halt die Frage, was tu ich zB für Motor 1 auf "M1a" "M1b" und "M1 PWM 1-0"?
M1a und M1b werden wohl direkt die Signale vom seriellen Port sein.. oder muss ich die vorher auf 5 raufregeln oder sowas?
Und wie generier ich die PWM? Muss ich dafür nen eigenen Mikrochip programmieren, also auch dieses ~70€ Programmierinterface kaufen? Oder gehts einfacher?

Ich hab grad gelesen dass ein LPT port 8 ansteuerbare bits hat. Das ist ein bißchen wenig, da ich langfristig wahrscheinlich noch mehr (bis zu 11) Motoren ansteuern will (von denen aber nie mehr als 3 gleichzeitig laufen werden, vermutlich nichmal 2 gleichzeitig). Was mach ich da am besten? Ich könnte mit nem usb hub beliebig viele usb-lpt adapter anschließen, aber das klingt nich so empfehlenswert...

Danke nochmal, ciao
Thomas
Sie haben keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Thom
Threadstarter
33665
Junior Mitglied
 
Beiträge: 20
Registriert: Freitag 15. August 2008, 18:45

Re: DC-Motoransteuerung per PC

Neuer Beitragvon triti am Samstag 16. August 2008, 14:31

Hi,
>>.......könnte mit nem usb hub beliebig viele usb-lpt adapter...
Vergiss es.

Viele Motoren ansteuern? 11?
8 mit dem LPT und 3 mit COM, geht also.

Besser:
Da brauchst Du ein Schieberegister Cmos 4094. Gibts auch bei Skilltronic unter "Elektronik am PC / Ausgangserweiterung". So kannst du einfach einzelne Ausgänge "aktiv setzen", auch in Kombination. Lies dir das dort mal durch.

Mit den Ausgängen gehst du über einen kleinen Transistor auf Relais (selbstgebaute Relaiskarte, soviele Relais wie du halt brauchst, weil du mehrere 4094 hintereinander schalten kannst und damit theoretisch unendlich viele Ausgänge hast. Bei den Relais nicht vergessen, eine Freilaufdiode mit einzubauen!)

Ich mach die Ausgangserweiterung über den LPT mit 4094 und die Eingangserweiterung mit dem COM und einem IC 4021.

Mit Abstand am einfachsten geht das Schalten unter DOS mit QBasic. Runterladen von http://www.qbasic.de
Also reicht jeder uralte Rechner (133MHz und so), kriegst du normalerweise geschenkt, ich verwende solche schon lange für Steuerungen. Hat auch den Vorteil, dass reines DOS nicht abstürzt wie Windows.

Allerdings musst du ein bisschen QBasic-programmieren lernen, ohne das gehts nicht.

PWM kriegst du am einfachsten und billigsten mit einem Picaxe-08M. Auch basic-programmierbar. Besorg dir das entsprechende Starter-Set.
http://www.roboter-teile.de/Shop/themes ... gorieid=19

Du kannst auch den Mikrokontroller und den PC miteinander verbinden und so Daten austauschen bzw. den MC einstellen. Dafür musst du aber schon etwas Hirnschmalz reinstecken :-)

lg
Triti
triti
33668
Bronze Mitglied
 
Beiträge: 66
Registriert: Sonntag 17. Februar 2008, 13:59

Re: DC-Motoransteuerung per PC

Neuer Beitragvon gerold am Samstag 16. August 2008, 16:34

Thom hat geschrieben:Ich hab grad gelesen dass ein LPT port 8 ansteuerbare bits hat. Das ist ein bißchen wenig, da ich langfristig wahrscheinlich noch mehr (bis zu 11) Motoren ansteuern will

Hallo Thomas!

Ich bastle gerade an einer Anleitung, wie man mit einem oder mehreren ATtiny13-Mikrocontrollern einen oder mehrere Gleichstrommotoren geschwindigkeitsgeregelt vor und zurück laufen lassen kann. Das Ganze soll dann über den Computer mit einem "Seriellen Port" (COM) gesteuert werden können. Man kann auch einen USB-COM-Adapter verwenden.

Das Ganze soll eine einfache Einführung in die Welt der AVR-Mikrocontroller werden. Das Projekt soll billig sein, damit es sich jeder leisten kann. Dann soll es wie ein Baukasten aufgebaut sein, damit man später mehrere und auch stärkere Motoren anschließen kann. Vom Programm vorgesehen sind bis zu 99 Motoren.

Nachteil: Dieses Projekt wird sich Tage, wenn nicht sogar ein bis zwei Wochen ziehen, denn ich habe erst zu schreiben angefangen. Das Programm für den ATtiny13 ist schon fertig, aber jetzt muss alles anfängergerecht dokumentiert bzw. aufgearbeitet werden. Stromversorgung, PWM, H-Brücke, Computerprogramm,... Dann müssen noch Bilder gemach und Schaltpläne gezeichnet werden.

Aber wenn dir das egal ist und du etwas lernen möchtest... hier ist schon mal der Link zur Projektseite: http://halvar.at/elektronik/motorsteuer ... _attiny13/

Und falls du dich bereits für Mikrocontroller interessierst, dann kannst du in der Zwischenzeit ja auch noch hier reinschmökern: http://halvar.at/elektronik/kleiner_bascom_avr_kurs/ ;-)

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
33669
Bronze Mitglied
 
Beiträge: 127
Registriert: Montag 30. Juli 2007, 11:19
Wohnort: Oberhofen im Inntal (Tirol)
Postleitzahl: 6410
Land: Austria / Österreich

Re: DC-Motoransteuerung per PC

Neuer Beitragvon Thom am Dienstag 19. August 2008, 15:28

So hallo nochmal.. ich hab mich inzwischen ein wenig informiert (#robotornetz.de auf irc.euirc.net) und bin nun recht sicher wie ich das alles angehen will. Also ich werd das atmel evalutations-board 2.0.1 benutzen um nen atmega32 zu programmieren und zu steuern (per serieller Verbidundung, rs232). Der Atmega32 hat 32 I/O ports, dann nehme ich erstmal einen für die hardware PWM, die wird dann an alle L293D weitergeleitet, und pro motor je zwei ports für die Richtung. (Einer würde an sich ja reichen, damit die Information "vor" oder "zurück" durchgegeben werden kann, aber ich möchte auch die Möglichkeit haben, den Motor kurzzuschließen um ihn ganz zu stoppen).
Insgesamt brauche ich also nur ein Netzteil für die Motoren, das atmel board, einen µc, sechs L293D und ein serielles kabel, das sollte tatsächlich für alles reichen. Und halt Litze und Lötzinn und sowas.
Und gerold, ich geh grade deinen bascom Kurs auf halvar.at durch, der ist sehr hilfreich, vielen Dank. Ich werd bestimmt bei Gelegenheit hier nochmal ne Frage stellen...
Eine Sache die mir zB grade durch den Kopf geht (hat nix mit dem µc zu tun): ich will die Motoren ja mit maximal 12V versorgen. Wenn ich jetzt aber den Strom vom 12V Netzteil über zwei Dioden (wegen der Endabtaster) laufen lasse, verliere ich ja 2*0.7V = 1.4V... zusätzlich habe ich gelesen, dass man mit ner PWM nur nen Bereich von 5-95% Pulsbreite abdecken kann, auf 12V gerechnet kann ich dann nur 0.6V - 11.4V auf den Motor geben. Abzülgich der 1.4V von oben sind das nur noch 10V, das ist dann schon ein merklicher unterschied finde ich. Seh ich das richtig dass ich dann am besten ein 14V Netzteil nehme/bastle damit ich am Motor bis zu etwa 12V erhalte?

Daumen hoch, ciao

Thomas
Thom
Threadstarter
33695
Junior Mitglied
 
Beiträge: 20
Registriert: Freitag 15. August 2008, 18:45

Re: DC-Motoransteuerung per PC

Neuer Beitragvon gerold am Dienstag 19. August 2008, 16:32

Hallo Thom!
Thom hat geschrieben:Wenn ich jetzt aber den Strom vom 12V Netzteil über zwei Dioden (wegen der Endabtaster) laufen lasse, verliere ich ja 2*0.7V = 1.4V...

Ja, bei jeder Diode verlierst du 0,7 V. Aber was ist ein Endabtaster?

Thom hat geschrieben:PWM nur nen Bereich von 5-95% Pulsbreite abdecken kann

Wenn du im ATmega die Pulsweite auf 0 setzt, dann kommst nichts aus dem PWM-Pin raus. Setzt du die Pulsweite auf den höchsten Wert, dann wird die Spannung ohne Unterbrechung am PWM-Pin angelegt. Wenn du Bascom benutzt, dann wird standardmäßig der "Phase Correct PWM Mode" verwendet. Damit hast du den Bereich von 0-100% voll abgedeckt.

Außerdem wird bei einem kleinen PWM-Wert nicht einfach weniger Spannung am PWM-Pin ausgegeben, sondern immer die volle Spannung. Nur die Impulse sind kürzer. Du musst also darauf achten, wieviel der Motor verträgt. Da bei höchster Einstellung durchgehend die volle Spannung anliegt.

Thom hat geschrieben:Seh ich das richtig dass ich dann am besten ein 14V Netzteil nehme/bastle damit ich am Motor bis zu etwa 12V erhalte?

Jeder Transistor und jede Diode, die zwischen dem Motor und der Spannungsquelle liegt, nimmt etwas von der Spannung. Du kannst sie also ohne Bedenken so weit erhöhen, dass am Motor später wieder 12 Volt anliegen. Wie hoch die Spannung der Spannungsquelle wirklich sein muss, hängt direkt von deiner Schaltung ab.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
33696
Bronze Mitglied
 
Beiträge: 127
Registriert: Montag 30. Juli 2007, 11:19
Wohnort: Oberhofen im Inntal (Tirol)
Postleitzahl: 6410
Land: Austria / Österreich

Re: DC-Motoransteuerung per PC

Neuer Beitragvon Thom am Dienstag 19. August 2008, 17:30

Ah alles klar. Ich frag mich nur wie ich auf die Nummer mit den 5-95% gekommen bin, aber was solls.
Also mit Endabtaster meine ich die beiden Schalter, die gedrückt werden, wenn so ein Motor am Ende seines Fahrweges angekommen ist. Die überbrück ich halt mit je einer Diode, wie "anders" ganz oben vorgeschlagen hat.
Und das mit der PWM-"Technik" ist mir klar.. also die Rechteckspannung ausm µc hat immer 5V Amplitude und bei konstanter Schwingungsdauer eben eine variable Pulsbreite. Bei mir ist das jetzt aber so dass die 5V Pulse (oder bei ner PWM von 1 eben die 5V DC) eh nicht am Motor ankommen, sondern in die L293D geleitet werden; und der gibt dann ne Spannung von PWM*12V an den Motor weiter (der halt für 12V ausgelegt ist).

Hm und ich hab ja die Wahl zwischen hardware udn software PWM, also ob ich einen der drei "OC*" pin aufm atmega32 nehme, die für die PWM vorgesehen sind oder ob ich meinen eigenen PWM-Algorithmus auf irgendeinem anderen PIN schreibe. Wird das von der Prozessorleistung gehen, für 11 Motoren gleichzeitig (wär absoutes maximum) eine software PWM zu berechnen und auszugeben? Wenn nicht, ginge das vielleicht unter C statt unter bascom?
Wenns mit den 11 Motoren nicht geht, was wär so das Maximum? Gehen 3 Software PWM gleichzeitig? 3 würden für meine Zwecke eigentlich komplett reichen...
Ich stelle die Frage, da ich noch nicht 100% sicher bin, ob ich halt eine Hardware-PWM für alle Motoren benutze, oder pro Motor eine Software PWM. Wenn die PWM tatsächlich bei 0 startet und nich bei 5%, kann ich eigentlich auf eins von beiden Richtungs-bits verzichten, da ich dann den Motor zum Stoppen nicht mehr kurzschließen muss sondern immer eine Richtung anliegen lassen kann, zum Stillstand halt mit ner PWM von 0. Dann kann ich also pro Motor einen I/O pin nehmen für die PWM und einen für die Richtung.. und da das L293D ja trotzdem zwei richtungsbit benötigt ( http://www.skilltronics.de/versuch/elek ... /l293.html ), kann ich für das zweite bit ja per transistor und Widerstand ein NICHT-Gatter schalten. Das zweite bit muss zum links/rechts steuern ja immer das invertierte vom ersten bit sein, und zum kurzschließen eine kopie vom ersten bit.
Hm hoffentlich ist das einigermaßen verständlich. Also vor allem wollt ich wissen: kann ein atmega32 drei software PWM (== auf nem beliebigen I/O port) gleichzeitig berechnen?

Ciaosen
Thomas
Thom
Threadstarter
33697
Junior Mitglied
 
Beiträge: 20
Registriert: Freitag 15. August 2008, 18:45

Re: DC-Motoransteuerung per PC

Neuer Beitragvon gerold am Dienstag 19. August 2008, 19:26

Hallo Thom!
Thom hat geschrieben:Wird das von der Prozessorleistung gehen, für 11 Motoren gleichzeitig (wär absoutes maximum) eine software PWM zu berechnen und auszugeben? Wenn nicht, ginge das vielleicht unter C statt unter bascom?

Software-PWM ist OK um z.B. LEDs anzusteuern. Und man kann schon einige eigenständige PWM-Kanäle damit realisieren. Und es macht keinen Unterschied, ob mit Bascom oder mit C. Allerdings ist die Qualität (Gleichmäßigkeit) und die Frequenz des PWM bei Hardware-PWM besser. Und zum Ansteuern von Motoren sollte die Frequenz über 1000 Hz sein. Das ist auch der Grund, weshalb ich mit dieser Projektbeschreibung http://halvar.at/elektronik/motorsteuer ... _attiny13/ angefangen habe. Sie ist noch nicht fertig, aber es kommt täglich was dazu. Der Vorteil ist dass jeder ATtiny13 nur einen Motor ansteuern muss und dafür die Hardware-PWM verwendet werden kann. So ein ATtiny13 kostet 80 Cent (z.B. bei Kessler-Electronic). Das Erweitern um weitere Motoren ist also keine große Sache.

Software-PWM:
- http://www.roboternetz.de/phpBB2/zeigeb ... ftware+pwm
- http://www.roboternetz.de/phpBB2/zeigeb ... 685#357685

Thom hat geschrieben:Also vor allem wollt ich wissen: kann ein atmega32 drei software PWM (== auf nem beliebigen I/O port) gleichzeitig berechnen?

Der ATmega32 hat vier eingebaute Hardware-PWM. :-)

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
33698
Bronze Mitglied
 
Beiträge: 127
Registriert: Montag 30. Juli 2007, 11:19
Wohnort: Oberhofen im Inntal (Tirol)
Postleitzahl: 6410
Land: Austria / Österreich

Re: DC-Motoransteuerung per PC

Neuer Beitragvon gerold am Dienstag 19. August 2008, 19:44

gerold hat geschrieben:Der ATmega32 hat vier eingebaute Hardware-PWM.

PS:

Hallo Thom!

Der ATtiny2313 hat ebenfalls vier PWM.
Der ATmega8 hat nur drei PWM, ist aber auf andere Art Leistungsfähiger.
Der ATmega16 hat auch vier PWM und ist billiger als der ATmega32. Der ATmega32 rentiert sich erst dann, wenn du größere Programme schreiben möchtest.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
33700
Bronze Mitglied
 
Beiträge: 127
Registriert: Montag 30. Juli 2007, 11:19
Wohnort: Oberhofen im Inntal (Tirol)
Postleitzahl: 6410
Land: Austria / Österreich

Re: DC-Motoransteuerung per PC

Neuer Beitragvon Thom am Dienstag 19. August 2008, 19:56

Hey danke nochmal für die vielen Infos. Hab noch nich alle links lesen können, und muss grad los, aber das sieht schonmal sehr informativ aus.
Wegen den µc, da hab ich mir schon 2 atmega32 und 1 atmega8 zum testen bestellt... :?
Also wenn ich zum beispiel zwei software PWM generieren möchte (mit dem mega32), mit 1kHz, das wird nicht so gut klappen? Was würde denn passieren, schwankende Spanung am Motor? Aussetzer? Hörbare Schwebung? Parallel dazu müsste ja nur noch das steuer-bit berechnet werden, aber das wird ja nur geändert/berechnet wenn von außen der entsprechende Befehl kommt, also das wär keine große Rechenaufgabe...
Wenn nicht, ist es vielleicht möglich sowas wie "PORTC.0=PIND.5" zu machen, da ja PIND5 ein PWM pin ist? also einfach die 4 hardware pwm schön mit ein paatr kHz rechnen lassen und dann eben parallel nur das ergebnis kopieren? So könnte ich ja auch auf jeden pin meiner Wahl ne gute PWM legen, ohne den Prozessor zu sehr zu belasten... oder?

Ok ich mach mich mal auf die Socken, bis später, tschö
Thomas
Thom
Threadstarter
33702
Junior Mitglied
 
Beiträge: 20
Registriert: Freitag 15. August 2008, 18:45

Re: DC-Motoransteuerung per PC

Neuer Beitragvon gerold am Dienstag 19. August 2008, 21:29

Thom hat geschrieben:Also wenn ich zum beispiel zwei software PWM generieren möchte (mit dem mega32), mit 1kHz, das wird nicht so gut klappen?

Hallo Thom!

Wenn du dir dieses Beispiel ansiehst: http://paste.pocoo.org/show/82748/

In diesem Beispiel werden mit Hilfe eines Timers drei Software-PWM-Signale erzeugt. LED1, LED2 und LED3. Zum Testen und zum Rechnen habe ich die PWM-Signale statt mit 120 Hz mit knapp 1000 Hz angesteuert. Was soll ich sagen? Wenn man 256 PWM-Stufen haben möchte, dann sind die Ressourcen fast ausgeschöpft. Man kann noch ca. 40 Systemticks im Interrupt-Handler einsparen, wenn man die Register mit NOSAVE händisch sichert und wiederherstellt. Aber das ist nichts für Anfänger.

Also mit den normalen Mitteln ist hier Schluss. Das Hauptprogramm (die MainLoop) hat so gut wie keine Systemticks mehr übrig. Man kann also kaum mehr etwas damit machen.

Wenn man statt den 256 PWM-Stufen z.B. auf 50 PWM-Abstufungen reduziert, dann gewinnt man wieder etwas Freiraum. Es ist also schon noch etwas machbar, aber um so etwas zu programmieren, sollte man nicht unbedingt Anfänger der ersten Stunde sein. :roll:

mfg
Gerold
:-)
Zuletzt geändert von gerold am Dienstag 19. August 2008, 21:49, insgesamt 1-mal geändert.
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
33705
Bronze Mitglied
 
Beiträge: 127
Registriert: Montag 30. Juli 2007, 11:19
Wohnort: Oberhofen im Inntal (Tirol)
Postleitzahl: 6410
Land: Austria / Österreich

Re: DC-Motoransteuerung per PC

Neuer Beitragvon gerold am Dienstag 19. August 2008, 21:48

gerold hat geschrieben:Wenn man statt den 255 PWM-Stufen z.B. auf 50 PWM-Abstufungen reduziert, dann gewinnt man wieder etwas Freiraum.

Hallo Thom!

Z.B. so: http://paste.pocoo.org/show/82750/

Aber ich würde auf jeden Fall die Hardware-PWM nutzen. Damit bist du um Welten besser dran. Der µC erzeugt das PWM-Signal komplett im Hintergrund. Dein Programm läuft in der Zwischenzeit im Leerlauf. Du hast noch die volle Kapazität des µC zur freien Verfügung.

Um zu deiner Frage mit der Unregelmäßigkeit des Software-PWM-Signals zurück zu kommen. Wenn du einen Timer zur Synchronisation des Signals benutzt, so wie ich es vorgezeigt habe, dann ist das Software-PWM-Signal genau so gleichmäßig, wie das Hardware-PWM-Signal. Allerdings wird der µC voll ausgelastet und du hast kaum Reserven für das Hauptprogramm übrig.

Es gibt noch die Möglichkeit, das PWM-Signal in der MainLoop zu erzeugen. Das nutzt zwar die volle Kapazität des µC (ohne irgendwelche Wartezeiten) aus, aber eben nicht zeitlich synchronisiert. Manche Befehle brauchen nur zwei Systemtakte, mache etwas mehr und mache warten sogar so lange, bis irgendein Status auftritt (z.B. das Warten auf ein Signal vom Computer oder das Prüfen eines Tastendrucks). All das hält das Programm der MainLoop auf. Und diese Verzögerungen sorgen dafür, dass dein PWM-Signal ungleichmäßig wird. Auf so etwas würde ich mich nie einlassen.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
33707
Bronze Mitglied
 
Beiträge: 127
Registriert: Montag 30. Juli 2007, 11:19
Wohnort: Oberhofen im Inntal (Tirol)
Postleitzahl: 6410
Land: Austria / Österreich

Re: DC-Motoransteuerung per PC

Neuer Beitragvon anders am Mittwoch 20. August 2008, 07:44

Wenn ich jetzt aber den Strom vom 12V Netzteil über zwei Dioden (wegen der Endabtaster) laufen lasse, verliere ich ja 2*0.7V = 1.4V..
Nur auf den ersten Millimetern, wenn der Endschalter noch betätigt ist und selbst dann ist es nur ein einfacher Spannungsabfall, also 0,7V.
Wem das noch zuviel ist, der nimmt Schottky Dioden. Deren Spannungabfall ist nur etwa halb so gross.
Aussrdem besteht ja oft die Möglichkeit das Ansteuersignal, hier den PWM , abzuschalten, dann gibt es überhaupt keinen zusätzlichen Spannungsabfall im Leistungskreis.
Zum Rest der Diskussion:
Das kommt mir vor, als wolle ein Kleinkind, das noch nicht mal geradeauslaufen kann, an einem Hindernisrennen teilnehmen.
anders
33708
Moderator
 
Beiträge: 4686
Registriert: Freitag 28. Februar 2003, 13:46

Nächste

Zurück zu Elektronik Allgemein

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 60 Gäste