Como escribe Fogonazo, siendo ambiguo en la pregunta recibes respuestas ambiguas. Sin embargo quiero mencionar otro sistema de fin de carrera, fuera de aquellos ya presentados o al menos mencionados. Si un motor se topa con un obstáculo, esto se reconoce observando electrónicamente el flujo de corriente. Un motor cuando deja de girar la corriente se enfrenta un mínimo de resistencia y así su valor aumenta. Detectando esto, por ejemplo escogiendo una resistencia sobre la cual cae una tensión que puede ser alimentada directamente a una entrada análoga de un microcontrolador, el valor digitalizado de la tensión aumentará repentinamente. Detectando esto se accionaría por ejemplo un relé apagando el motor. Esto se detectaría tan rápido que el riesgo de daños mecánicos es mínimo. Por otro lado hay que experimentar para que realmente el motor llegue a un fin de carrera. la solución es baratísima.