Ich habe einen Lüfter, der über USB betrieben wird. Diesen würde ich gerne kontrolliert per Software ein- und ausschalten. Dazu suche ich einen Zwischenstecker, der sich am Rechner als "Gerät" anmeldet, in das man irgendwie '0' und '1' oder ähnliches reinschreibt, und der die Versorgungsspannung an seinem Ausgang entsprechend schaltet. Die Daten müssen nicht unbedingt durchgeschleift werden, stört aber auch nicht. Weiß jemand, ob es sowas gibt? Meine Suche im Web blieb bisher leider erfolglos.
[Suche] USB-Zwischenstecker-Schalter
-
-
Schon alt, aber vielleicht geht das ja: https://stackoverflow.com/ques…-supply-on-off-with-linux
Edit: https://github.com/mvp/uhubctl
Hört sich vielversprechend an
-
Also ich würde ja sagen: Gibt es, nennt sich "Arduino".
-
Ein paar Kollegen verwenden für ihre debugger, die sich gerne mal aufhängen, das hier:
https://www.yepkit.com/ (YKUSH)
-
Das uhubctl ist eine gute Idee. Ich gucke gerade, daß ich die Aufladung meines Smartphones am USB-Hub des Monitors bei 75% (mittels kdeconnect-cli als "Sensor") begrenzen kann
-
Der preiswerteste Arduino macht genau das, am Besten zusammen mit einem einfachen Mosfet. Programmieren per C/C++, Upload per Linux oder Win, genug helfende Hände und kostet max 5€. Lässt sich dann mit Befehlen per virtuellem COM Port steuern, als würde es das schon immer tun.
Ich denke hier gibt es genug Mitleser, die bei Bedarf gerne helfen.
-
Danke für die Hinweise
Der erste Link aus #2 sah zwar im ersten Moment vielversprechend aus, aber damit wird es wohl nicht gehen, weil der Lüfter ja kein "richtiges" USB-Device ist.
Aber ich habe von einem früheren Projekt noch ein paar Attiny85 hier rumliegen, aus so einem lässt sich sicher was basteln.
-
Ein Atmega(8/168/328) kostet nur einen Oiro mehr und macht das Leben einfacher. Die Attiny sind Klasse, aber serial damit ist doof.
-
-
Ach ja, falls das ein 5V Lüfter für einen Raspberry ist, kann man den auch per Python über die GPIO Pins schalten. Alles, was dann fehlt ist ein Transistor/FET und ein Python script. https://www.raspberrypi-spy.co…rpi-gpio-header-and-pins/
-
Falls es jemanden interessiert: Ich habe an einen ATTINY85 eine USB-Buchse angelötet (die Lötfahnen des Gehäuses an P0 und P5 - da die Pins defaultmäßig Input sind kein Problem wegen Kurzschluss), und die Versorgungsspannung über einen Transistor geschaltet, der an P1 hängt (der Lüfter zieht 100mA, was für direktes Ansteuern zu viel ist). Die Steuerung erfolgt direkt mit dem DigisparkCDC/CDC_LED Beispiel, das beim Arduino-IDE dabei ist:
Code
Display More#include <DigiCDC.h> void setup() { // initialize the digital pin as an output. SerialUSB.begin(); pinMode(1,OUTPUT); } // the loop routine runs over and over again forever: void loop() { //turns led on and off based on sending 0 or 1 from serial terminal if (SerialUSB.available()) { char input = SerialUSB.read(); if(input == '0') digitalWrite(1,LOW); else if(input == '1') digitalWrite(1,HIGH); } SerialUSB.delay(100); // keep usb alive // can alos use SerialUSB.refresh(); }
Mit "echo 1 > /dev/ttyACM0" kann damit der Lüfter eingeschaltet werden, '0' statt '1' schaltet ihn wieder aus.
Die Verbindungsstelle zwischen Widerstand und Transistor habe ich nach Aufnahme des Fotos noch etwas nach hinten (Richtung Buchse) verschoben, damit es beim Einstecken in ein Metallgehäuse keine Probleme gibt.
-
Super!
-
Ein zusätzlicher pull-down Widerstand von Basis nach GND oder aber von P1 nach GND wäre toll.
Jeder Wert von 10k..220k sollte dafür ok sein.
Solange der Tiny noch nicht initialisiert ist, steuert sonst der npn-Transistor weder voll auf noch zu.
-
Rein interessehalber: Warum? Kein Basisstrom...
-
An P1 hängt auch die LED mit Vorwiderstand.
-
Stimmt nicht.
Ein *offener* Ausgang liefert sehr wohl etwas Basisstrom, nur eben zu wenig, steuert dann den Transistor halb durch und bringt den Transistor in die Nähe der Leistungsanpassung zwischen Transistor und Lüfter ( = beide halbe Leistung). Für 100mA bräuchte der bc547b Ib >= 2 * (100mA/200) = 1mA, bekommt aber für eine gewisse Zeit 0.1..0.5mA.
Müssen wir hier wirklich immer Elektronik-Basics bis zum bitteren Ende durch diskutieren, wenn jemand einen Tipp gibt?
-
Quote
An P1 hängt auch die LED mit Vorwiderstand.
Hilft nicht - die Vbe liegt bei ~0.7 V, während die LED > 1.8V hat.
-
Sagen wir mal so: es funktioniert, mehr wollte ich nicht ;-).
-
Jup.
Participate now!
Don’t have an account yet? Register yourself now and be a part of our community!