ich habe aktuell ein Problem, das ich überhaupt nicht verstehe.
Ich habe eine Stoppuhr gebaut. Die soll per Kabel und Funk funktionieren. Sie funktioniert über Funk ohne Probleme, aber per Kabel irgendwie nicht.
Die Software ich kein Problem. Irgendwie spinnt die Hardware.
Im Sender ist ein Arduino nano verbaut, welcher die ganze Zeit die Lichtschranke überwacht und wenn jeman die Lichtschranke überquert, dann schickt er ein Signal per Funk und schaltet Pin D9 kurz auf HIGH.
In der Stoppuhr ist ein Arduino Mega Pro verbaut. D9 von dem Arduino Nano geht per Kabel an D22 Pin von dem Mega.
Wenn ich jetzt den Sender über einen Akku betreibe und der nicht mit der Stoppuhr per Kabel verbunden ist, messe ich an dem Pin D9 ganz normal 5V sobald jemand die Lichtschranke überquert. Wenn ich den Sender per Kabel mit dem D22 Pin des Megas verbinde, und dann bei HIGH die Spannung am D9 messe, messe ich immer nur 1,2V. Somit kann Mega nie HIGH am D22 lesen und die Stoppuhr fängt nicht an zu zählen.
D9 am Nano ist als OUTPUT deklariert.
D22 am Mega ist INPUT deklariert und am Pin steckt ein 10kOhm Pulldown Widerstand.
Sobald Sender und die Stoppuhr per Kabel verbunden sind, haben beide Arduinos gleiche Masse.
Ich hoffe, ihr habt den Aufbau verstanden. An der Software kann es eigentlich nicht liegen, weil die sonst ohne Probleme läuft.
Zuerst mal den pulldown entfernen und die Spannung nochmal messen.
Wenn die immer noch unerwartet niedrig ist, 1k in die Leitung zwischen Nano und Mega schalten und nochmal messen.
Pulldown/up Widerstände sind hier für den Normalbetrieb überflüssig. Das wäre höchstens für den Fall relevant dass der Empfänger aktiv ist, aber der Sender gerate bootet und die Ausgänge noch hochohmig sind
Du brauchst auch unbedingt eine Masse-Verbindung zwischen den zwei Controllern
Solange der Sender läuft hast du entweder Low oder High. Etwas anderes kann nur auftreten wenn der Sender-Arduino gerade bootet. Dann ist der Ausgang kurz hochohmig. Wenn dieser Fall Probleme macht kann man einen Widerstand einbauen. Ansonsten bringt er nichts.
Ein Taster ist was anderes. Da hängt der Eingang in der Luft wenn nichts gedrückt ist und ist daher undefiniert.
Kann sein, dass deswegen mein erster Sender kaputt gegangen ist? Bei dem ersten Aufbau war auf einmal D9 mit der Masse verbunden.. Habe es mit dem Multimeter herausgefunden..
Wie kann ich mich davor schützen?
Wenn aber D22 von dem Mega als Input deklariert ist, geht der Pin doch nicht von alleine auf HIGH und könnte den Sender töten, oder?
Einen Ausgang mit Gnd verbinden kann den Ausgang durchaus killen, zumindest den kurzgeschlossenen (oberen) Transistor - dann kann der Ausgang nicht mehr richtig auf HIGH gezogen werden. Das könnte bei Dir durchaus der Fall sein. Warum probierst Du nicht testhalber irgendeinen anderen Pin aus?
Es sind auch schon Fälle beobachtet worden, in denen sich ein Arduino ohne Stromversorgung an seinen Eingängen über die Schutzdioden mit Strom von den angeschlossenen Gerätschaften mit eingeschalteter Spannung versorgt hat. Dagegen helfen dann Widerstände in den Leitungen zu den Arduino Pins, wenn so ein Zustand während des normalen Betriebs auftreten kann.
So, ich habe jetzt den Widerstand entfernt. Jetzt kann ich am D22 5V messen. Jetzt habe ich aber ein anderes Problem..
Die Stoppuhr geht sofort an, als ob D22 HIGH wäre..es ist aber nicht der Fall.. Es liegt nicht an der Software, weil ich testweise D22 an GND angeschlossen habe und solange D22 mit GND verbunden war (also D22 LOW gelesen hat), war alles ruhig, als ich das Kabel entfernt habe, hat die Stoppuhr angefangen zu zählen, als ob am D22 jetzt HIGH liegt.
Ok, nachdem ich die Verbindung mit GND entferne geht die wahrscheinlich los, weil das Kabel dann frei ist..also pin offen ist..
Trotzdem ist es komisch, dass sie mit 0V am D22 pin los geht, wenn ich aber GND anschließe, alles rühig bleibt, oder?
Würde mich über eure Vorschläge echt freuen. Das Entfernen des Pulldown Widerstands hat schon mal das erste Problem gelöst, wofür ich euch echt dankbar bin..
Wie lang ist das Kabel? Entweder Dein Kabel spielt Antenne oder Dein Widerstand ist zu niederohmig. Wüsste nicht was sonst die Spannung so beeinflussen sollte. Der 2. Arduino hat aber den Ausgang auf HIGH?