I/O-Pin in der Mitte, so wie du geschrieben hast.

Zur Code: ich kann ein Versuch in Pseudocode machen.
Am geschicktesten machst du die Zeitmessung mit einem Timer, aber zur Verstaendnis wie folgt:

Code:
Pin=Output, Low
// lass eine Zeit vergehen um den Kondensator zu entladen

Pin=Input
Counter=0
while (Pin == Low)
{
  Counter++
  Delay_us(10)  // 10us ist ein Beispiel, muss ausprobiert werden
}

// wenn wir hierher kommen, ist der Kondensator aufgeladen worden (Pin=High)
if (Counter > 100)  // 100 counts ist auch nur ein Beispielswert
  //Dunkel
else
  //Hell