digitalWrite (switch_pin, LOW);
The processor has a built-in pullup which you have deliberately chosen not to use. Why?