Conferma quanto supponevo ... la ISR della SoftwareSerial, richiamata in continuazione, va ad interferire con quella della Servo.
Del resto ... basta fare una ricerca su Google per "arduino softwareserial servo conflict" per scoprire che il problema è noto e che NON c'è una diretta soluzione se non cambiando tutte le librerie usate o usando le vere seriali HW.
Quindi ...
-
soluzione migliore, prendi una scheda, come la MEGA che ha più seriali HW, e connetti il modulo BT su una di esse. Sulle serilai HW la ricezione del carattere è fatta via HW e quindi non c'è questo "disturbo" alla libreria Servo.
-
soluzione tutta da verificare, ma in altri thread pare funzionare, cambiare entrambe le librerie. Usare la AltSoftSerial e la ServoTimer2. La AltSoftSerial è più veloce e blocca meno gli interrupts, però usa Timer1 qundi va in conflitto con la classica Servo, motivo per cui occorre usare la ServoTimer2 che usa invece Timer2.
Attenzione, per NON avere errori di compilazione, nella ServoTimer2 occorre commentare la riga:
typedef uint8_t boolean;
Guglielmo