Frage zu digitalRead

Hi,

ich such mich jetzt schon eine Stunde an meiner Anlage tot, weil ich ein Signal nicht reinbekomme. Hab den Controller schon gefühlte 100mal ausgebaut, neu geflasht und wieder eingebaut.

Jetzt ne kurze Frage an euch:

Ich lese einen digitalen Eingang, der Signalwechsel funktioniert bis zum Arduino-PIN. Aber ich bekomme in der Software nur "True", egal wie der Schalter steht :(

Hier mal die entsprechenden Code-Teile

const int RM_S_Anlage_Ein = 4;  // Rückmeldung Schalter "Anlage Ein"
pinMode(RM_S_Anlage_Ein, INPUT_PULLUP);
S_Anlage_Ein_Status = !digitalRead(RM_S_Anlage_Ein);  // Schliesser am Knebelschalter verwendet, interner PullUp am Arduino-Eingang

Kann es sein, dass die Negierung bei digitalRead Probs macht?

Kann es sein, dass die Negierung bei digitalRead Probs macht?

Bei meinen Arduinos und Tastern nicht.

Ich würde das Problem in deinen Code vermuten. Nur zeigst du uns nicht die Fehler verursachende Stelle ....

hk007: Ich lese einen digitalen Eingang, der Signalwechsel funktioniert bis zum Arduino-PIN.

Ich nehme an das heißt dass der Taster korrekt gegen Masse angeschlossen ist, und nicht gehen +5V?

Serenifly: Ich nehme an das heißt dass der Taster korrekt gegen Masse angeschlossen ist, und nicht gehen +5V?

Na klar doch ;) Schliesser zieht den Eingang auf Masse.

schon mal mit einem kleinen Dreizeiler ausprobiert, ob der PIN vom Arduino eventuell kaputt ist?

ElEspanol: schon mal mit einem kleinen Dreizeiler ausprobiert, ob der PIN vom Arduino eventuell kaputt ist?

Kann dann ja nur noch das sein. Werd ich dann mal testen. Bau ich halt den Controller noch mal aus :slightly_frowning_face:

Danke für eure Antworten

so etwas gehört bei mir immer zu den ersten Tests bei der Fehlersuche. 8) idealerweise gar nichts von dem alten oder ursprünglichen Code verwenden, sondern neu geschriebenen oder aus den Beispielen.

combie: Ich würde das Problem in deinen Code vermuten.

Tja... peinlich, aber du hattest recht.

Ich Esel hab die Variable in einem anderen Unterprogramm (das sich natürlich auch noch in einem anderen Tab befand) zu Testzwecken statisch auf "true" gesetzt. Ich hatte damals noch keinen Schalter dran, und wollte den Signalpfad zu meiner Visualisierung simulieren. Ich hab zwar das Haupt-Ino durchsucht, weil ich so was normalerweise immer da platziere, aber nicht die anderen-Tabs.

Die Idee von ElEspanol mit dem Dreizeiler hat mich drauf gebracht. Manchmal sieht man den Wald vor lauter Bäumen nicht.

Ich glaub ich muss mir für die Zukunft angewöhnen, solche Testsachen irgendwo zentral zu verwalten. Dann verliert man nicht so schnell den Überblick. V.a. bei größeren Programmen.

Danke an eure Antworten.

Genau deswegen. Ich kenne das nämlich. Ich durchsuche immer mit einem speziellen Suchprogramm (nicht mit der Windows Suche) den gesamten Sketchordner nach der Variablen.