Post Top Ad

Saturday, May 11, 2024

Adjustment/alienation of surintensity coupling to the Arduino


 Adjustment/alienation of surintensity coupling to the Arduino

In this project I will show you how to create a simple circuit that can interrupt the current flow to a load when the adjusted current limit is reached. That means the circuit can act as an overcurrent or short circuit protection. Let's get started!


The video gives you all the information you need to recreate the protection circuit. In the next steps though I will give you some additional information.


Here you can find the schematic of the circuit along with pictures of my finished perfboard layout. Feel free to use them as a reference for your own circuit.


From my point of view one of the best ways to get started in electronics is to build your own laboratory power supply. In this instructable I have tried to collect all the necessary steps so that anyone can construct his or her own.


All the parts of the assembly are directly orderable in digikey, ebay, amazon or aliexpress except the meter circuit. I made a custom meter circuit shield for Arduino able to measure up to 36V - 4A, with a resolution of 10mV - 1mA that can be used for other projects as well.


The power supply has the following features:


Nominal Voltage: 24V.

Nominal Current: 3A.

Output Voltage Ripple: 0.01% (According to the specifications of the power supply circuit kit).

Voltage measurement resolution: 10mV.

Current measurement resolution: 1mA.

CV and CC modes.

Over current protection.

Over voltage protection.

Apart from the Image, I have attached the file WiringAndParts.pdf to this step. The document describes all the functional parts, icluding the ordering link, of the bench power supply and how to connect them.


The mains voltage comes in through an IEC panel connector (10) that has a built in fussible holder, there is a power switch in the front panel (11) that breaks the circuit formed from the IEC connector to the transformer (9).


The transformer (9) outputs 21VAC. The 21 VAC go directly to the power supply circuit (8). The output of the power supply circuit (8) goes directly to the IN terminal of the meter circuit (5).


The OUT terminal of the meter circuit (5) is connected directly to the positive and negative binding posts (4) of the power supply. The meter circuit measures both voltage and current (high side), and can enable or disable the connection between in and out.


Cables, in general use scrap cables you have at home. You can check the internet for appropriate AWG gauge for 3A but, in general the thumb rule of 4A/mm² works, especially for short cables. For the mains voltage wiring (120V or 230V) use appropriately isolated cables, 600V in USA, 750V in Europe.


The series pass transistor of the power supply circuit (Q4) (12) has been wired instead of being soldered to allow an easy installation of the heatsink (13).


The original 10K potentiometers of the power supply circuit have been replaced with multiturn models (7), this makes possible a precise adjustment of the output voltage and current.


The arduino board of the meter circuit is powered using a power jack cable (6) that comes from the power supply circuit (8). The power supply board has been modified to obtain 12V instead of 24V.


The positive pin of the CC LED from the power supply circuit is wired to the mode connector of the Meter Circuit. This allow it to know when to display CC or CV mode.


There are two buttons wired to the meter circuit (3). The Off button “red” disconnects the output voltage. The On button “black” connects the output voltage and resets OV or OC errors.


There are two potentiometers wired to the meter circuit (2). One sets the OV threshold and the other sets the OC threshold. These potentiometers do not need to be multiturn, I have used the original potentiometers from the power supply circuit.


The 20x4 I2C alphanumeric LCD (1) is wired to the meter circuit. It shows the present information about output voltage, output current, OV setpoint, OC setpoint and status.

I am attaching an assembly guide I found in the Internet and an image of the Schematic. Briefly:


The circuit is a linear power supply.


Q4 and Q2 are a Darlington array and form the series pass transistor, it is controlled by the operational amplifiers to maintain the voltage and the current at the desired value.


The current is measured by R7, adding this resistance in the low side makes the ground of the power supply circuit and the output ground different.


The circuit drives a LED that turns on when the constant current mode is on.


The circuit incorporates the Graeth bridge to rectify the AC input. The AC input is also used to generate a negative biasing voltage to reach 0V.


There is no thermal protection in this circuit, so appropriate dimensioning of the heatsink is very important.

The circuit has a 24V output for an “optional” fan. I have substituted the 7824 regulator with a 7812 regulator to get 12V for the Arduino board of the meter circuit.


I have not assembled the LED, instead I have used this signal to indicate the meter circuit if the power supply is in CC or CV.

In this circuit all parts are through hole. In general you must start with the smallest ones.


Solder all the resistors.

Solder the rest of the components.

Use pliers when bending diodes leads to avoid breaking them.

Bend the leads of the DIP8 TL081 op amps.

