El switch case no tiene nada que ver con el manejar un puerto, un motor paso a paso y un servo. Por lo tanto deberias buscar de forma separada cada uno..
El switch case funciona asi:
switch(numero)
{
case 0:
//Instruccion 0
break;
case 1:
// Instruccion 1
case 2:
// Instruccion 2
break;
default:
// Instruccion 3
break;
}
Vos dentro del switch vas a preguntar por alguna variable que tengas, dependiendo del valor de la variable se ejecuta algun case.. observa que algunos tienen un break, ese break hace que apenas termine salga... Y te lo explico con un ejemplo.
Suponete que tu numero es 0, por lo tanto entra al case 0, Ejecuta la instruccion 0, y sale de todo el switch.
Ahora si tu numero era 1, va a Ejecutar la instruccion 1, pero como no hay un break, sigue y ejecuta la Instruccion 2, y como ahi SI hay un break recien sale.
Si por ejemplo numero tiene un valor mayor a 2 en este ejemplo ( 3,4,5,6,etc..... ) y no hay un case para eso, entonces entra en "default"
Es casi casi como tener multiples if preguntando por la variable numero, donde cada caso es la igualdad a ese numero
if(numero == 0)
{
// Instruccion 0
}
if(numero == 1)
{
// Instruccion 1
}
if(numero == 2)
{
// Instruccion 2
}
if(numero > 2)
{
// default
// Instruccion 3
}
Respecto al manejo de motores paso a paso, o usas un driver donde seleccionas la direccion y vas dando pulsos, o manejas cada bobina con un driver entre medio. En resumen vas a tener que averiguar como se hace y como funciona el paso a paso.
Y finalmente el servo, tenes que generar un PWM, Vas a tener que averiguar por esto y que señal se debe enviar al servo para que este en una posicion.