Сервото не може да се чете. Просто му се дава команда да отиде в началната посока. И се надяваш отгоре да няма влак.
Тука вече трябва да се вкарат онези ключета за двете крайни позиции на рамото. Дали директно, дали през релета, не мога да кажа, но те трябва да се четат на два от входовете на Ардуиното.
И в setup() следва да се проверява тяхното положение. Ако входът за положение "право" е 0 (условно), това ще значи, че рамото е "в отклонение" или "някъде по средата". Прави се цикъл в който се подава команда на сервото да се премести с една стъпка (градус или каквото е там) към положение "право" и след това се проверява отново за 1 на вход "право" - ако е налично, цикълът се прекратява. Така, при включване, стрелката винаги ще преминава в позиция "право".
Но остава проблемът с колоос, зацепена в езика. Тогава, сервото няма да може да се премести в положение "право". Затова следва да се броят и колко стъпки са му подадени, т.е. цикълът трябва да е с for. Ако стъпките са повече от максималния брой, нужни за преместване от едната крайна позиция в другата за дадената стрелка, следва излизане от първия цикъл и позициониране в положение "отклонение" с нов цикъл, при който вече сервото ще се върти в другата посока и ще се чете другото ключе за достигане на крайната позиция.
Ако и при втория цикъл не може да се достигне крайна позиция след максималния брой стъпки за пълно отклонение, следва да се подаде някаква индикация за неизправност в стрелката, защото сервото не работи, някое от ключетата е дефектирало, има прекъсване в окабеляването или някой е омазал баластирането и езика е залепнал.