Use heatsink compound in when assembling heatsinks.

The circuit is a shield for Arduino UNO compatible with R3 versions. I have designed it with parts available at digikey.com.


The output of the vkmaker power supply circuit kit is connected to the IN terminal block and the OUT terminal block goes directly to the binding posts of the power supply.


R4 is a shunt resistor in the positive rail valued at 0.01ohm, it has a voltage drop proportional to the current output. The differential voltage R4 is wired directly to RS+ and RS- pins of IC1. The maximum voltage drop at maximum current output is 4A*0.01ohm = 40mV.


R2, R3 and C2 form a ~15Hz filter to avoid noise.


IC1 is a high side current amplifier: MAX44284F. It is based in a chopped operational amplifier that makes it able to get a very low input offset voltage, 10uV at maximum at 25ºC. At 1mA the voltage drop in R4 is 10uV, equal to the maximum input offset voltage.


The MAX44284F has a voltage gain of 50V/V so the output voltage, SI signal, at the maximum current of 4A, will value 2V.

The maximum common mode input voltage of MAX44284F is 36V, this limits the input voltage range to 36V.


R1 and C1 form a filter to suppress 10KHz and 20KHz unwanted signals that can appear due to the architecture of the device, it is recommended on page 12 of the datasheet.


R5, R6 and R7 are a high impedance voltage divider of 0.05V/V. R7 with C4 form a ~5Hz filter to avoid noise. The voltage divider is placed after R4 to measure the real output voltage after the voltage drop.


IC3 is MCP6061T operational amplifier, it forms a voltage follower to isolate the high impedance voltage divider. The maximum input bias current is 100pA at room temperature, this current is negligible to the impedance of the voltage divider. At 10mV the voltage at the input of IC3 is 0.5mV, much bigger than its input offset voltage: 150uV at maximum.


The output of IC3, SV signal, has a voltage of 2V at 40V input voltage (the maximum possible is 36V due to IC1). SI and SV signals are wired to IC2. IC2 is an MCP3422A0, a dual channel I2C sigma delta ADC. It has an internal voltage reference of 2.048V, selectable voltage gain of 1, 2, 4, or 8V/V and selectable number of 12, 14, 16 or 18bits.

For this circuit I am using a fixed gain of 1V/V and a fixed resolution of 14bits. SV and SI signals are not different so the negative pin of each input must be grounded. That means that the number of available LSBs are going to be half.


As the internal voltage reference is 2.048V and the effective number of LSB are 2^13, the ADC values will be: 2LSB per each 1mA in the case of current and 1LSB per each 5mV in the case of voltage.


X2 is the connector for the ON push button. R11 prevents the Arduino pin input from static discharges and R12 is a pull-up resistor that makes 5V when unpressed and ~0V when pressed. I_ON signal.


X3 is the connector for the OFF push button. R13 prevents the Arduino pin input from static discharges and R14 is a pull-up resistor that makes 5V when unpressed and ~0V when pressed. I_OFF signal.


X5 is the connector for the overcurrent protection set point potentiometer. R15 prevents the Arduino input pin from static discharges and R16 prevents the +5V rail from a short circuit. A_OC signal.

X6 is the connector for the overvoltage protection set point potentiometer. R17 prevents the Arduino input pin from static discharges and R18 prevents the +5V rail from a short circuit. A_OV signal.


X7 ins an external input that is used to get the constant current or constant voltage mode of the power supply. As it can have many input voltages it is made using Q2, R19, and R20 as a voltage level shifter. I_MOD signal.


X4 is the connector of the external LCD, it is just a connection of the 5V rail, GND and I2C SCL-SDA lines.


I2C lines, SCL and SDA, are shared by IC2(the ADC) and the external LCD, they are pulled up by R9 and R10.


R8 and Q1 form the driver of K1 relay. K1 connects the output voltage when powered. With 0V in -CUT the relay is unpowered, and with 5V in -CUT the relay is powered. D3 is the free wheeling diode to suppress negative voltages when cutting the voltage of relay coil.


Z1 is a Transient Voltage Suppressor with a nominal voltage of 36V.

I have used the free version of Eagle for both the schematic and the PCB. The PCB is 1.6 thick double sided design that has a separate ground plane for the analog circuit and the digital circuit. The design is pretty simple. I got a dxf file from the Internet with the for the outline dimension and the position of the Arduino pinhead connectors.


I am posting the following files:


Original eagle files: 00002A.brd and 00002A.sch.

Gerber files: 00002A.zip.

