Hola; espero que mi comentario no te resulte molesto, pero yo no consigo entender la "especificación funcional" del programa que estás intentando. El tema de la conexión de estos ventiladores puede ser que sea familiar para algunos, pero no para todo el mundo. En esos casos, creo que conviene tratar de ser lo más explícito posible, y que en "las especificaciones" no queden muchas cosas libradas a la interpretación.
A modo de ejemplo, voy a tomar una de tus primeras oraciones:
Cita: En un ventilador con 3 cables uno es el común al que van conectadas las dos bobinas, los otros dos son las otras puntas de las bobinas.
Yo me pregunto:
- De esos 3 cables que tiene el ventilador, dices que uno "es el común". ¿A qué te refieres? Uno de ellos es un cable común, como cualquier otro cable, mientras que los otros dos no? O aquí la palabra "común" tiene otro significado?
- "... al que van conectadas las dos bobinas..." ¿Cómo? ¿Qué dos bobinas? No has mencionado antes la existencia de bobinas.
- "... los otros dos son las otras puntas de las bobinas..." A ver si entiendo, ¿hay dos de esos cables que forman parte (son sus puntas) de las dos bobinas?
Yo creo que me llevo medianamente bien con la solución de problemas lógicos, y tengo algunos años de experiencia codificando en C, y me da la impresión de que el problema que planteas no es demasiado complejo, peor no consigo pasar de las primeras dos líneas de ese planteo.