Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Binärabfrage von Lichtschranken oder Ähnlichem.
Bruder Lal - Mo 02.01.06 20:12
Titel: Binärabfrage von Lichtschranken oder Ähnlichem.
Hi,
für ein Schulprojekt von mir ist es erforderlich, dass ich Lichtschranken, Reed-Kontakte oder etwas in der Art mit meinem Computer verbinde. Mein Vater meinte, ich müsse diese mit einer Interface-Karte verbinden und diese an die serielle Schnittstelle anschließen. Jetzt suche ich etwas, mit dem ich Abfragen kann, ob und auf welchem Port der seriellen Schnittstelle Strom geflossen ist. Vielleicht ein Ereignis, das dann ausgelöst wird.. ich hoffe es ist ein einfaches Problem :)
omgathcx - Mo 02.01.06 22:04
Also das mit den Reed-Kontakten ist nicht soo das Problem, solange du nur 2 davon brauchst.
Wie viele ein/ausgänge brauchst du denn und mit welcher zeitlichen Genauigkeit soll was für ein Signal (analog oder digital) denn gemesen worden?
Mit normalen Handelsüblichen Lichtschranken wird die Sache schon aufwendiger.
Wie sich jedoch die typischen Schullichtschranken (Phywe und Konsorten) verhalten weis ich nicht.
Gruß
Markus
Bruder Lal - Mo 02.01.06 22:09
Ich will damit Geschwindigkeiten von Autos auf einer Carrera Rennbahn messen. Also eine gute Genauigkeit wäre schon vorteilhaft :), etwa 10 milisekunden. und mit was ich messe ist relativ egal, wichtig ist nur, es wird ein Strom fließen, wenn eins der autos durch die lichtschranke fährt oder am reedkontakt vorbei. Geplant sind 4 Messpunkte an der Bahn. Da sie 2spurig ist, brauche ich 8 eingänge.
edit: Mir ist klargeworden dass ich nur 2 Eingänge brauche.. die Reihenfolge der Messstationen sind ja bekannt.
omgathcx - Di 03.01.06 17:06
Also für 2 Eingänge reicht der Serielle wie auch der Paralelle Port aus.
Mal bei Torry.net suchen, da gibt's 2 Compos.
Eine für'n Seriellen (SerialPortNG)
und eine zum allgemeinen Portzugriff unter Win NT/2k/XP (SmallPort) der ja da nicht mehr per Assembler sein darf.
Mit den beiden solltest du die Sache hinbekommen.
Wenn du mim Paralleln arbeiten willst, sag nochmal was, da braucht man nämlich noch n'bischen Hintergrundwissen, wie die Register vom Port aufgebaut sind.
Für'n Seriellen brauchst du blos einen Pin (z.B. DTR) auf logic Hi legen und die Reed-Kontakte zwischen diesem Pin und den Eingangsleitungen (CTS u. DSR) legen. Die Komponente bietet an, bei Änderung der Leitungen benachrichtigt zu werden. (On???Event).
Bitte drauf aufpassen, dass die Leitungen vom Seriellen Port teilweise invertiert gemeldet werden.
Auch bitte daran denken, dass es beim Seriellen Port keine 0V/5V wie bei TTL-Logic gibt, sondern -12V ist Logic Hi(1) und +12V ist logic Low(0). Und dann ist's teilweise halt noch invertiert.
Ausserdem empfehle ich dir ne Extra Karte mit nem zusätzlichem Port zu kaufen um deine Ports am Motherboard zu schonen.
Die Dinger erscheinen zwar im ersten Augenblick überteuert aber im Vergleich zu nem neuen Motherboard sind die spott billig.
Wie sieht's bei dir denn mit Lötkenntnissen aus? Ich hätte da noch ne Aufwendigere Variante die ich selber gerade in Planung hab, aber nen externen µProzessor benötigt und deswegen nicht für Elektronikanfänger zum Nachbau geeignet ist.
Bis wann muss des den lauffähig sein? Schulprojekte neigen meiner Erfahrung nach immer dazu in der nächsten Woche vorführfertig sein zu müssen.
Gruß Markus
Bruder Lal - Di 03.01.06 17:54
Erstmal Danke für deine Hilfe.
Zumindest der Abgabetermin ist kein Problem. Der Lehrer meinte, da das Projekt so umfangreich sei, hätten wir notfalls bis ins nächste Schuljahr Zeit.
Meine Lötkenntnisse kannst du beruhigt als nicht vorhanden betrachten :), ich weiß, wie man das Ding hält und hab vor Jahren mal ein bisschen was gemacht.Ich werde jetzt erstmal was über Elektrotechnik lesen, dann verstehe ich dich besser.
Wenn ich deinen Post trotz der Fremdwörter verstanden habe, bedeutet das, dass ich eine Karte mit seriellem Port Eingang und Ausgang kaufen soll, die die elektrischen Impulse nur weiterleitet, um nicht direkt am pc löten zu müssen(eine andere Interpretation wäre, dass die Karte ein komplett neues Port haben soll. Wobei ich nicht weiß, ob das ansteuerbar wäre).
Das dürfte allerdings alles offtopic sein, das hatte ich nur geschrieben um mein Problem zu verdeutlichen(natürlich bin ich da auch für Hilfe dankbar).
Meine Frage zu Delphi war, ob es ein Event gibt, das ausgelöst wird, wenn Strom durch ein bestimmtes Port kommt bzw ob es eine Abfragefunktion gibt "Kommt Strom durch Port xxx" Mein Testprogramm hat mit der Möglichkeit Abfrage gearbeitet(Timer macht das alle 10 ms), die Funktion selbst ist momentan nur eine Zufallsfunktion. Das Event würde natürlich eine viel praktischere Programmiermöglichkeit darstellen. Die Delphi-Hilfe brachte mich da nicht wirklich weiter. Du hast da schon was angedeutet ("On???Event").. bitte, wie heißt das? :)
omgathcx - Di 03.01.06 19:54
Zitat: |
Das Event würde natürlich eine viel praktischere Programmiermöglichkeit darstellen. Die Delphi-Hilfe brachte mich da nicht wirklich weiter. Du hast da schon was angedeutet ("On???Event").. bitte, wie heißt das? |
Die SerialPortNG Komponente (die du dir erst runterladen und installieren musst!!) hat unter anderem das Event OnCTSEvent und OnDSREvent die bei ner Änderung an den Leitungen CTS und DSR aufgerufen werden.
CTS und DSR sind Bezeichnungen für bestimmte Leitungen an der Seriellen Schnittstelle.
Clear to send und Data set ready
http://www.taltech.com/TALtech_web/resources/intro-sc.html#dce
Delphi selber kennt diese Events nicht und deswegen steht da auch nix in der Delphihilfe drinnen.
Bruder Lal - Mi 04.01.06 16:56
Die Komponente hab ich runtergeladen. Das Problem ist, dass sie 1. eine DLL braucht, die ich nicht habe(vcl40.dll) und 2. scheinbar nicht für meine Delphi-Version ausgelegt ist. Ich besitze die Schülerversion von Delphi 2005. Die Komponente lässt sich nicht installieren, da die benötigte Dateiendung nicht vorhanden ist. Die Endung des Packages ist .dpk, während Delphi .bpl oder .dpc verlangt. Dass die Instalationsanleitung (für Delphi 4-7) nutzlos ist, brauche ich eigentlich nicht zu erwähnen... Im Conrad-Katalog gibt es ein 'USB Experiment Interface Board'(Bestellnr. 19 10 03-99 falls es dich interessiert), das über die USB Schnittstelle läuft und gleich ne DLL und ne deutsche Anleitung mitliefert(ich wusste nicht, wie selten gute Übersetzer sind - Conrad hat keinen gefunden). Und da ich eh eine Karte hätte kaufen müssen, kann ich auch die nehmen, die gleich die Funktionen zum Ansteuern der einzelnen Ein- und Ausgänge mitliefert. Danke für deine Mühe.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!