Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi USB Programmieren (https://www.delphipraxis.net/177901-usb-programmieren.html)

Baum21 4. Dez 2013 18:42

Delphi-Version: XE5

USB Programmieren
 
Hi Leute,
Ich hab mir vor kurzem "Lernpaket Experimente mit USB" von Franzis gekauft, darin sind viele Beispiele um z.B. eine an den USB angeschlossene LED blinken zu lassen, allerdings alle ins VB, wollte mal fragen ob ich das ganze auch in delphi machen kann? Wenn ja wie? :)
Kennt vielleicht jemand eine Seite bei der ich etwas in die Richtung finde?

lbccaleb 4. Dez 2013 18:46

AW: USB Programmieren
 
Du kannst den Quellcode nach Delphi übersetzen...

himitsu 4. Dez 2013 18:48

AW: USB Programmieren
 
Natürlich kann man das auch mit Delphi machen .... es kommt nur darauf an, wie die Hardware angesprochen wird.
- eigener Treiber (hier vermutlich nicht)
- Schnittstellen-DLL
- Standardtreiber vom Windows (HID, Virtual-COM-Port, ...)
- ...

Wie machst du das denn in VB?



Vermutlich wird das Ding wohl einen seriellen COM-Port aufmachen, über den man den Mikrocontroller auf dem USB-Stick ansprechen kann.

Der USB-Stick sieht aus wie eine Art Serial-USB-Konverter und auf dem anderen Board ist wohl ein kleiner Mikrocontroller?
http://www.pearl.de/a-PK4679-3521.sh...FYlV3godT2IApg

[edit]
Zitat:

Für eine direkte serielle Anbindung an Mikrocontroller
Zitat:

> http://www.elv.de/output/controller....FUZY3godnWsApA
Wo man früher noch mit der parallelen oder seriellen Schnittstelle des PCs die eigene Elektronik einfach steuern und regeln konnte, muss man sich heute zwangsweise mit USB auseinandersetzen. Der in diesem Lernpaket verwendete FTDI-USB-Baustein zeigt Ihnen, wie interessante USB-Steuerungen oder USB-Datenerfassungssysteme zum Teil auch ohne Mikrocontroller aufgebaut werden können. Das USB-Lernpaket startet mit einfachen LED-an-, LED-aus- und Ampelversuchen über USB.
*lach*
Mit USB auseinandersetzen, wo es am Ende doch wieder auf Seriell hinaus geht und man scheinbar nichts direkt mit USB zu tun hat. :wall:

Hast du schon den Punkt "USB-Dongle" behandelt? Worum geht es dabei denn?
Würde mich mal interessieren, ob das wenigstens mit USB zu tun hat oder ob es nicht nur danach klingt.

lbccaleb 4. Dez 2013 20:00

AW: USB Programmieren
 
Das USB Dingens sieht eigentlich ganz interessant aus, vllt. sollte ich mir das auch mal kaufen. Hätte mal Lust damit ein wenig rum zu experimentieren.

Edit:
Als ich damals 11 oder 12 war, hatte ich von meinem Vater den Kosmos 3000 bekommen. Da hab ich Stunden dran verbracht, und kannte mich zu der Zeit definitiv besser mit der Materie aus als Heute. Man vergisst doch einiges mit der Zeit :D

http://www.kosmos.de/produktdetail-1...c_xn_3000-282/

Baum21 4. Dez 2013 20:01

AW: USB Programmieren
 
uhm, ich hab eigentlich noch nie VB benutzt, bin auch eher noch ein Anfänger in Delphi :D
Der Treiber heißt "D2XX-Treiber".
Der FTDI-USB-Controller heißt "FT232R".

hathor 4. Dez 2013 20:51

AW: USB Programmieren
 
Delphi Examples

http://www.ftdichip.com/Support/Soft...les/Delphi.htm

Unit:
http://www.ftdichip.com/Support/Soft...i/D2XXUnit.zip

