All hardware for this project is controlled by a single PIC32MX170F256B microcontroller and powered by a 3.3V/5V breadboard power supply and a 5V external power supply.
* A higher resolution image of the full schematic can be found here.
The PIC provides outputs for the LEDs, for the buffer connecting with the 8x8 64-dot matrix display (SPI), and for the DC motor circuits. The PIC receives inputs from the Push Buttons, Speed Dial (Analog), and IR Detector.
The LED display matrix is connected to a separate 74ACT244 buffer, which is controlled directly by the PIC. For a more durable circuit, the matrix should have been powered through a MOSFET controlled by a PIC pin to avoid disruptive transient currents during startup.
The IR Detector provides a digital signal to the PIC to determine if a shoe has been placed in the shoe cleaner. The Detector is powered with 5V and has a range of 50cm / 20".
The IR Emitter is powered with 5V and features an electrolytic capacitor to account of for noise transmitted via a shared ground with the motor circuit.
The shoe cleaner contains four red, diffused 10mm LEDs, which are each powered by 3.3V and connected in low-side drive with IRLZ34N N-Channel MOSFETs as well as with a 100Ω current-limiting resistor. Each gate on the MOSFETs is controlled directly by a separate data output from the PIC. The buffer allows the LEDs to run off of a 3.3V power supply and draw current from the power supply instead of the PIC.
A single rotary potentiometer is used to generate a voltage signal, based on the output from the voltage divider, for how fast the user would like the brushes to rotate when cleaning. The PIC reads this as an analog input.
The Speed Selection Button provides a digital input signal to the PIC to confirm a selected brush rotation speed. The sub-circuit features a pull up resistor, a current limiting resistor, and an RC circuit to contribute to debouncing.
The Go Button provides a digital input signal to the PIC to begin cleaning via brush rotation. The sub-circuit features a pull up resistor, a current limiting resistor, and an RC circuit to contribute to debouncing.
Each shoe brush is controlled by a 170 rpm / 22.04 kg-cm motor. Both are connected in low side drive with IRLZ34N N-Channel MOSFETs, current limiting resistors, and a 5V supply. Both MOSFETs are controlled by a PWM output from the PIC. Each motor is connected in parallel with an electrolytic capacitor to reduce the propagation of inductive noise.
The Adafruit Soundboard contains .wav files for audio. Each soundtrack is triggered by holding the corresponding pin low.
The Serial Port was implemented during programming to interface with the PIC 32 for debugging.
The Snap Programmer was implemented during programming to compile C code onto PIC 32.