Skip to main content

Microcontrollers

My initial plan to control the pinball machine was so have a computer communicate through a USB link to control all my electronics.  Apparently, that's pretty difficult.  Thankfully, microcontrollers exist.  Microcontrollers are, in essence, programmable chips.  Kind of like a mini-computer that controls the voltages to a number of pins or reads the voltages off those pins.  Start varying voltages and you've got signals.

I borrowed a Arduino microcontroller from a friend of mine who happens to be an electronics wizz.  I did a couple basic things with it.  I started with the all important turning on a LED (with a resistor this time!).  Then I used the transistors from my now disassembled electronics kit, to power the LEDs from a power source other than the microcontroller itself as it can only supply so much power.  The Arduino's software is C based which is really close to Java which is the only programming language I learned in class.  Lucky.

Quickly, I realized that for my overly ambitious pinball project the regular Arduino was not enough.  I ended up purchasing the Arduino Mega which has many more pin outs than the regular Arduino.  Mine is not a 'real' Arduino Mega, I got the Chinese knockoff but it works fine.  The only problem I've had is that one bank of pins are not exactly set at the standard spacing, but that's it.  I also purchased shift registers, IC 74HC595N.  This IC is serial in - parallel out.  This means that I send a signal set on a clock to the IC, then based on that serial signal it will set the outputs to HIGH or LOW depending on the signal.  So, for example, if I send a signal such as 10001001 the IC sets it's last output as HIGH; it's 7th, 6th, and 5th, as LOW; 4th as HIGH; 3rd and 2nd as LOW; and finally it's first as HIGH.  The IC runs on the input of 3 pins: data, clock, and latch.  The data sends the signal, the clock deliniates between the bits in the signal, and the latch locks in the information.  This IC can also be 'Daisy Chained' together so you can input longer signals or more bits, to control more outputs with the same three pins.  You could technically daisy chain an infinite amount of 595s together but the more you connect together the longer it takes to change the outputs.  I played around with the shift registers for a bit and made a program to display different patters of lights.
 
 The Arduino Mega using a shift register to control 8 LEDs.

Comments

Popular posts from this blog

Pinball Cabinet Beginnings

I was getting to the point where I really needed to build on something. I have numerous pinball parts but have nothing to attach them to. I managed to find some pinball plans for a Williams Widebody pinball machine. All the measurements are in mm sadly even though all pinball cabinets are in inches. I converted and change it all to the nearest quarter inch. Well sort of. The guy who measured this was intending on using 45 deg cuts in the corners. My skill saw is too cheap for that so I changed the measurements for butted joints. The interior is set for a 23.5" wide playfield. The length of the cabinet is 51.5" in total. I used 3/4 inch plywood so the bottom would be 50" long for example. You can pretty much dimension the rest from there.  I did get a little chipping of the plywood but I went out and bought a blade with more teeth for finer cuts. It's a 60 tooth saw blade and my skill saw doesn't really have enough power for it so I have

MOSFET Driver Board

Final version?  I hope so.  I have gone back and redesigned my solenoid driver board several times.  In previous versions I attempted to offload some of the logic from the microcontroller.  For example, I used a Schmitt-Trigger [74HC14] with an RC network to provide a single pulse to the solenoid.  Also, I added in a PWM signal to set the average voltage 'seen' by the solenoid.  This worked but was very limiting to have the pulse length hardwired in and it was difficult to adjust without more expensive precision potentiometers. I chose to simplify my circuit to make it a general MOSFET driver for flexibility.  Since I have more than enough space inside my pinball cabinet, it was not a problem to have the extra boards.  The boards were designed to have 4-channels since by default I would get a minimum of 10 boards for the same price from Seedstudio.  Also, the cheapest board option was restricted to 10cm x 10cm otherwise the price balloons quickly. Driving 48V from a separa

Pinball Solenoid Control

Pinball solenoids come with designations like 23-800.  The first number, 23 in this case, represents the American Wire Gauge (AWG) used.  The second number, and the more important number, is the number of windings which is related to its power rating.  A solenoid with less windings, say 400, is more power and is used for such applications as actuating the flippers.  These solenoids get very hot very quickly, which increases the resistance of the solenoid thereby decreasing the current and therefore the power.  To avoid overheating, these high powered solenoids will have two coils.  One for the main actuation of the solenoid, and another to maintain the position.  The second solenoid will have a smaller wire gauge and more windings.  In example, my flipper 'coils' are 15-411, 15 AWG and 411 windings.  They are quite strong and found in some of the latter Williams pinball machines such as the popular Adams Family machine.   You can find a lot of good additional information