IrishFBall32
29-01-2015, 16:52
Hi all, I'm working on an LED driver circuit and wanted to run this by y'all.
The circuit I'm building is a simple TIP120 transistor based amplifier, which I intend to be connected to PWM outputs on the RoboRIO, with the pulsed output effectively modulating the duty cycle of the LEDs.
The snag I'm running into relates to PWM duty cycles. Ideally, I'd like 0% to be an output of 0vdc, and 100% to be a constant output of 6vdc. 50% would then be 6vdc pulsed at say 1ms on, 1ms off. From my understanding the default PWM signal is a 1-2ms pulse every 20 seconds, which translates to a 5-10% duty cycle. I see references in the WPILib API's PWM class to varying the PWM period potentially down to 5.05ms, and pulses as small as .5ms (which should get me ~10-40%), but does anyone know if it is possible to manipulate the PWM output further? I'm also open to other suggestions such as an efficient way to pulse a DIO pin in the necessary manner.
Disclaimer: I've read the API docs, but I haven't dug into the actual code. I also haven't yet resorted to just tinkering with things and seeing what I get with an oscilloscope.
The circuit I'm building is a simple TIP120 transistor based amplifier, which I intend to be connected to PWM outputs on the RoboRIO, with the pulsed output effectively modulating the duty cycle of the LEDs.
The snag I'm running into relates to PWM duty cycles. Ideally, I'd like 0% to be an output of 0vdc, and 100% to be a constant output of 6vdc. 50% would then be 6vdc pulsed at say 1ms on, 1ms off. From my understanding the default PWM signal is a 1-2ms pulse every 20 seconds, which translates to a 5-10% duty cycle. I see references in the WPILib API's PWM class to varying the PWM period potentially down to 5.05ms, and pulses as small as .5ms (which should get me ~10-40%), but does anyone know if it is possible to manipulate the PWM output further? I'm also open to other suggestions such as an efficient way to pulse a DIO pin in the necessary manner.
Disclaimer: I've read the API docs, but I haven't dug into the actual code. I also haven't yet resorted to just tinkering with things and seeing what I get with an oscilloscope.