I propose a scalable solution for managing your pincabs.
As your progress and your desires, you can evolve your machine without any limit.
As a first step, I will go through the terms to understand what we are talking about.
To manage our pincabs, we use KL25Z cards .
This card has IN and OUT port.
IN port is used to give information to the card, in our case, this is where we will connect our buttons (pinball, magna, credit, start, extraball, service buttons ......) and the Plunger (ball launcher on potentiometer) ...
OUT port is a place where we plug something that is activated by the map, in our case a Toy.
There are several kinds of toys, relays or solenoids that are used to simulate the sound of our pinball machine (pinball, mushrooms ...), Knockers (who slam when we win a game), shakers and various engines (which serve to simulate vibrations and other motor noise), lights (LED flasher, strobe, undercab ribbon, button LED ....).
There are 2 types of out port. Digital outputs (either it works, or it does not work, it is 1 or 0), and PWM outputs (dimming output, we can vary the output voltage which is useful for example to vary the colors of the LEDs)
In general, on a digital output, we connect relays or solenoids, knockers, shakers and other motors. But I recommend to connect everything in the long term on PWM outputs (indeed, by varying the voltage that activates a relay, we can change the noise it makes and some use it to refine the sound of their relays ). It also allows to vary the speed of the engines and shaker, to have a greater range of noises.
KL25Z has 32 outputs (22 digital and 10 PWM) which can already manage some toys ....
If you need more outputs, for the blow of a PWM output and 4 digital outputs, you can plug my extension that adds 16 PWM outputs each time.
KL25Z has outputs, it's great for us, however there is a small problem. The KL25Z can not control big powers, it's a bit like having a tiny, weak arm, and our toys are heavy weight stuff...
To solve this problem, the KL25Z calls a friend who is Damn muscular, it's the Mosfet.
Mosfet is a component that receives a command from the KL25Z , and that executes it with its big muscular arms. In our case, the MosBoard card has 8 mosfets, so use 8 outputs (digital or PWM).
The extension has 16 mosfets.
It's a little clearer? Now let's move on to setting up our Pincab.
So, at first, we need to plug in inputs, nothing more.
Thanks to KL SHIELD we can connect these to the KL25Z safely, similar to the plunger's potentiometer.
Nous sommes au début de notre projet pincab, pas plus de toys que ça pour l'instant.
A few days later, everything works .... Perfect. But we bought light buttons for our Pincab, why not connect these first Toys to make the hand!
Go, 5 buttons to manage, start, credit, launchball, extra ball and exit .... small challenge ....
For this, no need for big changes, we will use 5 PWM outputs on the KL (an LED is connected in PWM, it's prettier, it fade the light ....)
One MosBoard card and we use 5 lines Mosfet, we decide the DOF, and it's perfect ....
A month later, we get 10 Contactors, nice!
Connect 10 of these mosfets on 10 digital outputs of the KL25Z (at first, the digital is enough for our contactors), we tinker the DOF, and hop, 10 new toys.
Time passes, we get a shaker, a knocker, we use the digital outputs and PWM available on the KL by adding MosBoards to manage all that
One day, we get 5 LED flasher and classic RGB LED strip to make an undercab.
Small trouble, we use 5 out of 10 PWM outputs of the KL25Z , there is more available, and connect LEDs on digital, it's ugly!
So we will take an extension that will add 16 new PWM outputs (passing the number of PWM outputs from the basic KL25Z to 9)
An RGB LED or an RGB strip, it's 3 outlets (one for red, green and blue)
5 RGB flashers and one RGB LED strip, it's 3 * 6 outputs, so 18 PWM outputs. it goes !!!!
So we will take an extension, we hack the DOF, then , new PWM outputs available.
We can continue to add PWM outputs by linking expansion cards one after the other, up to 192 PWM outputs (the signal is degraded too much if we exceed this number, but depending on the configuration we can still increase that number!)