Hinweis

hathor 4. Dez 2013 21:03

AW: USB Programmieren
 
Zitat:

Zitat von himitsu (Beitrag 1238536)
Der USB-Stick sieht aus wie eine Art Serial-USB-Konverter und auf dem anderen Board ist wohl ein kleiner Mikrocontroller?
http://www.pearl.de/a-PK4679-3521.sh...FYlV3godT2IApg

Das geht auch billiger - weniger als 38 Euro.

OlafSt 4. Dez 2013 21:35

AW: USB Programmieren
 
Zwischen serieller Schnittstelle und USB gibt es aus Programmierersicht einen gewaltigen Unterschied: Bei Seriell "spricht" man mit der Schnittstelle - man muß Signale setzen und Überwachen, Bytes in die richtigen Ports schieben usw... Bei USB spricht man direkt mit dem Gerät, der USB-Treiber dazwischen ist völlig transparent.

Wenn es mit nem FTDI 232R (oder 245) läuft, wird da ein serieller Port emuliert. Da ist nix mit USB.

blackfin 4. Dez 2013 21:36

AW: USB Programmieren
 
Wenn der USB-Stick intern einen FT232 hat, kannst du ihn in Delphi mit jeder Seriell-Komponente ansprechen (oder sogar, wenn du es auf die "harte Tour" willst, eine eigene RS232-Komponente mit Windows- / Delphi-Boardmitteln schreiben :)).

Von FTDI gibt es für den FT232 einen generischen COM-Treiber, nach der Installation hast du einen neuen seriellen Port in deinem System, den du z.B. über Async Pro o.Ä. in Delphi ansprechen kannst.

Der Treiber von FTDI ist im übrigen, wie auch der Chip selbst, ziemlich gut.
Die FT232-basierten Adapter haben im Treiber viel mehr Einstellmöglichkeiten als die meisten billig-USB-zu-RS232-Adapter und der Chip hält sich an die USB- und RS232-Spezifikationen, was viele Adapter nicht tun.

Der bei dir verbaute FT232R hat übrigens noch zwei nette Features, die die anderen FT232-varianten nicht haben:
- Du kannst den Takt des internen Oszillators nach außen führen und damit externe Peripherie wie z.B. eine MCU takten, ohne dass sie selbst einen eigenen Quartzoszi braucht.
- Der Chip hat intern eine festgebrannte, nicht veränderbare ID / Seriennummer, die man auslesen kann, so dass du mit deiner Software einen Chip identifizieren und ihn z.B. als Hardware-Dongle nutzen kannst. Damit ist wohl auch das "USB-Dongle" Experiment aus dem Kasten realisiert. Allerdings geschieht das Auslesen der Chip-ID nicht über einen Befehl an die serielle Schnittstelle (wäre auch irgendwie sinnlos, da man es leicht emulieren könnte), sondern über eine eigene FTDI-DLL, deren Export Functions Header aber auch auf der FTDI-Seite als Delphi-Code vorliegt.

Mit USB-Programmierung an sich hat das Alles allerdings gar nichts zu tun, da man im Endeffekt mit der Software nur einen seriellen COM-Port mit RS232 oder RS485 ansteuert, sich um das komplizierte USB-Protokoll jedoch überhaupt nicht kümmert. (und folgedessen auch nichts über USB lernt)

So einen FT232-basierten Adapter kann man sich im übrigen auch ziemlich leicht selbst zusammenlöten, den Chip bekommst du bei jedem größeren Elektronik-Bauteilladen und als externe Peripherie brauchst du nur die beiden Buchsen, ein paar Widerstände und Kondensatoren.
Man muss nur aufpassen, dass man sich nicht die BGA-Variante kauft, denn die kann man dann doch schlecht daheim löten, ausser man hat ne alte Friteuse :)

P.S.
Zitat:

