Casa Domotica

Gracias a respuestas anteriores de otros temas pude resolver mi problema y arme una casa domotica, mi problema del pir era para agregarle una alarma a una maqueta que arme, recien le agregue un servo motor para simular la apertura de un porton para el auto, pero resulta que le agregue el servomotor y el arduino funciona muy lento! le saco el servo, la configuracion la libreria y funciona de 10 este es el codigo completo de como quedo

#include <SoftwareSerial.h> //Librería que permite establecer comunicación serie en otros pins
#include <Servo.h>   
//Aquí conectamos los pins RXD,TDX del módulo Bluetooth.
SoftwareSerial BT(52,53); //10 RX, 11 TX.
Servo miservo; 
int angulo=0; 
int ledred=3; //Pin LED Red
int ledgreen=5;//Pin LED Green
int ledblue=6; //Pin LED Blue
boolean Alarma = false;
const int buttonPin = 2; // the number of the pushbutton pin
const int ledPin = 13; // the number of the LED pin
char option;
int buttonState = 0; // variable para leer el estado del boton
int pinSpeaker = 10;
 
void setup()
{
 
  BT.begin(9600);  //Velocidad del puerto del módulo Bluetooth
 miservo.attach(9);
  pinMode(pinSpeaker, OUTPUT);
   pinMode(12,OUTPUT);
   pinMode(11,OUTPUT);
   
   pinMode(9,OUTPUT);
   pinMode(8,OUTPUT);
   pinMode(7,OUTPUT);
   pinMode(ledblue,OUTPUT);
   pinMode(ledgreen,OUTPUT);
   pinMode(4,OUTPUT);
   pinMode(ledred,OUTPUT);
   pinMode(ledPin, OUTPUT);
  // sensor como entrada:
  pinMode(buttonPin, INPUT);
}
 
void loop()
{
        
    char c=BT.read();
         if(c=='2') {
            Alarma = true;
        }
        // agregar codigo que apague Alarma por ejemplo
        if (c== '3') {
            Alarma = false;
            digitalWrite (ledPin,LOW);
        } 
         if(c=='4') 
         miservo.write(angulo);
         delay(5000);
         miservo.write(90);
         angulo=constrain(angulo,0,90);
         if(c=='5') digitalWrite(11,HIGH);
         if(c=='6') digitalWrite(10,HIGH);
         if(c=='7') digitalWrite(9,HIGH);
         if(c=='8') digitalWrite(8,HIGH);      
         if(c=='9') digitalWrite(7,HIGH); 
         if(c=='a') digitalWrite(4,HIGH); 
         if(c=='b') digitalWrite(4,LOW); 
         if(c=='c') digitalWrite(13,LOW);
         if(c=='d') digitalWrite(12,LOW);
         if(c=='e') digitalWrite(11,LOW);
         if(c=='f') digitalWrite(10,LOW);
         if(c=='g') digitalWrite(9,LOW);
         if(c=='h') digitalWrite(8,LOW);
         if(c=='i') digitalWrite(7,LOW); 
         if(c=='j') digitalWrite (ledred,LOW),digitalWrite (ledgreen,LOW),digitalWrite (ledblue,LOW);
         if(c=='k') digitalWrite (ledred,HIGH),digitalWrite (ledgreen,LOW),digitalWrite (ledblue,LOW);
         if(c=='l') digitalWrite (ledred,LOW),digitalWrite (ledgreen,HIGH),digitalWrite (ledblue,LOW);
         if(c=='m') digitalWrite (ledred,LOW),digitalWrite (ledgreen,LOW),digitalWrite (ledblue,HIGH);
         if(c=='n') digitalWrite (ledred,HIGH),digitalWrite (ledgreen,LOW),digitalWrite (ledblue,HIGH);
         if(c=='o') digitalWrite (ledred,HIGH),digitalWrite (ledgreen,HIGH),digitalWrite (ledblue,LOW);
         if(c=='p') digitalWrite (ledred,LOW),digitalWrite (ledgreen,HIGH),digitalWrite (ledblue,HIGH);
         if(c=='q') digitalWrite (ledred,HIGH),digitalWrite (ledgreen,HIGH),digitalWrite (ledblue,HIGH);
         if (Alarma)  // debe estar fuera de la consulta del serial.read
     detectarMovimiento();
        
    
}