PC herunterfahren über externen Schalter, wie am besten umsetzen?

3 Antworten

Auch wenn der Arduino "zu schade" ist für nur einen Befehl ab zu setzen, andere Hardware ist teurer und wird kompliziert.

Nimmst Du einen Arduino mit "U4", dann kann der sich als USB Gerät am PC anmelden und zu einem USB Gerät werden.

Als Tastatur kann der dann die "Multimediataste" Herunterfahren senden.

Einfacher geht es nicht. Strom kommt über das USB Kabel, Ausschalttaste wird ebenfalls über dieses Kabel gesendet.

https://www.amazon.de/LAFVIN-Atmega32U4-Development-Microcontroller-Compatible/dp/B0CQP3V416

Da kannst Du auch gleichzeitig Mausbefehle senden. Mit einem Poti und Fußpedal kannst Du Dir dann auch gleichzeitig einen Autoclicker da rein programmieren.

Du kannst ja mit dem Not-Aus anfangen und dann später erweitern.

Woher ich das weiß:Berufserfahrung
Commodore64  17.03.2024, 13:39

P.S.:

Hier steht was Du da machen musst:

https://www.arduino.cc/reference/de/language/functions/usb/keyboard/keyboardwrite/

Beachte den Link "Hotkeys".

Das Beispiel kannst Du fast übernehmen. Du musst nur aufpassen, dass der rein gedrückte Not-Aus ja dauerhaft an (oder aus) ist.

Da musst Du abfragen, also am Anfang warten bis der Schalter raus gezogen wird. Das kann man in einer einfachen Schleife machen. Also schleife so lange laufen lassen wie der Schalter drinnen ist. Ist er raus gezogen geht das Programm dann weiter. Dann wartet der also auf das wieder rein drücken.

Zum Runter fahren gibt es zwar eine spezielle Multimediataste, leider finde ich die nicht in der Arduino Hotkey Tabelle.

Da müsste man noch etwas nachforschen wie man den Code dieser Taste sendet.

Aber es geht auch mit "Win-X" und dann "U" "U" - wenn ich mich richtig erinnere. Die Sequenz kann der Arduino problemlos senden. Als Linuxuser kann ich das derzeit leider nicht ausprobieren.

2
Ich dachte man könnte vielleicht etwas wie einen Arduino o.ä. mit dem Schalter und einem der USB Anschlüsse des PCs verbinden, der dann dem PC den Befehl zum herunterfahren gibt.

Grundsätzlich wäre das möglich. Du musst dafür über den Arduino via Serialport einen Befehl an eine Software senden, die diese serielle Schnittstelle permanent überwacht, also im Hintergrund immer läuft, und dann den Ausschaltbefehl an Windows weiter gibt. Solche Verfahren sind z.B. bei USVen Standard, damit bei Netzausfall der PC automatisch runter gefahren wird, bevor die USV leer ist und das System doch abstürzt...

RareDevil  17.03.2024, 12:40

Alternativ kann der Arduino auch über ein Relais bei betätigtem Notausschalter einen Ausschaltimpuls parallel zum Gehäusetaster geben, so dass man keine Software im Hintergrund braucht. Dann könnte man sogar evt USB-Power überwachen, und wenn USB-Power weg fällt, mit 10 sek Verzögerung per Relais auch noch die Spannungsversorgungen abschalten. Wenn man den Notaus zieht, kann man den Arduino sogar die Stromversorgung wieder einschalten lassen und mit Verzögerung auch den Rechnerstart einleiten. Denn so wäre er ja schon mit dem Gehäuseknopf verbunden und kann auch einen Einschaltimpuls geben.. Möglichkeiten gibt es viele. Kommt auf die Fähigkeiten an, und wie weit man es treiben will...

3

Simple. Du willst ja eh nicht dein PC immer hart ausmachen, sondern beim Druck auf den Button runterfahren lassen. Anderenfalls kann das zu Datenverlust irgendwann führen.

Dein Mainboard hat zwei Pins die zum Gehäuse-Powerbutton gehen. Benutze die ;). Da der Not-Aus kein Taster ist sondern ein Schalter und demnach bei der geschlossenen Position bleibt, solltest du dir entweder einen Taster holen oder ein externe Schaltung aufbauen, dass dein Vorhaben realisiert. Weil Abstürzen lassen ist genauso wie wenn du den Stecker ziehst. Das kannst du z.B. mir dem Arduino dazwischen realisieren.