Als ich damals 11 oder 12 war, hatte ich von meinem Vater den Kosmos 3000 bekommen
Haaa, den hatte ich damals auch. Allerdings sah der Kosmos-Baukasten von mir irgendwie doch etwas anders aus damals, etwas größer, orange und mit einem transparenten Deckel wie manche Plattenspieler. Weisst du zufällig, was das für ein Modell war?
Das Teil fand ich damals faszinierend und ich hatte höllischen Respekt vor den großen Transistoren.
(von denen ich nun ja weiss, dass es Pfennigartikel sind, die im Kosmos nur auf riesige Leiterplatten gelötet wurden, damit man sie besser stecken kann :))
Der Phototransistor war auch ned schlecht... :)

Baum21 5. Dez 2013 16:40

AW: USB Programmieren
 
Wenn ich einen Transistor schalten wollen würde, wie mus ich den dann mit der Zusatzplatine verbinden und wie bekomme ich es hin das der Transistor nacher Strom bekommt? hab keinen Plan :D

himitsu 5. Dez 2013 17:11

AW: USB Programmieren
 
Du steuerst die Basis des Transistor einfach so an, wie die LED, in dem beiliegenden Beispiel ... nur den Vorwiederstand solltest du anpassen, nicht daß er noch abraucht.


Vermutlich: An einem IO-Port des µC, dessen Programm auf einen Befehl via COM-Port wartet und entsprechend den Ausgang und darüber den Transistor ansteuert.

Baum21 5. Dez 2013 19:28

AW: USB Programmieren
 
Ich versuchs mal.
Wenn ich irgendwas rumprobier, kann es passieren das ich den USB oder den Computer dabei schrotte? :D Also muss ich aufpassen oder kann ich rumexperimentieren? :)

himitsu 5. Dez 2013 20:36

AW: USB Programmieren
 
Wenn du irgendwie eine Überspannung da reinbringst oder gar Netzspannung, dann kann der Computer kaputgehn.

Wenn du den IO-Pin des Microcompters überlasstest, dann kann nur dessen Port durchbrennen.



Aber wenn du nicht was wirklich Schlimmes mit dem Ausgang anstellst, dann ist der Computer eigentlich sicher.
Immerhin liegen zwischen dem Anschluß und dem Compuer mehrere Microchips, die zuerst kaputtgehen müssen.

Baum21 5. Dez 2013 20:41

AW: USB Programmieren
 
Und welcher ist der IO-Pinn? :/

himitsu 5. Dez 2013 20:44

AW: USB Programmieren
 
Keine Ahnung?

Hab ja keine Beschreibung der Komponenten.
Aber du könntest ja das bestimmt in der Dokumentation nachlesen. :zwinker:

Sir Rufo 5. Dez 2013 20:51

AW: USB Programmieren
 
Zitat:

Zitat von himitsu (Beitrag 1238678)
Vorwiederstand

Obwohl er wieder stand, leistete er keinen Widerstand :mrgreen:

himitsu 5. Dez 2013 20:58

AW: USB Programmieren
 
Der kleine Kringel versteckt sich nun schon seit so vielen Jahren .... ich glaub langsam ist er durcheingebrannt.

http://www.allein-erziehend.net/forum/beitrag11010.html

hathor 5. Dez 2013 22:46

AW: USB Programmieren
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Baum21 (Beitrag 1238693)
Ich versuchs mal.
Wenn ich irgendwas rumprobier, kann es passieren das ich den USB oder den Computer dabei schrotte? :D Also muss ich aufpassen oder kann ich rumexperimentieren? :)

Lies das Handbuch - ist auf der CD.

Ab Seite 50 sind Experimente beschrieben.
Beispiel LED ein/aus

Baum21 6. Dez 2013 12:50

AW: USB Programmieren
 
