6.3. Pinball Arduino Shield

Pinball games involve many individual sensors and actuators connected to the logic with a lot of wiring. This is a vulnerable point for building a machine which is engaged physically by the player. In an effort to simplify the wiring problem, the course provides a ‘shield’ board which interfaces the Arduino microcontroller to a useful set of interface hardware and connectors for driving the physical game.

6.3.3. Design Notes

6.3.3.1. Arduino Pin Allocation

Not all Arduino pins are identical, the following considerations apply.

  • The Adafruit WS2801 library can use hardware SPI if connected. On an UNO, D11 is MOSI, D12 is MISO, D13 is SCK. D10 is SPI SS and should be an output even if used for something else. (See Arduino SPI).
  • For the solenoids, it’s probably best to have the option to drive these with PWM. On a Arduino UNO, this works on pins D3, D5, D6, D9, D10, or D11. But D3 and D11 aren’t usable if tone() is used.
  • The Adafruit HT1632 library bit-bangs the output; any digital I/O will work for the LED matrix display.