Zum ersten Problem: Wenn man das mit Transistor machen möchte (es gibt einfachere Lösungen), nimmt man nen NPN-Transistor und legt dessen Emitter auf Masse, den Collector an den Port und die Basis kommt über einen Basis-Vorwiderstand an das Eingangssignal. Bei 24V würde ich einen Widerstand von etwa 20kOhm nehmen, dann fließt ganz grob 1mA durch die Basis. 2kOhm würde auch noch gehen, 47kOhm auch. Ist also sehr unkritisch der Wert.

Der Transistor zieht den Port dann auf Masse, wenn ein Signal (24V) anliegt, er invertiert also. Man muss dann entweder noch einen Widerstand vom Port-Pin zur Versorgungsspannung schalten oder den internen Pullup im AVR aktivieren. Dieser Pullup muss so dimensioniert sein, dass der Strom, der durch ihn und den Transistor fließt, höchstens ca. das 100fache des Basisstroms ist. (Beim BC547 zumindest, der hat eine Stromverstärkung von 400, zur Sicherheit nimmt man halt 1/4 davon.)

MfG