Miniauto bauen, welches über den COM-Port steuerbar ist
-
Hallo,
Danke erstmal für die Tipps. TxD RxD RTS CTS etc. sind ja die Bezeichnungen für die PINs...ist es egal welche ich da verwende um Daten zu übermitteln? Ich habe gelesen, dass nur TxD Daten übermittelt...aber was ist dann der Unterschied zwischen TxD und RTS? Wie verknüpfe ich diese PINS mit den CMOS Steinen? Was machen diese 3 CMOS Bausteine und wie verwendet man diese und wie interagieren die zusammen mit dem Computer? Und wie schaltet man über die einen Motor an? Fragen über FragenGibts dazu nicht ein winziges Tutorial oder so? *g*
Gruß,
Kevin
-
... ein winziges Tutorial ?
Das Internet und die Buchläden sind voll davon. Schließlich existiert die serielle Schnittstelle schon Jahrzehnte.
Ohne Löten wird es wohl nicht gehen, es sei denn, Du hast genu Geld übrig um Dir alles fertig kaufen zu können. Als Tip: Elektor, Elrad, ELV, Conrad ...
Selber aufbauen ist aber auch drin. B. Kainka (geh' mal auf seine HP) hat nicht nur Bücher genau passend für Dein Problem geschrieben (O.K., die Bücher sind auch nicht gerade billig), sondern auch Hard- und Software-Baispiele ins Internet gestellt. Suche nach "CompactUniversal" - das ist ein weiteres Modul (mit 5 CMOS-Bausteinen) für Digital In/Out (je 8 bit), Analog-In (8 bit) und Frequenzzähler inclusive Software, DLL, C-Header-Datei und Programmbeispielen für VB, VBA, Delphi und C. Die Leiterplatte gibt es sogar bei Elektor (auch nicht billig, leider).
Die einfache Schaltung, die ich meinte, ist in seinem ersten Buch "Serielle Schnittstellen" erschienen. Sie wartet auf eine Startbit, gibt einen Baudraten-Taktgenerator (4585 oder 40106) frei, der ein Schieberegister (4094) taktet, welches am Data-Eingang die seriellen Daten von TxD anliegen hat. Gleichzeitig zählt ein Zähler (4017) die 8 bits mit und erzeugt zum Schluß einen Übernahmeimpuls für das Schieberegister. Damit werden die Daten aus dem internen Schieberegister des 4094 in das Ausgangsregister geladen und stehen permanent bis zum nächsten Datenempfang an. Simpel - nicht wahr?
Laß Dich nicht verwirren, einfach nachbauen reicht schon.Der Pegel der Seriellen Schnittstelle wird via Vorwiderstand und Z-Diode auf TTL-Pegel gebracht. Benutzt werden am PC nur TxD und GND. Motoren ein- und ausschalten kann man über ein Relais oder einen Verstärker (z.B. Darlington-Transistor). Was man verwendet ist aber sehr von den Daten des Motors abhängig.
Blackbird
-
ahja, jetzt ist mir alles klar
Kannst du nicht sagen wie ich aufs Einfachste einen Motor auf Knopfdruck mit externer Batterie zum laufen kriege?Gruß,
Kevin
-
Mit 3 Drähten zwischen Batterie, Motor und Knopf.
Wenn es komfortabler sein soll, so mit PC und Fernsteuerung und automatisch und so - dann gibt es viele Wege:
1. alles von irgendjemand machen lassen
2. selber planen und alles kaufen
3. selber planen, das Komplizierte kaufen/machen lassen, den Rest selber machen
...
n. alles selber planen/entwickeln und machenWas genau willst Du machen? Und wo brauchst Du Hilfe?
Blackbird
-
Ich will fürs erste:
PC - Button drücken => Motor geht an, aber über eine externe Batterie und nicht über den Strom aus dem COM-Port!!
Was ist eignetlich der Unterschied zwischen TxD und RTS zB? Warum kann nur TxD Daten übermitteln? Wo liegen da die Unterschiede?
Ich möchte so gut wie alles selbst bauen, bis auf das wirklich harte...aber es soll eben möglichst einfach sein!Gruß,
Kevin
-
Weiß das plötzlich niemand mehr?
Super Seiten sind auch erwünscht!
Gruß,
Kevin
-
Hi Kevin,
war weg übers Wochenende.
PC - Button drücken => Motor geht an, aber über eine externe Batterie und nicht über den Strom aus dem COM-Port!!
Hatte ich auch nie geschrieben. Ca. 10 mA reichen nicht mal für ein normales Relais. Und alle "Verstärker" brauchen einen eingene Spannungsversorgung (Akku, Batterie, Netzteil ...).
Was ist eignetlich der Unterschied zwischen TxD und RTS zB?
http://www.beyondlogic.org/serial/serial.htm
Per Frage-Antwort kann Dir niemand hier in einem Crash-Kurs Wissen zur seriellen Kommunikation vermitteln.
Hast Du denn mal auf die HP von B. Kainka nachgesehen?
---> http://www.b-kainka.de/basis.htm
Da wird so ziemlich genau die Lösung für Dein Problem angegeben.Ich möchte so gut wie alles selbst bauen, bis auf das wirklich harte...aber es soll eben möglichst einfach sein!
Nix dagegen einzuwenden - Anleitungen findest Du bei B. Kainka und im Forum von www.mikrocontroller.net (siehe Antwort vom 09.06.04).
Blackbird
-
Ich habe vor kurzem für die Schule mal einen Roboter gebaut - für die Ansteuerung der Gleichstrommotoren habe ich da den Brückentreiber L298 verwendet. Du bekommst diesen z.B. bei Reichelt - dort gibts auch das Datenblatt dazu
-
Bevor Du aufgibst:
/------*---------o -Batt | | | __|__ | | / | Relais | ----- | A K | 1N4002 \-|>|--* | C _____ B / BC558B DTR o--|_____|--*-----| pnp-Transistor (RTS) 4,7kOhm | \ E Rv | A K | \-|>|--* 1N4148 | GND o------------------*----------o +Batt Rv = 10V / 2mA (gerundet) Relais-Strom max. 100 mA Relais-Spannung = Batt.-Spannung DTR - Pin 4 (9pol. Sub-D) RTS - Pin 7 (9pol. Sub-D)
Das Ganze zweimal aufbauen (an DTR und RTS). Die Motoren werden über die Relaiskontakte ebenfalls von der Batt.-Spannung versorgt.
Programm (fragnment):
... HANDLE hCom = INVALID_HANDLE_VALUE; hCom = CreateFile ("COM1", GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL); ... EscapeCommFunction (hCom, SETRTS); // RTS setzten ... EscapeCommFunction (hCom, CLRRTS); // RTS rücksetzten ... // irgendwas tun ... CloseHandle (hCom);
Blackbird
-
Oh vielen dank für die Arbeit! Fragen gibts wenn ich deine 2 Seiten konzentriert durchgelesen habe :). DANKE!
-
So, durchgelesen
Viele Fragen:
Ich kenne immernoch nicht den Unterschied zwischen RTS und TxD...ich weiß, TxD ist dazu da, um Daten zu übermitteln...ich denke wenn ich mit WriteFile auf den ComPort schreibe, werden die Daten hier übermittelt, oder? Angenommen ich will ein LED zum Leuchten bringen, was hindert mich daran TxD zu setzen und das LED an TxD und GND anzuschließen anstatt RTS und GND? Diesen Unterschied will mir irgendwie niemand erklären
Nun zu deiner Zeichnung, erstmal, sehr detailliert mein Empfinden nach dem Anschauen: UFF!Jetzt gehts zu den richtig peinlichen Fragen. Erstmal versteh ich deine Schaltskizze so gut wie gar nicht. Wo ist hier irgendein Motor angeschlossen?Ich habe eine Batterie, von der führt ein Draht zu einem Relais, hier ist Frage1:
Was ist ein Relais und wozu braucht man sie?
es führt ebenfalls zum A K, :), was ist A K? :). Dann gehts zu einem lustigen Transistor...was ist dieser Transistor und was macht der? Ich kenne nur Transformatoren, dann gehts zu einem Widerstand und zum DTR oder RTS PIN, wieso genau die und nicht TxD zum Beispiel? Warum der Widerstand? Ist die Spannung von 5V aus dem RTS zu hoch? *g* Dann wieder zu nem A K und zu GND und noch ner Batterie...was sind diese A Ks denn und was sind die 1N4002, 1N4148 und was bringen die?
Solange ihr nicht die Geduld verliert gebe ich sicher nicht auf...habe ich noch nie und kann wahrscheinlich gerade deswegen so gut programmieren
Vielen Dank für eure schwerbehindertenfreundliche Hilfe *g*
Gruß,
Kevin
-
Hi Kevin,
entschuldige die Verspätung. War einen Tag unterwegs, komme erst jetzt zum Antworten.
Eine Serielle Schnittstelle hat 3 Ausgänge (TxD - 3, DTR - 4, Rts - 7) und 5 Eingange (RxD - 2, DSR - 6, DCD - 1, RI - 9). Masseleitung für alle ist GND - 5. Gilt für den 9pol. Sub-D-Stecker am PC.
Wie der Name schon sagt - SERIAL heißt "nacheinander", d.h. es werden (in der Regel) 8 Bits nacheinander über TxD gesendet (inclusive eines Start- und eines Stopbits). RxD macht genau das Gegenteil - es wandelt die 8 zeitlich aufeinanderfolgenen Bits wieder in ein (paralleles) Byte um. Benutzen kann man TxD mit WriteFile und RxD mit ReadFile. Das ist aber eine ziemlich vereinfachte Erklärung, aber sie sollte für die Verwendung der seriellen Schnittstelle genügen. Mehr Details sind in zahlreichen Büchern und im Internet und in der Hilfe Deiner IDE zu finden.Die anderen Ein- und Ausgänge dienen der Steuerung der Übertragung von Bytes ("Bist Du fertig mit der Übertragung?" - "Bin nicht bereit, Daten zu empfangen!" - "Daten sind übertragen" - usw. und so fort ...). Diese Pins kann man aber nach eigenem Guste setzen und rücksetzten, also -10V oder +10V schalten. Dafür gibt es die Funktion EscapeCommFunction. "Lesen", welcher Pegel gerade an den Eingängen steht, kann man mit WaitCommEvent. So kann man natürlich auch Bytes übertragen, Bit für Bit. Nur muß man dann die "Serialisierung" selber machen.
(siehe: http://www.stickybit.de/wissen/computer/grundlagen/schnittstellen/schnittstellen.htm#0001)Zu Deinen anderen Fragen zur "Hardware". Da fehlen eingentlich die kompletten Grundlagen der Elektronik. Per Frage-Antwort-"Spiel" ist da nichts zu machen. Schaue Die die Seiten von http://www.elektronik-kompendium.de/sites/slt/0208031.htm an.
A - Anode der Diode
K - Kathode der Diode
E - Emitter des Transistors
C - Kollektor des Transistors
B - Basis des TransistorsDie Motoren werden über die Relaiskontakte ebenfalls von der Batt.-Spannung versorgt.
Blackbird
-
Wenn ihr nicht auf euer Geld achten wollt, dann schaut euch mal bei Fischertechnik um. Damit lässt sich so eine Motoransteuerung relativ gut realisieren.
-
HI!
Vielen Dank für die großartige Hilfe! Sorry dass ich erst jetzt wieder antworte, aber gestern war das Forum "halbdown" *g*. Hab wieder ein paar Fragen :). Ein Transistor ist ja ein Schalter, der durch Strom geöffnet bzw. geschlossen wird. Wenn an der Basis Strom anliegt fließt Strom von E zu C. Wohin fließt dann der Rest von der Basis? Auch weiter durch E? Was ist der Unterschied zwischen negativer und positiver Spannung? Habe in der Schule bisher nur die positive kennengelernt. Wenn der Schalter geöffnet ist, fließt ja trotzdem Strom auch nach unten weiter zum 1N4148 und dann wieder durch den Transistor, ist hier nicht eine Art endlosschleife? Weil durch den Transistor wieder zur Basis...oder geht das nicht? Desto höher der Basisstrom, desto größer der Strom der durch E zu C fließen kann...aber das ist doch dumm, wieso denn nicht den kompletten Strom, der von E zu C kommen kann? Gibt es so einen Transistor auch? Kannst du mir noch sagen wozu du die Dioden brauchst? Im Internet habe ich nur gelesen, dass es LEDs sind? Stimmt das? Wozu baust du die ein? Um zu sehen wo der Strom gerade durchfließt? Kannst du mir noch den Sinn von einem Relais kurz erklären? Ich bin sehr gut lernfähig *g*.DANKE!
Kevin
-
Surkevin schrieb:
Wenn an der Basis Strom anliegt fließt Strom von E zu C.
Eine Spannung liegt an - ein Strom fließt. Ansonsten stimmt's
Surkevin schrieb:
Wohin fließt dann der Rest von der Basis? Auch weiter durch E?
Welcher Rest?
Surkevin schrieb:
Was ist der Unterschied zwischen negativer und positiver Spannung? Habe in der Schule bisher nur die positive kennengelernt.
Spannung ist ja im Grunde genommen nur ein Potentialunterschied - je nach dem, von wo nach wo du misst ist eben die Spannung positiv oder negativ
Surkevin schrieb:
Wenn der Schalter geöffnet ist, fließt ja trotzdem Strom auch nach unten weiter zum 1N4148 und dann wieder durch den Transistor, ist hier nicht eine Art endlosschleife? Weil durch den Transistor wieder zur Basis...oder geht das nicht?
Afaik geht das nicht - nur den Sinn der Diode zwischen B und C war mir irgendwie nie so ganz klar (wurde in der Schule auch oft weggelassen
)
Surkevin schrieb:
Desto höher der Basisstrom, desto größer der Strom der durch E zu C fließen kann...
In gewisser Weise ja, aber prinzipiell eigentlich eher nein! Wenn dein Basisstrom groß genug ist leitet der Transistor.
Surkevin schrieb:
aber das ist doch dumm, wieso denn nicht den kompletten Strom, der von E zu C kommen kann? Gibt es so einen Transistor auch?
Ds ist eigentlich abgesehen von kleinen Verlusten schon so, dass alles durchgeht - also U-CE = 0 ist
Hoffe jetzt nichts durcheinandergebracht zu haben
-
Ok, ich weiß jetzt was ein Relais und was eine Diode ist
Nur wieso benutzt du einmal ein Relais und einmal einen Transistor? Was ist der Sinn von der Diode 1N4148? Wenn DTR geschalten wird, läuft der Strom über die Transistorbasis über den Emitter zu GND bzw. zum Pluspol der Batterie? Oder fließt der Strom von der Basis nicht weiter? Dann nächste Frage:
Wieso wird das Relais nicht schon von dem ersten Stromstoß von der Batterie aktiviert, so dass auch ohne dass der Transistor aktiviert ist, der Motor laufen kann?Danke
So langsam versteh ich das ganze echt gut...Man gibts nützliche Dinge in der Elektronik...baut man so einzelteile wie das Relais oft selbst, oder kauft das jeder von euch?Kevin
/EDIT:
Danke flenders
Habe erst jetzt deine Antwort gelesen. Wohin fließen die Elektronen, die an der Basis anleigen? Auch weiter zu E? Der Strom fließt von C zu E oder?
-
Surkevin schrieb:
Nur wieso benutzt du einmal ein Relais und einmal einen Transistor?
Ein Relais ist im Prinzip ein elektro-mechanischer Schalter (mit einem Elektromagnet?) und der Transistor ein rein elektrischer Schalter ohne mechanische Bauteile. Für sehr große Leistungen ist afaik ein Relais eben besser, oder liege ich da falsch
Surkevin schrieb:
Wenn DTR geschalten wird, läuft der Strom über die Transistorbasis über den Emitter zu GND bzw. zum Pluspol der Batterie?
Laut Skizze richtig. Aber müsste GND nit eigentlich mit dem Minuspol der Batterie verbunden sein (Kurzschluss)?!
Surkevin schrieb:
Oder fließt der Strom von der Basis nicht weiter?
Doch. Kollektor- und Basis-Strom addieren sich. Aber der Basis-Strom ist sehr viel kleiner als der Kollektor-Strom und kann daher meist vernachlässigt werden (für die weitere Betrachtung "hinter" dem Transistor)
Surkevin schrieb:
Wieso wird das Relais nicht schon von dem ersten Stromstoß von der Batterie aktiviert, so dass auch ohne dass der Transistor aktiviert ist, der Motor laufen kann?
Du meinst jetzt direkt beim Anschließen der Batterie?
Surkevin schrieb:
Wohin fließen die Elektronen, die an der Basis anliegen? Auch weiter zu E? Der Strom fließt von C zu E oder?
Nei, eigentlich wandern die Elektronen alle zu Kollektor (Einsammler) - sowohl die von der Basis als auch die vom Emitter (Aussender)
@Blackbird: Kann es sein, dass du die Batterie falsch herum angeschlossen hast
-
ja genau, wieso wird das Relais nicht aktiviert wenn wir die Batterie anschließen? Wo ist da die Blockade?
-
Eigentlich fließt ja kein Strom, da die komplette Spannung am sperrenden Transistor abfällt
-
Ist die Batterie nun falschrum angeschlossen? Ich verstehe nur noch nicht so ganz den Sinn der Dioden in dem Fall, zur Diode 1 (1N4148):
Der Strom von DTR ist doch nur dazu da, den Transistor zu aktivieren und sonst nichts...wozu ist dann noch die Abzweigung zur Diode notwendig?
Diode 2 (1N4002):
Es fließt doch eh nur Strom, wenn der Transistor durchgeschalten ist...dann wird das Relais aktiviert und der Rest geht weiter zu +Batt und GND, wann fließen überhaupt Elektronen durch diese Diode?Wo ist der Sinn hinter dem Relais an dieser Stelle? Könnte man nicht einfach den Motor direkt anstelle des Relais anschließen? Ich wüsste nicht wieso...Strom fließt nur wenn der Transistor aktiviert wird und so kann in diesem Fall dann der Strom direkt durch den Motor...was spricht dagegen? Könnt ihr mal das Schaltbild in Worte fassen? Vielleicht habe ich ja noch ein Verständnisproblem, von dem ich nichts weiß
Wozu braucht man den Widerstand da eigentlich? Da kommen doch nur 8 (?)V raus? Sind die schon zu heftig für den Transistor?
DANKE
Kevin