View Single Post
  #1   Spotlight this post!  
Unread Today, 03:29 PM
BenBernard BenBernard is offline
Registered User
FRC #5687 (The Outliers)
Team Role: Mentor
 
Join Date: Jan 2016
Rookie Year: 2015
Location: Portland, ME
Posts: 36
BenBernard is an unknown quantity at this point
Team 5687 The Outliers 2016 LED Controller Design

As an off-season project, our team designed and built a general-purpose LED controller. Connected to the roboRio (or in our case the navX) this allows us to control an RGB LED string, our ring-lights, and our targeting flashlight (sorry, "photon canon") via 5 PWM ports.

The parts are all available from Adafruit:
5 N-channel power MOSFET
1 5v voltage regulator
1 Perma-proto quarter-size breadboard
2 4-pin terminal blocks
1 2-pin terminal block
1 5-pin terminal block

The wiring diagram follows:


Finally, the terminal connections (other than 12v power) are:
  1. Flashlight ground
  2. Flashlight power
  3. Ringlight ground
  4. Ringlight power
  5. -
  6. RGB Strip common (power)
  7. RGB Strip blue
  8. RGB Strip red
  9. RGB Strip green
  10. -
  11. PWM signal for flashlight
  12. PWM signal for ringlight
  13. PWM signal for RGB blue channel
  14. PWM signal for RGB red channel
  15. PWM signal for RGB green channel

We used this to drive a 5v LED flashlight and a 12v LED ringlight and two 12v LED RGB strips from SuperBrightLeds.

Full Java code to interface with this controller is available in our LEDController class, but ultimately each LED is driven by a single PWM channel, so you can easily control this with any language.

We further combined 3 LEDControllers into our LEDStrip class to allow controlling the net color output of the strip more easily.

For the ringlight and flashlight, we used LEDSwitch to provide simple on/off control.

We hope other teams find this useful!

Last edited by BenBernard : Today at 03:31 PM.
Reply With Quote