Kleine Anmerkung:
pinMode(sobus, INPUT);
digitalWrite(sobus, HIGH);
Dieser Code aktiviert den internen Pull-Up-Widerstand. Da diese beiden Zeilen aber (gerade für Anfänger) sehr verwirrend sind, kann man in den neueren Versionen der Arduino-IDE auch einfach: pinMode(sobus, INPUT_PULLUP); schreiben.
Einen internen Pull-Down-Widerstand gibt es übrigens nicht, wenn benötigt muss eben ein externer Widerstand vorgesehen werden.