Also, ich hab jetzt mal die Platine so wie beschrieben besteckt und wenn ich den USB jetzt in den PC steck blinkt si ein paar mal :) so wie es auch normale USB-Sticks machen.
Aber wie mach ich das ganze in delphi?
Der code in VB sieht so aus:
Delphi-Quellcode:
Private Sub Option1_Click(Index As Integer) 'bei LED AN
LED_Click (False) ,ruft Funktion LED_Click mit False auf
End Sub
Private Sub Option2_Click(Index As Integer) 'bei LED AUS
LED_Click (True) 'ruft Funktion LED_Click mit True auf
End Sub
Der eigentliche Programmablauf erfolgt in dieser Funktion:
Delphi-Quellcode:
Private Function LED_Click(AnAus As Boolean)
On Error GoTo LED_Click_fehler
LoggerList.Clear
If FT_GetNumDevices(lngNumDevices,vbNullString,FT_LIST_BY_NUMBER_ONLY)<>FT_OK Then
LoggerList.AddItem ("Fehler bei Aufruf: FT_GetNumDevices funktionierte nicht")
Exit Function
Else
LoggerList.AddItem ("Anzahl vorhandener USB-Geräte: " & lngNumDevices)
End If
das ganze geht ja mit D2XX, aber ich seh nirgends etwas das die Klasse importiert oder so?
Und wie importier ich eine Unit in delphi? (Hab noch nie mit mehreren Units gearbeitet :oops:) Einfach in die Uses geht irgendwie nicht, da meckert er rum das er die Unit nicht finden kann.
Außerdem unterstreicht er ein paar Wörter in D2XX z.B. Dialogs, wenn ich ein neues Programm schreiben will nennt er das FMX.Dialogs?
Hat sich was geändert? hab schon ewig nicht mehr rumprogrammiert. :D
soll ich Dialogs in FMX.Dialogs umbenennen?

hathor 6. Dez 2013 17:55

AW: USB Programmieren
 
Bei Delphi-Version XE5 kann ich Dir leider nicht helfen.

Perlsau 6. Dez 2013 18:16

AW: USB Programmieren
 
Zitat:

Zitat von Baum21 (Beitrag 1238775)
Und wie importier ich eine Unit in delphi? (Hab noch nie mit mehreren Units gearbeitet :oops:) Einfach in die Uses geht irgendwie nicht, da meckert er rum das er die Unit nicht finden kann.

Wenn du Units in die Uses-Klausel aufnimmst, müssen die ja irgendwo gespeichert sein, nicht wahr? Entweder sie sind in deinem Source-Ordner gespeichert, oder aber in irgend einem der Ordner, die in den Bibliothekspfaden eingetragen sind.

Baum21 6. Dez 2013 18:38

AW: USB Programmieren
 
Zitat:

Zitat von hathor (Beitrag 1238826)
Bei Delphi-Version XE5 kann ich Dir leider nicht helfen.

ich hab nen neuen PC und nur die Trial, die ich aber doof find. Oder ich bin der doofe :D
egal ich lad mir jetzt einfach eine andre Version runter, bei der nicht alles was ich noch weiß geändert ist ^^

Medium 7. Dez 2013 01:43

AW: USB Programmieren
 
Irgendwie habe ich hier den dringenden Verdacht, dass hier jegliche Grundlagen fehlen. Sowohl was E-Technik angeht, als auch Programmierung. Mit diesem Wissensstand würde ich mich bei sowas eher nicht an meinen Haupt-PC trauen, sondern lieber ein altes Testgerät nehmen, wo es nicht schade ist, wenn mal etwas anfängt rot zu glimmen.
Zudem kauft man Delphi, einfach so runterzuladen gibt es imho nur die jeweils aktuelle Trial. Und wenn es keine Header-Übersetzung für die offenbar benutzte DLL (LED_Click() ist zumindest keine Built-In Methode) für Pascal gibt, hilft auch eine ältere Version nicht weiter. Sondern nur eine solche finden, oder selber machen.

Warum nimmst du eigentlich nicht VB, wenn dies die vom Hersteller am besten unterstützte Sprache ist?

Baum21 18. Dez 2013 20:03

AW: USB Programmieren
 
