Hallo, gibt es eine Möglichkeit einen PIN auf dem Mainboard per Betriebssystem digital High oder Low zu setzen? Konkret geht es darum Beleuchtung im PC bei Bedarf ein bzw. auszuschalten. Wäre es möglich hierfür einen Lüfteranschluss zu vergewaltigen? Mainboard ist ein Gigabyte X79S-UPS Andernfalls würde ich einfach einen ESP8266 verbauen und die beleuchtung über WLAN schalten.
Lars schrieb: > gibt es eine Möglichkeit einen PIN auf dem Mainboard per Betriebssystem > digital High oder Low zu setzen? Sofern eine serielle Schnittstelle vorhanden ist, lassen sich zwei der Handshakeleitungen dafür "missbrauchen". > Wäre es möglich hierfür einen Lüfteranschluss zu vergewaltigen? Nein. > Andernfalls würde ich einfach einen ESP8266 verbauen und die beleuchtung > über WLAN schalten. Wenn das "einfach" ist ... Du könntest auch einen µC mit USB-Funktion an einen USB-Port hängen und den die Angelegenheit erledigen lassen. Hier sollte ein simpler AtTiny85 mit V-USB genügen, den gibt es unter dem Namen "DigiSpark" mit Arduino-Unterstützung als kleine Fertigplatine.
andere Möglichkeit wäre einen SMBus header zu suchen. Der sollte i2c kompatibel sein, dann reicht eigentlich ein i2c port-expander, gibt es auch gleich mit pwm Funktionalität.
Das hier ist einfach, vermeidet auch, dass das Mainboard geschrottet wird, wenn was schief läuft: https://shop.codemercs.com/de/io-warrior24-starterkit.html
man könnte auch ganz einfach einen Schalter nehmen, der erfüllt deine Anforderung zu 100%
Guido Körber Wie unterscheidet sich das von einem Arduino für 2 Euro?
Hans schrieb: > Wie unterscheidet sich das von einem Arduino für 2 Euro? wenn du den Schalter meinst, dann dadurch dass er ohne Strom und ohne Software funktioniert.. nur etwas Muskelkraft
Hans schrieb: > Wie unterscheidet sich das von einem Arduino für 2 Euro? Darin, dass das direkt funktioniert und es ordentliche Doku und Software dazu gibt. Da muss man keinen Mikrocontroller mehr flashen usw.
ODer USB zu UART Datenkabel..mit DTR Signal..doer noch besser sowas..da gibte es im Netz samplecode für C, Pascal und Python..bzw der ist sogar schon fertig..das Du Ausgänge schalten kannst.. https://www.ebay.de/itm/CH341A-Programmer-USB-to-UART-IIC-SPI-TTL-ISP-EPP-MEM-Parallel-Onboard-Converter/173615086065?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2057872.m2749.l2649 Mehr code braucht es da nicht sogar mit Grafischer Oberfläche..das Beispiel ist Pascal/Lazarus/Delphi. Es sind sogar gleich codebeispiele bei, wie Du ein 16x2 LCD ansteuern kannst etc pp Ich hatte jetzte einfach mal Pascal angehängt, da sich das so direkt compilieren lässt...bei C geht das vermutlich wieder nicht mal eben so einfach..da ist alles in cpp h und x anderen Dateien aufgeteilt... Bei dem code einfach noch die CH341DLL in den gleichen Ordner kopieren und mit lazarus kompilieren..fertig schon hast Du Buttons und kannst die Ausgänge schalten und sogar Eingänge abfragen!
1 | unit Unit1; |
2 | |
3 | interface |
4 | |
5 | uses |
6 | Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, |
7 | StdCtrls, Spin, CH341DLL; |
8 | |
9 | type |
10 | TForm1 = class(TForm) |
11 | ChipIndex: TSpinEdit; |
12 | OpenBtn: TButton; |
13 | CloseBtn: TButton; |
14 | LEDBtn: TButton; |
15 | ReadBtn: TButton; |
16 | Label1: TLabel; |
17 | ReportList: TListBox; |
18 | procedure OpenBtnClick(Sender: TObject); |
19 | procedure CloseBtnClick(Sender: TObject); |
20 | procedure LEDBtnClick(Sender: TObject); |
21 | procedure ReadBtnClick(Sender: TObject); |
22 | procedure AddReport(aLine: String); |
23 | private |
24 | { Private-Deklarationen } |
25 | LEDStatusByte: Byte; |
26 | public |
27 | { Public-Deklarationen } |
28 | end; |
29 | |
30 | var |
31 | Form1: TForm1; |
32 | |
33 | implementation |
34 | |
35 | {$R *.DFM} |
36 | |
37 | procedure TForm1.OpenBtnClick(Sender: TObject); |
38 | begin |
39 | //Verbindung zum Chip herstellen... ChipIndex: 0= 1.Chip am USB, 1= 2.Chip, usw. |
40 | if (CH341OpenDevice(ChipIndex.Value)>0) then AddReport('DeviceOpen...OK') |
41 | else AddReport('DeviceOpen...error!'); |
42 | LEDBtnClick(self); |
43 | end; |
44 | |
45 | |
46 | procedure TForm1.CloseBtnClick(Sender: TObject); |
47 | begin |
48 | //Verbindung schliessen... |
49 | CH341CloseDevice(ChipIndex.Value); |
50 | AddReport('Closed'); |
51 | end; |
52 | |
53 | procedure TForm1.LEDBtnClick(Sender: TObject); |
54 | var Buffer: Byte; |
55 | BufferLen: cardinal; |
56 | begin |
57 | if LEDStatusByte=0 then LEDStatusByte:=1; |
58 | |
59 | // Ein Byte senden... (LED 0...7) |
60 | BufferLen:=1; |
61 | Buffer:=not LEDStatusByte; //Output LOW = LED eingeschaltet! |
62 | if CH341MemWriteAddr0(ChipIndex.Value,@Buffer,@BufferLen) then AddReport('Write...OK --- Status = '+IntToStr(Buffer)) |
63 | else AddReport('Write error!'); |
64 | LEDStatusByte:=LEDStatusByte shl 1; //Lauflicht |
65 | end; |
66 | |
67 | procedure TForm1.ReadBtnClick(Sender: TObject); |
68 | var Buffer: Byte; |
69 | BufferLen: cardinal; |
70 | begin |
71 | //Ein Byte lesen (DIL-Schalter 0...7); Schalterposition ON = Input LOW) |
72 | BufferLen:=1; |
73 | if CH341MemReadAddr0(ChipIndex.Value,@Buffer,@BufferLen) then AddReport('Read...OK --- Status = '+IntToStr(Buffer)) |
74 | else AddReport('Read error!'); |
75 | end; |
76 | |
77 | procedure TForm1.AddReport(aLine: String); |
78 | begin |
79 | ReportList.items.Add('Device '+IntToStr(ChipIndex.Value)+': '+aLine); |
80 | if ReportList.items.Count>10 then ReportList.items.Delete(0); |
81 | end; |
82 | |
83 | end. |
:
Bearbeitet durch User
Thomas S. schrieb: > man könnte auch ganz einfach einen Schalter nehmen, der erfüllt deine > Anforderung zu 100% Und am PC ist ein Roboterarm angeschlossen, der den Schalter betätigt?
auch von hier: Digispark Der kann sogar viel viel mehr: hier ein paar "nützliche" Scripts: https://www.heise.de/select/ix/2017/7/1499358388386903
Sebastian L. schrieb: > Digispark Den habe ich bereits in der ersten Antwort in diesem Thread vorgeschlagen.
Rolf M. schrieb: > Und am PC ist ein Roboterarm angeschlossen, der den Schalter betätigt? Nein, der Roboterarm schubst den Dominostein um, der die ganze Rube-Goldberg-Machine in Gang setzt
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.