Go Down

Topic: Arduino gibt bei analog/digitalRead nur '0' aus (Read 1 time) previous topic - next topic

Techniker89

Hallo,

ich habe auf meinem Raspberry einen Processing-Sketch laufen, der meine drei Arduinos steuert. Ohne dass ich auch nur ansatzweise etwas an der entsprechenden Stelle im Code geändert habe, gibt die Funktion arduino1.digitalRead(x) auf einmal nur noch 0 aus. Genauso mit arduino1.analogRead(x). Bei Ersterer ist der Pin vorher natürlich als Input definiert worden. Dieses Verhalten tritt außerdem bei allen Arduinos auf.
Die Arduinos sind über einen USB-Hub, der wiederum an ein selbstgebautes USB-Kabel ohne 5V-Leiter angeschlossen ist, mit dem Raspberry verbunden.

Wenn ich meinen Laptop direkt an einen der Arduinos anschließe und den Wert eines Pins auslese, funktioniert es. Daher vermute ich, dass es an der Schnittstelle Arduino-Processing (Firmata) liegt. Andererseits habe ich wie gesagt an der Software nichts geändert.

Habt ihr allgemeine Vorschläge, woran es liegen könnte?

HotSystems

#1
Jan 13, 2018, 12:56 pm Last Edit: Jan 13, 2018, 01:10 pm by HotSystems
Wenn ich raten darf, dein Raspi ist defekt.

Wie sollen wir bei den wenigen Informationen  da helfen ?

Edit:
Was mir gerade auffällt, wie speist du den USB-Hub ?
Ohne Spannung gibt der nix raus.
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

Techniker89

Was mir gerade auffällt, wie speist du den USB-Hub ?
Ohne Spannung gibt der nix raus.
Der hat keine externe Stromversorgung (also über den zu verteilenden USB-Anschluss, der ja in diesem Fall gar keine 5V-Leitung hat). Der Rest des Programms geht aber (z.B. digitalWrite), also kann es daran nicht liegen. Ich habe auch mal für einen kurzen Moment probiert, zwei der Arduinos MIT 5V-Leitung anzuschließen: ebenfalls kein Erfolg.

HotSystems

Der hat keine externe Stromversorgung (also über den zu verteilenden USB-Anschluss, der ja in diesem Fall gar keine 5V-Leitung hat). Der Rest des Programms geht aber (z.B. digitalWrite), also kann es daran nicht liegen. Ich habe auch mal für einen kurzen Moment probiert, zwei der Arduinos MIT 5V-Leitung anzuschließen: ebenfalls kein Erfolg.
Du verstehst es nicht.
Ein USB-Hub benötigt zum Betrieb Spannung.
Wenn der kein externes Netzteil hat, braucht er die 5Volt über USB und die hast du ja aufgetrennt.
Also hat der USB-Hub keine Spannung und kann keine Daten liefern.
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

Techniker89

Ein USB-Hub benötigt zum Betrieb Spannung.
Wenn der kein externes Netzteil hat, braucht er die 5Volt über USB und die hast du ja aufgetrennt.
Also hat der USB-Hub keine Spannung und kann keine Daten liefern.
Doch tue ich, nur dass mir das Problem eben jetzt erst aufgefallen ist. Das komische ist ja nur, dass er, obwohl ich die 5V gekappt habe, trotzdem Daten liefert, aber leider nur in die Richtung Raspberry -> Arduino. Wenn es daran liegen sollte, dann würden ja sicherlich überhaupt keine Daten fließen können.

HotSystems

....Das komische ist ja nur, dass er, obwohl ich die 5V gekappt habe, trotzdem Daten liefert, aber leider nur in die Richtung Raspberry -> Arduino. Wenn es daran liegen sollte, dann würden ja sicherlich überhaupt keine Daten fließen können.
Das macht mich stutzig.
Aber die Elektronik geht manches mal seltsame Wege.
Ich vermute, Spannung dran und dein Problem ist gelöst.
Es sei denn, es gibt noch weitere, die wir nicht sehen.
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