Also, habs jetzt mal mit VB probiert, ich selbst verstehs zwar nicht so wirklich aber die Beispielsprogramme gehen. :/
http://www.delphipraxis.net/attachme...-ledeinaus.jpg
Warum brauch ich hier zum Beispiel die Verbindung zwischen DTR und D4? Ich kenn mich nur mit den Grundkenntnissen in der Elektronik aus +-, Parallel- und Reihenschaltung und die verschiedenen Bauteile.. Ich hab mir das eigendlich so vorgestellt das zum Beispiel DTR Plus und D4 Minus ist und ich einfach die Spannung bestimmen kann. Ich wollte eigendlich nur 4 Transistoren über USB schalten also den eigendlichen Stromkreis mit einer Baterie versoregen wie kann ich das machen?

hathor 18. Dez 2013 21:38

AW: USB Programmieren
 
"Ich wollte eigendlich nur 4 Transistoren über USB schalten..."

Transistoren sind Schalter.
WAS willst Du schalten?
Willst Du nur experimentieren oder willst Du konkret etwas zusammenbauen für einen bestimmten Zweck?

blackfin 19. Dez 2013 00:11

AW: USB Programmieren
 
Zitat:

Ich hab mir das eigendlich so vorgestellt das zum Beispiel DTR Plus und D4 Minus ist und ich einfach die Spannung bestimmen kann.
Ohne jetzt unhöflich zu wirken, du weisst aber schon in der Elektrotechnik den Unterschied zwischen Analog- und Digitaltechnik? :)
Einfach eine Spannung an einem Port "einzustellen" wird so einfach nicht gehen, die Digitalschaltung arbeitet auf einem bestimmten Logik-Level, meist 12V, TTL (5V) oder 3.3V :)
Um Spannungen zu messen, brauchst du bei einer Schnittstelle zu einem PC einen A/D-Wandler. Das ist meist noch recht einfach, sofern es nicht allzu präzise sein muss.
Und um analoge Spannungen auszugeben, einen D/A-Wandler. Da wirds dann schon komplexer :)
Generell kennt die Digitaltechnik an sich keine Spannungen.
Es gibt nur Strom an / Strom aus bzw. Spannung angelegt / Spannung nicht angelegt (1/0) und das mit dem entsprechenden Logikleveln der Bauteile / Schaltung.

Transistoren schalten hat auch erstmal gar nichts mit RS232 und DTR o.Ä zu tun. Was sollen deine Transistoren überhaupt schalten?
Weisst du überhaupt, wie ein Transistor funktioniert? Wenn nicht, ist das nichts, weswegen man sich schämen müsste, aber Einlesen musst du dich wohl oder Übel in die Materie schon.
Ich empfehle dir z.B. das Elektronik Kompendium, einfach mal danach Googeln.

Was willst du mit deiner Schaltung denn genau erreichen? Bzw. was stellst du dir überhaupt vor?
Wenn wir das wissen, können wir dir vielleicht einen gedanklichen Rohbau liefern :)

Baum21 19. Dez 2013 11:13

AW: USB Programmieren
 
Mit den Transistoren wollte ich eigentlich nur ein paar LEDs anschalten.. geht natürlich auch direkt an den USB aber ich wollts mit Baterie. Und ja eigentlich will ich nur ein bisschen rumexperimentieren :)
Wie Transistoren funktionieren weiß ich aber von Analog und Digital versteh ich nix, ich guck mal in Wikipedia :D
Hab mir das ganze auch ein bisschen einfacher vorgestellt :D

Baum21 19. Dez 2013 11:17

AW: USB Programmieren
 
Und ist mein USB digital oder analog? im Beispiel die LED leuchtet ja auch?

hathor 19. Dez 2013 11:23

AW: USB Programmieren
 
Baum21: BITTE GIB ES AUF!!!

Medium 19. Dez 2013 11:29

AW: USB Programmieren
 
