Hallo Alle Zusammen Hab schon ganz google und dieses und andere Foren durchsucht und leider keine Lösung gefunden. Ich hoffe das mir hier Jemand weiterhelden kann... An die admins: falls ich gegen eure Regeln verstoßen oder hier beim falschen Thema gelandet sein sollte, bitte ich um Entschuldigung... Ich nutze ein Mega 2560 16AU board, die Arduino-Software und windows 7 32bit Nun zu meinem Problem Irgendwie sind alle pins die ich als Input definiere immer 1. Egal was ich mache... Wenn ich taster benutze, den pin auf masse stecke oder selbst wenn ich überhaupt gar nichts aufstecke... Wenn ich im Serial Monitor nachsehe ist der input machmal einpar mal 0 wenn ich zb. Den Taster ab- oder dran stecke, aber nach par abfragen wieder durchgehend 1... Wenn ich die pi s jedoch als Ausgang definiere funktionieren diese gant normal und einbahnfrei... Irgwndwie verstehe ich das nicht Habs mir allen mögliche Beispiel- und selbst geschriebennen programmen versucht und natürlich alle möglcihen pins Bitte helft mir... Mfg Sebastian
Hi
>Bitte helft mir...
Dann zeige mal dein Programm.
MfG Spess
Setzte mal das PUD Bit, siehe Datenblatt.
Sebastian schrieb: > Irgendwie sind alle pins die ich als Input definiere immer 1. Egal was > ich mache... Und was zeigt dein Messgerät an diesem Pin an? Hast du auch bei 0V dort am Pin eine 1 im Programm?
Du musst die Eingänge unbedingt mit einem Pullup oder Pulldown-Widerstand versehen, oder den internen Pullup verwenden.
Danke für eure antworten... Ich habs mit allen möglichen programmen versucht und auch mit denen die als Beispiele da sind... hab da halt nur öfters den pin gewächsellt um andere zu testen. Ich probier das alles morgen aus, hatte heute keine zeit mehr... Vielen dank nochmal Morgen hört ihr von mir... MfG
Ohne code ist es schwer den Fehler zu finden. Entweder so: pinMode(pin, INPUT); // set pin to input digitalWrite(pin, HIGH); // turn on pullup resistors Sollte auch so funktionieren: pinMode(pin, INPUT_PULLUP); Der Eingang ist somit immer auf HIGH. So bald du den gewählten Pin auf Masse schaltest ändert sich das Signal auf LOW. Du kannst es auch ohne internen Pullup Widerstand machen, dazu musst du aber extern einen Widerstand anbringen.
:
Bearbeitet durch User
Gerald R. schrieb: > Du kannst es auch ohne internen Pullup Widerstand machen, dazu musst du > aber extern einen Widerstand anbringen. Dieter S. schrieb: > Du musst die Eingänge unbedingt mit einem Pullup oder > Pulldown-Widerstand versehen, oder den internen Pullup verwenden. Solange kein Definierter Zustand eines Pins gewählt ist, braucht man keinen Pull-up /-down. Ein Pin ist immer im Tri-State vor der Init. Wenn man ein Pin auf Ausgang setzt, den internen Pullup negiert, ist er wieder auf TriState und mit internen Pullup auf High. Für einen Taster/Schalter, benötigt es keinen externen Pullup. Einen externen Pullup nutzt man, wenn man eine Bidirektionale Kommunikation benötigt und man im Programm das schalten zwischen Tristate und High minimieren will. Der Mega2560 hat aber, dank PUD, mehrere Input Varianten (Tri, Soure, Tri-HiZ). Aber wie Thomas O. schon anmerkte: Schau im Datenblatt nach dem PUD Register, Seite 69 Kaptiel 13.2.3.
Draco schrieb: > > Solange kein Definierter Zustand eines Pins gewählt ist, braucht man > keinen Pull-up /-down. Das sehe ich genau so. Wenn du den Anfangspost durchliest, dann siehst du, dass die Eingänge entsprechend definiert sind. Da der TO aber bisher nicht darüber informiert hat, ob Pullups (intern oder extern) verwendet werden, können diese Eingänge evtl. Störungen aus dem Umfeld aufnehmen. Zudem hat es schon Situationen gegeben, wo ein interner Pullup (20 - 50k) nicht ausreichte. Da musste ein externer Widerstand helfen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.