A PIC Multiplier and PIC PWM board (less some of the fuses) assembled.
This circuit, based upon the DC Signal Multiplier outputs a PWM signal with a duty cycle which is calculated from two protected DC analog input signals. The PWM signal output power is bolstered with a MCP1416, with PPTC overcurrent protection.
PIC Software for Multiplier:
Thought I’d share my approach to protecting analog and low frequenct signal inputs to sensitive electronics:
I developed this circuit to gather average voltage and current data for a switched DC load and serve them as 5Vmax analog outputs as well as use them to produce a 5Vmax analog signal representing the power. In addition to these analog signals, there is also a resettable instantaneous over-current relay output. Current flow must be from Load(+) to Load(-) for proper operation. The PIC_Multiplier is this. This circuit is used here.
Bill of Materials:
While considering making a constant power DC power supply, I realized that it was quite challenging to come up with a way to multiply DC analog signals. I eventually decided that it’s simply much cheaper and easier to go ahead and use a microcontroller. In this case, a PIC10F322. RA0 and RA2 are used as ADC inputs, and RA1 is used as a PWM output which is passed through a low pass filter to convert it into an analog signal. Finally, RA3 is used to reset the controller if supply voltage drops below an acceptable threshold.
Circuit board design files:
Microchip MPLAB X microprocessor programming files for this device:
While working on an analog automatic DC current limiter, I realized I had a need for a goto timing stage circuit that I could just drop in as required when multiple time dependent tasks need to be completed in sequence. This circuit does that, it’s a capacitor charged with a voltage controlled current, that triggers outputs when the capacitor voltage reaches a fixed threshold. It also has inputs which disable/pause charging and an input to trigger drain of the capacitor which resets the timer. It has two 400mA form C outputs. The timing isn’t linear with respect to the input voltage which is an issue I may revisit at a later date.
Time to Trigger ~= (6*C1)/(TIME_DELAY*2.4/500) where C1 is the capacitance of the timing capacitor.
Which is precalculated on the following chart for a 25uF capacitor (note that 0 volts has a special value due to opamp range limitations and built-in voltage drops, and similarly, voltages greater than 4.3V will not have a lower trigger time.) :
Add (0.8 to 2ms) to these times for the delay required to turn on the opto-relays.
This simple little guy takes two 5 to 24VDC inputs with input current up to 10mA and uses them to control opto-isolated solid state relay contacts. This is very handy when interfacing microcontrollers with industrial controls.
If IN1 is greater than a few volts then NO1 will be connected to COM1 and NC1 will be disconnected. If IN1 is ground then NO1 will be disconnected and NC1 will be connected to COM1. The same holds true for IN2, NO2, NC2, and COM2. Maximum contact hold current is 400mA, and maximum voltage across contacts is 50V.