USB ist die Anschluss- und Kommunikationsart. Was du meinst, wird wohl dein Board sein, wo der PIC drauf steckt, mit dem du dann via USB mit deinem PC kommunizierst. Wenn schon so dermaßen grundlegende Begrifflichkeiten so unklar sind, und verstehe das bitte nicht als Angriff, solltest du ganz dringend ein paar Wochen Lektüre (nicht nur kurz Wikipedia durchscrollen!), oder vielleicht einen VHS Kurs o.ä. in Betracht ziehen. Man lernst zwar durchaus spielerisch und durch einfach mal machen, aber so komplett ohne Grundlage halte ich das Vorhaben für nicht sinnvoll, und potenziell zerstörerisch ;)

Baum21 19. Dez 2013 13:01

AW: USB Programmieren
 
:(
hmm, trotzdem wenn ich anstelle der LED einen Transistor einbauen würde müsste es doch gehen?
Und Wozu ist die Verbindung bei DTR und D4?
(Nur noch die zwei fragen :) )

himitsu 19. Dez 2013 13:21

AW: USB Programmieren
 
D4 ist der Port 4, den du vom Programm ansteuerst und über den dann die LED gegen Masse gezogen wird.

Port im Programm = 0 >>> Anschluß AUS >>> LED an

Also könnte man die LED auch "direkt" von da auf eine der beiden 5V legen und es würde eben so funktionieren.
Die grauen Stiche dürften vermutlich eine Verbindung auf der Leiterplatte darstellen und bei dem roten Bogen mußt du eine Verbindung herstellen.

joehd 5. Jan 2014 18:15

AW: USB Programmieren
 
Liste der Anhänge anzeigen (Anzahl: 1)
Also in einem anderen Thread habe ich eine Frage zur Seriellen Communikation gestellt darin ist auch eine Unit die sehr einfach ist.
Die kannst du nehmen und die Register schalten ..

Delphi-Quellcode:
//===========================================
procedure TForm1.Button6Click( Sender: TObject );
begin
  ComPort1.SetRTS( true );
end;

//===========================================
procedure TForm1.Button7Click( Sender: TObject );
begin
  ComPort1.SetRTS( false );
end;

//===========================================
procedure TForm1.Button8Click( Sender: TObject );
begin
  ComPort1.SetDTR( true );
end;

//============================================
procedure TForm1.Button9Click( Sender: TObject );
begin
  ComPort1.SetDTR( false );
end;

end.
Dann hast du schon mal 2 Ausgänge

Als Transistor würde ich einen NPN nutzen z.B. BC 546
die Grundschaltung ist einfach .

Emitter nach Minus GND
Basis über einen Widerstand ( 10 KOhm ) an den Ausgang positives Signal schaltet den Transistor durch
Deine z.B. LED Schaltest du über plus und einen Vorwiederstand ca 1 KOhm an +5 Volt
Siehe auch Bild .
R2 ist Quasi die LED und der Vorwiderstand der LED. Auf die Richtige Polung der LED achten ! sonst geht sie nicht ..
R_LED berechnet sich aus R = U/I = (UB -ULED)/ ILED = (5Volt-2Volt)/0,005 A = 600 Ohm ich nehme immer 1 KOHM das klappt dann schon ...

Über den BS546 kannst du ca 200 mA schalten und PTOT ( maximale Verlustleistung am Transistor dann ist er TOT ;-)) sind 500 mWatt ...
wenn du ein Relais damit betreiben möchtest dann muss da noch eine Schutzdiode über die Spule die dann in Sperrrichtung betrieben wird. Also Kathode an + und Anode an -.
Die Schaltung kann man auch an einem µC ( Pic oder Microcontroller ) nutzen. Die Maximale Belastung eines USB Anschluss darf 500 mA nicht überschreiten. (USB 2.0 ) Sonst ist er futsch. Ich würde nicht mehr als 400 machen.
Grüße Joachim

