RC Trigger Control

This project resulted from the request of a friend of mine to design and build a simple device to control his RC servos and motor controllers. These devices have a three pin interface; the pins being 5V power, ground, and signal. The signal input is accepted as a pulse-width-modulated square wave between 1ms and 2ms on time (active high). Generally these operate around 100Hz but the frequency is not overly important.

The circuit is required to simply change the duty of a pulse between 1ms and 2ms linearly depending on the position of a potentiometer. It could also easily be modified for a voltage input; say 0-5V for full range control or something similar.

The schematic which follows is quite simple; a 555 based ramp generator attached to a comparator. A pair of PNP transistors forms a constant current source which charges the 22nF capacitor at a constant rate at all times. The 555 detects the level of charge and discharges the capacitor once its internal threshold (2/3 of Vcc) is reached. This produces a very clean and triangular ramp wave whose frequency is fairly independent of power supply voltage and ambient temperature. The selection of a capacitor with low temperature coefficient and minimal dielectric absorption is important to maintain a perfect waveform and temperature stability. This device is not fussy about the capacitor and nor is the application but if you want perfection you must select good components.

The ramp waveform is compared by the LM311 with the voltage applied to pin 2 by the potentiometer circuit. This means the pot can set the threshold and thus the pulse-width. Two trimmer pots are provided so that the upper and lower bounds of the range can be configured by the user. Given the range of these pots both from GND to V+ it is possible to reverse the effect of the control pot simply by setting the trimmers to the opposite voltages. It is important to note that the setting of one trimmer affects the voltage on the other and thus a process of successive approximation is required to reach the desired upper and lower voltage limits.

In my build of this circuit I've found the usual trimmer settings to be about 1.86V for the lower bound and 2.04V for the upper. This will change depending on various parameters. The procedure for calibration is quite simple: connect the power and attach an oscilloscope to the output. Watch the pulse width against the graticule on the screen and measure the on time in milliseconds. Set the control pot to minimum and adjust the lower bound to the desired minimum on time (1ms in my case). Then set the control to maximum and adjust for maximum desired on-time (2ms in my case). The latter setting will have affected the former so it's necessary to go back and forth a few times to get it just right. I may later modify this circuit so that the upper and lower bound adjustments have no effect on each other in order to simplify calibration.

A three-pin header can be attached to the completed circuit which connects directly to the R/C servo or other device. Most R/C based stuff provides regulated 5V power at the connector.

This circuit has many possible uses but it was originally intended to interface with common R/C controller equipment like Futaba's servo and motor drives.


Previous page: Electronic Thermostat
Next page: Hotwire Airflow Meter