USB angeschlossen?

Hallo,

gibt es eine Möglichkeit herauszufinden, ob am Nano ein USB-Kabel angeschlossen ist? Ich würde das gerne im Nano abfragen um nur dann ein paar Statuswerte über Serial.print auszugeben, wenn auch wirklich ein PC dran hängt. Andernfalls will ich den Strom lieber sparen. Aktiv erst mal was vom PC auf den Nano schreiben ("HELLO") um den Nano auf die Anwesenheit aumerksam zu machen will ich aber lieber nicht.

Danke für die Hilfe.

Hallo,

ich kenne das nur von den Boards mit "nativem USB", also ohne USB-seriell Wandler zwischen Controller und USB. Das sind Boards wie der Micro, Leonardo, Teensy, usw...

Da sieht man oft Code wie diesen

void setup() {
  Serial.begin(9600);
  while (!Serial) ;

Damit wird bei Start gewartet, bis die USB-Verbindung steht. Sonst kennt diese Information wahrscheinlich nur der USB-Wandler, da kommt man aus dem Sketch nicht so gut dran.

Vonderhecke:
.... um nur dann ein paar Statuswerte über Serial.print auszugeben, wenn auch wirklich ein PC dran hängt. Andernfalls will ich den Strom lieber sparen.

Wie willst Du den Strom sparen und wieviel Strom glaubst Du zu sparen?
Grüße Uwe

Die Einsparung habe ich (durch einen dicken Tiefpass gemittelt) gemessen und sie beträgt 0,53 mA. Das sind bei einem Normalverbrauch von 3,17 mA (Sleepmodus) schon ne ne Menge ( ca. 17% die ich noch einsparen kann)

Wie versorgst du denn den Nano, wenn kein USB-Kabel angeschlossen ist (Akku, externes Netzteil)?

Es ist ein zugegeben dickes Bleiakku aber bei dem machen 17% auch was aus.

Vonderhecke:
Es ist ein zugegeben dickes Bleiakku aber bei dem machen 17% auch was aus.

Wie lädst du den Bleiakku? Ich hoffe du versorgst den Nano nicht gleichzeitig mit USB und Akku?

Ca. alle 4 Wochen am Ladegerät.

verstehe es zwar den Sinn dahinter immer noch nicht, aber du könntest ja die Spannung vom USB messen.

Nochmal meine Frage: Betreibst du den Nano parallel mit Akku und USB? Solltest du definitiv vermeiden, V+ vom USB-Kabel trennen, oder separat die Spannung vom USB auslesen, wie noiasca schon meinte, aber nicht zusammen als Versorgung nutzen.

Das ist ne gute Idee. Ich werde das mal ausprobieren, wird aber etwas dauern. Danach schreibe ich ob das so geht.

Ob USB angeschlossen ist müßtest Du doch an den vorhandenen oder nicht vorhandenen 5V erkennen.
Ein NANO ist nicht geeignet um im Sleepmodus betrieben zu werden. Ein ATemga328 im sleepmodus verbraucht einige µA.
Überarbeite noch mal Die Spannungsversorgung.

Grüße Uwe

uwefed:
Ein NANO ist nicht geeignet um im Sleepmodus betrieben zu werden.

Warum nicht? Kannst du das genauer auslegen?

Warum nicht?

Frage an dich selbst: leuchtet eine LED wenn der NANO läuft?

uwefed:
Ein NANO ist nicht geeignet um im Sleepmodus betrieben zu werden. Ein ATemga328 im sleepmodus verbraucht einige µA.

Vonderhecke:
Warum nicht? Kannst du das genauer auslegen?

Weil auf dem NANO einige Bauteile drauf sind (LED, FT232), die auch im Sleepmodus noch munter Strom verbrauchen.
Wenn Du ein Projekt im Stromsparmodus betreiben willst, dann mußt Du einen ATmega328 alleine oder einen Arduino MINI oder PRO MINI nehmen.
Auch mußt Du eine Spannungsversorgung auf minimalen Eigenverbrauch trimmen.

Grüße Uwe

Die LED hatte ich schon ausgelötet. Wieviel braucht denn der FT232?

Vonderhecke:
Die LED hatte ich schon ausgelötet. Wieviel braucht denn der FT232?

Anders gesagt: der ATmega328 in sleep-Modus verbraucht weniger als 0,1µA.
Grüße Uwe

Ich habe das mit den 5V vom USB auf einen Eingang mal wie im Foto zu sehen getestet und das funktioniert.
Man muss noch einen Pulldown einbauen, der auf dem Bild nicht zu sehen ist. Aber Uwe hat recht, richtig runter kommt man nur mit einem ATmega328 alleine oder einen Arduino MINI.

Vielen Dank für eure Hilfe, Ingo


Das ist kein Arduino NANO sondern ein NANO Nachbau. Der hat eine CH340 statt dem FT232.
Die kenne ich gar nicht und kann nichts genaues sagen.
Grüße Uwe

Am schönsten wäre es, wenn der CH340 (oder FT232) nur von den 5V aus dem USB versorgt würde und nicht über Vin. Brauchen tut man den ja eh nur wenn USB angeschlossen wird.