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

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 ...

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...

ATX Breakout Board

Last November, I fried my 'lab power supply' that I made from a computer PSU.  I was testing my solenoids and the stress was just too much for the PSU.  The mistake I made was rapidly turning on and off my solenoid which likely resulted in voltage transients (spikes).  Since the PSU does have a current limiter, it was likely the constant voltage spikes that caused the damage.  There are various methods to suppress voltage transients such as by-pass capacitors and zener diodes.  In particular solenoids and other inductive loads experience these voltage spikes, hence my no longer functioning bench power supply. ATX Breakout Board I could have just rebuilt the same power supply by adding binding posts etc to the PSU housing but after searching the internet an ATX power supply breakout board seemed a popular option.  The main advantage compared to my old power supply was the addition of fuses on the outputs.  The extra safety this provides is perf...