This page details all electronics used in the completion of this project.
The center of this project is a PIC32MX170F256B microcontroller that controls a servo, DC motor, and three RGB LEDs. The PIC32 recieves inputs from three IR reflective sensors, two buttons, and a potentiometer.
The RGB LEDs used were in common cathode configuration, which entails a common ground. In order to control the LED color, we had to use P-type MOSFETs in which the gate was controlled by an output of the PIC32. Our implementation of the LEDs only required the colors red, yellow, and green; therefore, the blue input in each LED was left unimplemented on each LED.
The reflectance sensors were each tied together to a common power and common ground. In the context of our configuration and limited current supply, we found it necessary to add capacitors from the signal line to ground in order to smooth signal transitions.
The LED matrix is controlled using three outputs from the PIC32–clock, data, and chip select. These lines enter the 74ACT244 octal buffer before being received by the MAX7219 LED matrix.
The DC motor is connected in parallel to the diode for back EMF protection. PWM input controls the DC motor speed through a low side driver, and a bleeder resistor switches off the transistor when the PIC32 is powered off.
The passage of time servo is operated simply. It requires ground, power, and a PWM input controlled by the PIC32.
The start and speed select buttons are hardware debounced and their configuration forces an active high signal when they are pressed. Each button signal is connected to a digital pin on the PIC32 for signal reading when necessary.
The potentiometer speed dial connects to an analog pin on the PIC32 through a 1k current limiting resistor. The pot alters the signal read by the pin from 0 to 3.3V, and uses a ground-connected capacitor to smooth signal changes.