ggf noch benötigte Links mit Delphi Beispielen wie schon jemand geschrieben der FT232R kann mehr ...

http://www.ftdichip.com/Drivers/VCP.htm

Die benötigte Unit für die Serielle Kommunikation ist die TCOMPORT die habe ich schon mal hier hochgeladen. Diese ist jedoch nicht von mir !

OlafSt 5. Jan 2014 19:19

AW: USB Programmieren
 
Ist ja lustig... Das Bild sieht dem Bild frappierend ähnlich, das ich vor Jahren mal für ein Transistor-Tutorial gebastelt habe ;)

ulilüding 5. Jan 2014 21:21

AW: USB Programmieren
 
Um die ganze Sache mal TECHNISCH anzugehen: USB-Stecker einstecken kann ja wohl jeder. Was dranhängt? Sieht hier nach einem Wandler auf eine RS-232-Schnittstelle aus, wie RTS vermuten läßt. Eine software wird also die pins dieser Schnittstelle setzen oder abfragen. Dabei ist es dann schon egal, ob diese direkt in der PC-hardware vorhanden ist oder über einen USB-Wandler-Baustein "vorgegaukelt" wird. Das macht hier offensichtlich ein PIC (Mikrocontroller von microchip). Der bezieht seinen Strom über die USB-Schnittstelle, und für ein paar LEDs reicht dieser Strom allemal auch noch. Die Batterie ist also überflüssig. Die RS-232-pins können die LEDs möglicherweise dennoch nicht zum zufriedenstellenden Leuchten bringen. Das liegt daran, daß dort mit wesentlich höheren Spannungen gearbeitet wird als den 5 Volt vom USB. Die Energie ist demzufolge etwas schlapp, selbst für die 20mA für eine LED. Die Umsetzung per Transistor ist also keine schlechte Idee. Da die RS-232-Signale im Bereich -15..-3 (LO) und +3..+15 (HI) Volt liegen, reicht der schon erwähnte npn-Transistor (z.B. BC237) und ein Basis-Vorwiderstand im Bereich 10..47KOhm aus. Die LED sollte dann zwischen +5V (vom USB) und dem Kollektor liegen - Vorwiderstand nicht vergessen! - 150 Ohm für 20mA. Der Emitter liegt auf GND. So kann man durch setzen der RS-232-flags die LEDs einschalten. Mit der Batterie, z.B. 9-Volt-Block, geht's auch. Minus an GND, Plus an die LED (statt den +5V vom USB), Vorwiderstand anpassen (350 Ohm für 20mA bei 9V). Die Signale, die die Zustände der RS-232-Schnittstelle bestimmen, kommen aber mit Sicherheit aus dem PIC. Und da kann man die LEDs direkt dranzwacken, denn jeder PIC kann locker 20mA sink current liefern. Sol heißen, LED auf +5V, üer Vorwiderstand auf den entsprechenden PIC-port. Aber: die LED leuchtet dann bei LO-pegel. Das mit dem Transistor geht hier genauso. Für hellere LEDs, die mehr Strom brauchen, den Vorwiderstand anpassen. Außerdem muß der Transistor diesen Strom schalten können, und die Stromversorgung muß den Strom liefern können (USB: bei 500mA ist Schluß, und der PIC braucht auch noch Strom. Batterie: 9-Volt-Block ade, die ziehen NIX vom Teller). Da kann man dann über ein externes Netzteil nachdenken, weiterhin über eine PWM-Helligkeitsregelung für die LED (verringer die Verluste) usw., also nach oben offen. Viel Glück. LGU

joehd 6. Jan 2014 02:05

AW: USB Programmieren
 
Zitat:

Zitat von OlafSt (Beitrag 1242298)
Ist ja lustig... Das Bild sieht dem Bild frappierend ähnlich, das ich vor Jahren mal für ein Transistor-Tutorial gebastelt habe ;)

Ist aus dem Internet gefunden ist nicht von mir auf jeden Fall :-D


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:58 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz