Dado que sabe qué código desea utilizar, el requisito electrónico es trivial.
Nota: "Trivial" no significa fácil, o no destruirá las cosas si se hace mal :-).
Qué voltaje de la bobina.
¿Qué bobina de corriente?
Voltaje de la bobina AC o DC.
En este caso, debería ser fácil y no debería destruir cosas :-).
Si se usa el voltaje de la bobina de CC, se debe colocar un diodo a través de la bobina para no conducir cuando se activa la bobina. Esto ralentizará los tiempos de inactividad de la bobina cuando se apaga el controlador y necesita proporcionar más información si es probable que esto sea importante. Como siempre, en realidad decirnos lo que está tratando de hacer y no solo lo que cree que puede funcionar es probable que obtenga una respuesta mejor y más rápida.
Tenga en cuenta que su código es incorrecto y no hace lo que dice que quiere .
Es fácil cambiarlo para hacer lo que quieras.
Hazlo!
(En la actualidad, enciende cada bobina por 10 ms a la vez, sin retardo entre cada transición).
Necesita un controlador de bobina por bobina que acepte una señal de 0 / 5V como entrada de apagado / encendido y tenga una clasificación adecuada de corriente y voltaje.
Aquí se trata de un circuito tan simple como puedes obtener. (De aquí pero no es realmente importante). Los contactos de relé deben clasificarse para adaptarse a la carga. La bobina PODRÍA colocarse en el colector del tranvía donde el relé no tiene relé, y el suministro de + 5V puede tener una fuente de alimentación de bobina, pero solo se obtiene un aislamiento parcial.
Pin del microcontrolador a la izquierda. La resistencia depende de la unidad necesaria. 1k probablemente está bien.
El tipo de transistor depende del relé, pero en muchos casos el que se muestra o similar está bien
Y aquí son unas cuantas ideas para empezar.
Y aquí son microcontroladores para ideas de controladores MOSFET. En cada caso, el relé que se muestra PODRÍA ser la bobina directamente.
En el código, ¿cómo puedo agregar un tiempo para la duración de cada bobina?
Esto varía (por supuesto) con el controlador, el idioma, etc. pero, por ejemplo,
delay(off_delay_time)
digitalWrite(coilXXX, HIGH);
delay(on_time);
digitalWrite(coilXXX, LOW);
...