Forum: Mikrocontroller und Digitale Elektronik USB Client


von TBone (Gast)


Lesenswert?

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?

von Hans (Gast)


Lesenswert?

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

von TBone (Gast)


Lesenswert?

Aha ...

Bahnhof ...

Danke für die Antwort, darf ich Dich dazu näher löchern?

von Jörn G. (Gast)


Lesenswert?

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

von TBone (Gast)


Lesenswert?

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

von Markus (Gast)


Lesenswert?

Du könntest auch das Igor-USB nehmen.

Stichwort Atmel Applikation Note 309 (AVR309). Gibts aber noch nicht
bei Atmel, aber z.B. hier
http://www.mikrocontroller.net/attachment.php/86320/AVR309_doc2556.pdf

Die Originalseite www.cesko.host.sk scheint gerade down zu sein.

Markus

von Azrael (Gast)


Lesenswert?

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

von TBone (Gast)


Lesenswert?

@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!

von Jörn G. (Gast)


Lesenswert?

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

von Martin S. (Gast)


Lesenswert?

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.

von TBone (Gast)


Lesenswert?

@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!!

von Markus (Gast)


Lesenswert?

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

von Martin S. (Gast)


Lesenswert?

@markus

wieder mal ein Stück Lebenshilfe (Hilfe zur Selbsthilfe) geleistet

+++++ FG

von TBone (Gast)


Lesenswert?

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!

von Thopo (Gast)


Lesenswert?

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-Verknpfung setzt Bit 5 der Adresse auf
1
}

Allerdings ist darauf zu achten, das man einen DOS-Compiler, oder aber
eine Treiber Entwicklung braucht.

Gruß

von Matthias (Gast)


Lesenswert?

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

von Ernie (Gast)


Lesenswert?

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;

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.