segnalatore per invalidi in carrozzina

chiedo venia e la prima volta in un forum,
come programmazione sto alla base cioe accendere un blink .
Sono bravo in elettronica circuiti e cablaggi ed ho preso a cuore Arduino e la programmazione ho deciso al piu presto tramite un corso di inserirmi in questo fantastico mondo della programmazione fino ad ora ho preso degli skecht e li ho provati con Arduino dandomi anche dei piccoli guadagni per poi mettere a disposizione di chi ne aveva o ne ha bisogno come il segnalatore che voglio costruire per chi ne ha bisogno e se mi aiutaste farei copia e incolla dello skecht visto che il programma lo quasi finito , ma manca come ho detto la parte 2 come ho descritto sopra la prima parte(1) ho usato un interruttore a mercurio mentre vorrei usare per cambiare tra 1 e 2 un interruttore a calamita cosi possono con semplicità anche farlo accendere , chiedo scusa di nuovo e se mi potreste aiutare, principalmente perchè ho una zia ce ne ha bisogno e non si sente di uscire di casa aspetto vostri aiuti grazie gentilissimi
questo è lo skecht:

int inPin = 2;   // the number of the input pin
int reading;     // the current reading from the input pin
int GreenLedPin = 13;  // the number of the Green LED output pin
int RedLedPin = 12;    // the number of the Red LED output pin
int pulsantePin = 4;
int ledStato = LOW;
int pulsanteStato = LOW;
const int SpeakerPin = 11; // the number of the Speaker/Buzzer pin

void setup(){
 pinMode(ledPin, OUTPUT);
 pinMode(pulsantePin, INPUT);
 digitalWrite(ledPin, ledStato);
 pinMode (inPin, INPUT);
 pinMode (GreenLedPin, OUTPUT);
 pinMode (RedLedPin, OUTPUT);
 Serial.begin(9600);
}

void loop () {
 int lettura = digitalRead(pulsantePin);
 if(lettura != pulsanteStato and lettura == HIGH){
   ledStato = !ledStato;
   digitalWrite(ledPin, ledStato);
 }
 pulsanteStato = lettura;
 delay(5);
}
   tone(SpeakerPin, 1000, 500);      // if tilted, turn the Speaker ON
  delay(2000);
 reading = digitalRead(inPin);
 delay(001);
 if (reading == 1) {
   digitalWrite(RedLedPin, HIGH);   // if tilted, turn the red LED
   delay(1000); 
   digitalWrite(GreenLedPin, LOW);
   tone(SpeakerPin, 1000, 650);      // if tilted, turn the Speaker ON
  delay(6500);
   
 } else {
   digitalWrite(RedLedPin, LOW);
   digitalWrite(GreenLedPin, HIGH);    // if not tilted, turn the green LED ON
 }
 Serial.println(reading); // not really needed

 delay(200);   // pause 200 milliseconds between readings
}