And the BOM(Bill Of Materials) + assembly guide: BOM_Assemby.pdf.


 Adjustment/alienation of surintensity coupling to the Arduino

In this project I will show you how to create a simple circuit that can interrupt the current flow to a load when the adjusted current limit is reached. That means the circuit can act as an overcurrent or short circuit protection. Let's get started!


The video gives you all the information you need to recreate the protection circuit. In the next steps though I will give you some additional information.


Here you can find the schematic of the circuit along with pictures of my finished perfboard layout. Feel free to use them as a reference for your own circuit.


From my point of view one of the best ways to get started in electronics is to build your own laboratory power supply. In this instructable I have tried to collect all the necessary steps so that anyone can construct his or her own.


All the parts of the assembly are directly orderable in digikey, ebay, amazon or aliexpress except the meter circuit. I made a custom meter circuit shield for Arduino able to measure up to 36V - 4A, with a resolution of 10mV - 1mA that can be used for other projects as well.


The power supply has the following features:


Nominal Voltage: 24V.

Nominal Current: 3A.

Output Voltage Ripple: 0.01% (According to the specifications of the power supply circuit kit).

Voltage measurement resolution: 10mV.

Current measurement resolution: 1mA.

CV and CC modes.

Over current protection.

Over voltage protection.

Apart from the Image, I have attached the file WiringAndParts.pdf to this step. The document describes all the functional parts, icluding the ordering link, of the bench power supply and how to connect them.


The mains voltage comes in through an IEC panel connector (10) that has a built in fussible holder, there is a power switch in the front panel (11) that breaks the circuit formed from the IEC connector to the transformer (9).


The transformer (9) outputs 21VAC. The 21 VAC go directly to the power supply circuit (8). The output of the power supply circuit (8) goes directly to the IN terminal of the meter circuit (5).


The OUT terminal of the meter circuit (5) is connected directly to the positive and negative binding posts (4) of the power supply. The meter circuit measures both voltage and current (high side), and can enable or disable the connection between in and out.


Cables, in general use scrap cables you have at home. You can check the internet for appropriate AWG gauge for 3A but, in general the thumb rule of 4A/mm² works, especially for short cables. For the mains voltage wiring (120V or 230V) use appropriately isolated cables, 600V in USA, 750V in Europe.


The series pass transistor of the power supply circuit (Q4) (12) has been wired instead of being soldered to allow an easy installation of the heatsink (13).


The original 10K potentiometers of the power supply circuit have been replaced with multiturn models (7), this makes possible a precise adjustment of the output voltage and current.


The arduino board of the meter circuit is powered using a power jack cable (6) that comes from the power supply circuit (8). The power supply board has been modified to obtain 12V instead of 24V.


The positive pin of the CC LED from the power supply circuit is wired to the mode connector of the Meter Circuit. This allow it to know when to display CC or CV mode.


There are two buttons wired to the meter circuit (3). The Off button “red” disconnects the output voltage. The On button “black” connects the output voltage and resets OV or OC errors.


There are two potentiometers wired to the meter circuit (2). One sets the OV threshold and the other sets the OC threshold. These potentiometers do not need to be multiturn, I have used the original potentiometers from the power supply circuit.


The 20x4 I2C alphanumeric LCD (1) is wired to the meter circuit. It shows the present information about output voltage, output current, OV setpoint, OC setpoint and status.

I am attaching an assembly guide I found in the Internet and an image of the Schematic. Briefly:


The circuit is a linear power supply.


Q4 and Q2 are a Darlington array and form the series pass transistor, it is controlled by the operational amplifiers to maintain the voltage and the current at the desired value.


The current is measured by R7, adding this resistance in the low side makes the ground of the power supply circuit and the output ground different.


The circuit drives a LED that turns on when the constant current mode is on.


The circuit incorporates the Graeth bridge to rectify the AC input. The AC input is also used to generate a negative biasing voltage to reach 0V.


There is no thermal protection in this circuit, so appropriate dimensioning of the heatsink is very important.

The circuit has a 24V output for an “optional” fan. I have substituted the 7824 regulator with a 7812 regulator to get 12V for the Arduino board of the meter circuit.


I have not assembled the LED, instead I have used this signal to indicate the meter circuit if the power supply is in CC or CV.

In this circuit all parts are through hole. In general you must start with the smallest ones.


Solder all the resistors.

Solder the rest of the components.

Use pliers when bending diodes leads to avoid breaking them.

Bend the leads of the DIP8 TL081 op amps.

Use heatsink compound in when assembling heatsinks.

The circuit is a shield for Arduino UNO compatible with R3 versions. I have designed it with parts available at digikey.com.