Techniker89

Ich vermute, Spannung dran und dein Problem ist gelöst.
Es sei denn, es gibt noch weitere, die wir nicht sehen.
Naja, zum Beispiel das hier.

Holt sich der Hub nicht sowieso seine Spannung über die USB-Ports der Arduinos (die ja am Netzkabel hängen)?

HotSystems

Holt sich der Hub nicht sowieso seine Spannung über die USB-Ports der Arduinos (die ja am Netzkabel hängen)?
Nein, üblicherweise bekommt er die Spannung vom Steuerrechner, meist ein PC, in deinem Fall wohl der Raspi.
Die Spannung liefert er dann an angeschlossene Geräte wie z.B. ein Arduino oder USB-Stick oder HD.
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

Techniker89

Also, ich habe noch mal getestet:

PC -> Arduino (Direktverbindung): funktioniert
Raspberry -> selbstgebautes USB-Kabel MIT 5V -> USB-Hub -> 1 Arduino: funktioniert auch


Was soll ich jetzt machen? Mit 5V wird der Raspberry zu sehr belastet, ohne empfängt er keine Daten.

HotSystems

Was soll ich jetzt machen? Mit 5V wird der Raspberry zu sehr belastet, ohne empfängt er keine Daten.
Du musst deine Schaltung überdenken.
Entweder die Arduinos erhalten eine separate Spannung oder du versorgst den USB-Hub mit einem externen Netzteil.
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

Techniker89

#10
Jan 13, 2018, 02:59 pm Last Edit: Jan 13, 2018, 03:11 pm by Techniker89
oder du versorgst den USB-Hub mit einem externen Netzteil.
Folgender Gedankengang:

Die Arduinos sind ja an ein stabiles 5V-Netzteil angeschlossen. Würde es Sinn machen, gleich die 5V von diesem zu nehmen und diese dann vor den Hub in mein selbstgebautes Kabel (siehe Anhang) einzubauen? Das lose rote Kabel oben sind die 5V, die nach rechts zum Hub gehen.
Oder wäre das zu unsicher und ich sollte mir lieber einen Hub mit Spannungsversorgung zulegen?

HotSystems

Ich würde den Hub über ein externes Netzteil oder den Raspi versorgen.
Und die Arduino über ein eigenes Netzteil. Also Spannung im USB-Kabel zum Arduino trennen.
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

Techniker89

#12
Jan 13, 2018, 04:18 pm Last Edit: Jan 13, 2018, 04:25 pm by Techniker89
Ich würde den Hub über ein externes Netzteil oder den Raspi versorgen.
Und die Arduino über ein eigenes Netzteil. Also Spannung im USB-Kabel zum Arduino trennen.
Lieber wäre mir ehrlich gesagt meine letzte Idee, da ich nicht wirklich Lust habe, nochmal drei Kabel aufzuschlitzen.
Die Spannung des Netzteils für den einzelnen Arduino beträgt 4,95V, sollte also passen, um es zusätzlich für den Hub zu verwenden. Die 5V des Raspberry würden dann weiterhin im Nichts enden.


HotSystems

Deine Schaltung verstehe ich nicht.

Aber wie willst du den Hub dann mit den 5 Volt vom Arduino versorgen.
Du kannst diese nicht rückwärts einspeisen.
Dazu müsste man die Schaltung des Hub kennen.
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

Techniker89

#14
Jan 13, 2018, 04:40 pm Last Edit: Jan 13, 2018, 04:41 pm by Techniker89
Deine Schaltung verstehe ich nicht.

Aber wie willst du den Hub dann mit den 5 Volt vom Arduino versorgen.
Du kannst diese nicht rückwärts einspeisen.
Dazu müsste man die Schaltung des Hub kennen.
Das mit den 5V vom Arduino habe ich wieder verworfen. Aber man könnte doch die 5V von dem Netzteil nehmen, an dem der Arduino angeschlossen ist, und die vorn an den Hub anschließen? Was spräche dagegen?

Go Up