Provokant: Woher weiß der Controller denn, ob da ein Relais geschaltet wird?
Und: Soll das so sein? (frage ich zum zweiten Mal)
Ich habe den Eindruck, du kämpfst an mehreren Fronten.
Die erste Front ist die saubere Schaltung (Frelaufdioden, Stromaufnahme am Pin des µC,...).
Das kann man als letztes tun. Wenn die Steuerung sicher läuft.
Die zweite Front ist das Verstehen des Codes.
Jeder Befehl ist auf arduino.cc erklärt. Zumindest grob.
Es fehlt z.B. bei den Pins die Erklärung, wie sich digitalWrite() und pinMode() auf die Register auswirken.
Ein Grund, warum ich Arduino so mag - gerade wenn es um das Lernen und Verstehen geht
Die (vermutlich) dritte Front ist das generelle Verständnis für das, was der Code im µC selbst bewirkt.
Da kommt man hier mit Messen wohl am schnellsten zum Ziel. Die Arduino-Doku hilft da recht wenig
Ich schlage vor, zuerst mit dem Code und der Funktion des µC anzufangen.
Dann bemerkst du auch, dass es den µC von der Idee her hier nicht interessieren sollte, ob da ein Relais oder eine LED oder gar nichts am Pin hängt.
Praktisch ist da die Sache mit dem Pullup und die Frage, welches Register denn nun konkret abgefragt wird.
Was da im µC überhaupt passieren muss, wenn du am Port wackeln willst und einen Pullup-Widerstand schalten (oder auch nicht), sagt das Datenblatt des jeweiligen µC.
Hier das vom ATmega48A/PA/88A/PA/168A/PA/328/P. Die sind in den Grundfunktionen jedoch ähnlich.
Das Digital Pins Tutorial versucht auf das Verhalten der Pullup-Widerstände einzugehen.
Zusammen mit dem Kapitel 14.2.1 ff. des verlinkten Datenblattes kann man ein Verständnis dafür entwickeln, warum die Reihenfolge von pinMode() und digitalWrite() durchaus relevant ist.
Ausprobieren, messen und verstehen.
(Man könnte auch einen Port als Ausgang mit Pullup einlesen und entsprechend dem gelesene Wert auf einen anderen Port mit LED geben. Dann erfährt man, was der µC von innen am Port sieht.)
Ich deute lese nebebei heraus, dass du das im Informatikunterricht machst?
Eigentlich sollte eine Lehkraft die Herangehensweise an solche Probleme erklären ...
Ich hör ja schon auf!