The output of the vkmaker power supply circuit kit is connected to the IN terminal block and the OUT terminal block goes directly to the binding posts of the power supply.


R4 is a shunt resistor in the positive rail valued at 0.01ohm, it has a voltage drop proportional to the current output. The differential voltage R4 is wired directly to RS+ and RS- pins of IC1. The maximum voltage drop at maximum current output is 4A*0.01ohm = 40mV.


R2, R3 and C2 form a ~15Hz filter to avoid noise.


IC1 is a high side current amplifier: MAX44284F. It is based in a chopped operational amplifier that makes it able to get a very low input offset voltage, 10uV at maximum at 25ºC. At 1mA the voltage drop in R4 is 10uV, equal to the maximum input offset voltage.


The MAX44284F has a voltage gain of 50V/V so the output voltage, SI signal, at the maximum current of 4A, will value 2V.

The maximum common mode input voltage of MAX44284F is 36V, this limits the input voltage range to 36V.


R1 and C1 form a filter to suppress 10KHz and 20KHz unwanted signals that can appear due to the architecture of the device, it is recommended on page 12 of the datasheet.


R5, R6 and R7 are a high impedance voltage divider of 0.05V/V. R7 with C4 form a ~5Hz filter to avoid noise. The voltage divider is placed after R4 to measure the real output voltage after the voltage drop.


IC3 is MCP6061T operational amplifier, it forms a voltage follower to isolate the high impedance voltage divider. The maximum input bias current is 100pA at room temperature, this current is negligible to the impedance of the voltage divider. At 10mV the voltage at the input of IC3 is 0.5mV, much bigger than its input offset voltage: 150uV at maximum.


The output of IC3, SV signal, has a voltage of 2V at 40V input voltage (the maximum possible is 36V due to IC1). SI and SV signals are wired to IC2. IC2 is an MCP3422A0, a dual channel I2C sigma delta ADC. It has an internal voltage reference of 2.048V, selectable voltage gain of 1, 2, 4, or 8V/V and selectable number of 12, 14, 16 or 18bits.

For this circuit I am using a fixed gain of 1V/V and a fixed resolution of 14bits. SV and SI signals are not different so the negative pin of each input must be grounded. That means that the number of available LSBs are going to be half.


As the internal voltage reference is 2.048V and the effective number of LSB are 2^13, the ADC values will be: 2LSB per each 1mA in the case of current and 1LSB per each 5mV in the case of voltage.


X2 is the connector for the ON push button. R11 prevents the Arduino pin input from static discharges and R12 is a pull-up resistor that makes 5V when unpressed and ~0V when pressed. I_ON signal.


X3 is the connector for the OFF push button. R13 prevents the Arduino pin input from static discharges and R14 is a pull-up resistor that makes 5V when unpressed and ~0V when pressed. I_OFF signal.


X5 is the connector for the overcurrent protection set point potentiometer. R15 prevents the Arduino input pin from static discharges and R16 prevents the +5V rail from a short circuit. A_OC signal.

X6 is the connector for the overvoltage protection set point potentiometer. R17 prevents the Arduino input pin from static discharges and R18 prevents the +5V rail from a short circuit. A_OV signal.


X7 ins an external input that is used to get the constant current or constant voltage mode of the power supply. As it can have many input voltages it is made using Q2, R19, and R20 as a voltage level shifter. I_MOD signal.


X4 is the connector of the external LCD, it is just a connection of the 5V rail, GND and I2C SCL-SDA lines.


I2C lines, SCL and SDA, are shared by IC2(the ADC) and the external LCD, they are pulled up by R9 and R10.


R8 and Q1 form the driver of K1 relay. K1 connects the output voltage when powered. With 0V in -CUT the relay is unpowered, and with 5V in -CUT the relay is powered. D3 is the free wheeling diode to suppress negative voltages when cutting the voltage of relay coil.


Z1 is a Transient Voltage Suppressor with a nominal voltage of 36V.

I have used the free version of Eagle for both the schematic and the PCB. The PCB is 1.6 thick double sided design that has a separate ground plane for the analog circuit and the digital circuit. The design is pretty simple. I got a dxf file from the Internet with the for the outline dimension and the position of the Arduino pinhead connectors.


I am posting the following files:


Original eagle files: 00002A.brd and 00002A.sch.

Gerber files: 00002A.zip.

And the BOM(Bill Of Materials) + assembly guide: BOM_Assemby.pdf.

No comments:

Post a Comment

Post Top Ad

Pages