Hallo!
Ich hab mir jetzt ein Herz gefasst und frag hier die Profis. Ich bin
auf der Suche nach einer Möglichkeit, eine einfache LED (leuchten,
blinken oder beides einstellbar) mittels USB "anzuschliessen.
Folgender Hintergrund: eine sogenannte "Message LED" die aus einer
beliebeigen Anwendung ein Ereignis anzeigen kann. Kann man, und wenn ja
wie, soetwas realisieren?
z.b den seltsamen ft245 der nicht rs232 sondern paralelle daten
liefert... es müsste auch der ft232 gehn... der kann ja auch den
bit-bang mode oder wie die das nennen...
dazu noch ein bisserl software am pc und fertig
73
Nimm einfach einen USB-Seriell Kabel (bei reichelt unter 10,-) und
schließe bis zu 3 LEDs an die Ausgänge TXD, DTR, RTS (Pin 3, 4 und 7 am
Sub-D-9 Stecker) an. GND ist Pin 5.
Vorwiderstände benötigt du nicht einmal unbedingt, da die Ausgänge auf
20mA begrenzt sind (ist aber trotzdem besser mit Widerständen - kosten
ja nichts)
Dann kannst du ganz einfach diese LEDs aus jeder Programmiersprache
heraus ansteuern - fertig.
Delphi + C-Builder geht am einfachsten mit der TComPort Komponente.
Die Befehle zum einschalten der LEDs sind:
ComPort1->SetBreak( true );
ComPort1->SetRTS( true );
ComPort1->SetDTR( true );
Ausschalten so:
ComPort1->SetBreak( false );
ComPort1->SetRTS( false );
ComPort1->SetDTR( false );
Jörn
Danke! Das ist ja mal ein Ansatz. Ehrlich gesagt bis dato der
konstruktivste Vorschlag! (Ich bin damit in mehreren Foren auf der
Suche)
Danke auf jeden Fall
Wenns ein bisschen aufwendiger sein darf kannst du auch den Pic18F2550
nehmen. Dafür gibts auch gleich ne firmware für usb-seriell wandler.
kannst also schnell anfangen und später auch die volle datenrate
ausnutzen.
erfahrung hab ich (noch) keine damit.
mfg Azrael
@Azrael
Ist gut gemeint, aber bei durchschnittlich 4 mails die Stunde (Ich will
eigentlich nur eine message LED für Outlook oder ander mailprogramme
bauen) ergibt sich eine Datenrate von .... ähhh 4 Bit/Stunde?
@all
Ich glaub ich hab meine Frage nicht präzise genug gestellt und Euch
somit zum "über´s Ziel hinausschiessen" animiert, trotzdem: Danke!
Ups, reichelt hat den Preis wieder erhöht, naja 10,30 EUR gehen wohl
auch noch ;-)
Artikel "USB SERIELL".
Die angesprochene Komponente für einfaches Nutzen der Seriellen unter
Delphi oder C-Builder gibt es hier:
http://sourceforge.net/projects/comport/
jörn
Warum so kompliziert wenns einfach geht?
Irgendwo in den unendlichen Weiten des Internet hab ich mal folgendes
beschrieben gesehen (in etwa so war der Wortlaut)
Für Signalisierungszwecke kann auch die LED der Tastatur genutzt
werden, z.B. um mitzuteilen, daß neue Post eingetroffen ist
Da die Taste "scroll lock" eh nicht genutzt wird, wäre dei
ZWeckentfremdung der zugehörigen LED sicherlich eine Möglichkeit.
Spart dir Bastelei etc, und du brauchst dich nru auf die Suche nach
einem Häppchen Software machen. Wenn du sie gefunden hast, schreib mal
bitte wie sie heißt.
@Martin S.
ROTFLMAO
Der war gut, echt! Nein im Ernst, ich such mir seit ungefähr einem
halben Jahr die Finger Wund, ich find nix. Absolut nix. In keinem Forum
bekommt man dazu vernünftige, brauchbare Antworten. Nur so Wortfetzen
wie Tastatur API, HW Port 60 oder 80, ich werd nicht schlau draus. Wenn
ich was hab, dann sag ich natürlich sofort Bescheid.
@all
Danke für die Hilfe!!
Also das mit der Suchmaschine geht so: Du gibst an, was Du suchst, also
"scroll lock led". Du suchst einen Source dafür. Und das soll für
Win32 sein, nicht für Linux oder so. Also gibst Du bei Google ein:
scroll lock led source win32
Und der erste Treffer ist ein Programm für Visual C++, das genau das
macht (blinky.zip).
Markus
Ah ja, wieder was gelernt fürs Leben. Ich habs immer mit "email notify
led flash" probiert. Ich war wohl zu sehr auf die Verbindung zwischen
mailprogramm und LED fixiert. Danke auf jeden Fall!
Hi
Die LED's der Tastatur (z.B. NumLock) zu steuern ist eigentlich recht
leicht.
Mittels c++
#include <iostream.h>
#include <dos.h>
unsigned char far *num;
void main(void)
{
num=(unsigned char far *)MK_FP(0x0040,0x0017);
*num=*num|32; //die ODER-Verknpfung setzt Bit 5 der Adresse auf
1
}
Allerdings ist darauf zu achten, das man einen DOS-Compiler, oder aber
eine Treiber Entwicklung braucht.
Gruß
Hi
na toll. Direkter Hardwarezugriff. Und um die Schutzmechanismen des OS
(hier wohl offensichtlich Windows) zu umgehen verwenden wir ein
DOS-Executable. Sowas macht man heute nicht mehr.
Man kann die Tastatur-LED's auch mit der Windows-API beeinflussen und
braucht nicht auf solche kruden Hacks zurückgreifen.
Matthias
To toggle the NUM LOCK, CAPS LOCK, or SCROLL LOCK keys, you can use
the following logic:
Use the GetKeyboardState function to determine the state of
the key.
Determine which operating system is being used with the
GetVersionEx API. (Windows 95/98 and Windows NT/2000 require
different methods for toggling these keys.)
Under Windows 95 or Windows 98, use the SetKeyboardState API
function to set the state of the key. Under Windows NT or
Windows 2000, use the keybd_event function to simulate a key
press.
Damit muss ich meine Routine folgendermaßen abändern:
procedure SetLED(Key: Byte; MakeOn: Boolean);
var
KS: TKeyboardState;
OnOrOff: Boolean;
begin
GetKeyboardState(KS);
OnOrOff:= KS[Key] <>
0;
// Wenn Status vom gewünschten abweicht
if (OnOrOff xor MakeOn) then
begin
// Je nach Plattform / Key unterschiedliche Strategien
if (Win32Platform = VER_PLATFORM_WIN32_NT)
or (Key <> VK_NUMLOCK) then
begin
// Tastendruck simulieren
keybd_event(Key, $45, KEYEVENTF_EXTENDEDKEY, 0);
keybd_event(Key, $45, KEYEVENTF_EXTENDEDKEY or
KEYEVENTF_KEYUP, 0);
end
else
begin
// Gewünschten Status per Setkeyboardstate setzen
KS[Key]:= Ord(MakeOn);
SetKeyboardState(KS);
end;
end;
end;