EspositoWang: Difference between revisions

From Psych 221 Image Systems Engineering
Jump to navigation Jump to search
imported>Projects221
imported>Projects221
Line 189: Line 189:


== Appendix II - Work partition ==
== Appendix II - Work partition ==
Simulation development - David Wang
Simulation/characterization development - David Wang
<br>
<br>
Hardware assembly - William Esposito, David Wang
Hardware assembly - William Esposito, David Wang
<br>
<br>
Firmware development - William Esposito
Firmware development - William Esposito

Revision as of 05:53, 17 March 2013

Back to Psych 221 Projects 2013

LED Flicker Super Capacitor Design

Background

This projects builds upon the 2012 LED Flicker project. Instead of controlling the LEDs via PWMs, which has properties of flicking between OFF and ON states, the goal of this project is to design a system that provides a constant current through each LED. The design mimics a camera flash with the use of super capacitors charged by a wall wart power adapter or benchtop supply. Each LED will be pulsed with a max of 1 amp of current. There are 7 different LEDs on the LED array module and each LED is flashed so that no two LEDs are on at the same time. The time duration that the LED is on and the time interval between LED flashes are adjustable to allow for ease of use. Modifications can be made so that this design can be charged with Alkaline or Lithium-Ion batteries to make the entire system compact and portable.

High Level Device Specifications

  1. Should have at least 7 channels for controlling each LED
  2. The rate at which the LEDs flash should be adjustable
    To adjust the interval time between each LED flash and the duration that each LED is on for
  3. The light intensity shall be constant and be set with ~1A of current
    Easy modifications can be made so that the light intensity can be adjustable
  4. System design should be modular to allow for quick modifications to system parameters
    Amount of charge caps can hold the amount of current through LED
  5. Should incorporate the use of super capacitors for a quick discharge of energy to the load

Device Overview

Design

Components

  1. LED Array of primary lights
    For the final design : 7-in-1 round assembly LED Array
  2. Arduino Uno microcontroller product
  3. A circular flat top Heat Sink Diameter ~ 2 1/4th inches
  4. A perforated circuit board (for the intermediate design) and a breadboard (for making a prototype)
  5. Circuit components
    1. 50F super capacitors product
    2. Fairchild Semiconductor FQP30N06L: N-Channel MOSFET datasheet
    3. Fairchild Semiconductor 2N3904 NPN BJT datasheet
    4. TI LM317 Adjustable Linear Regulator datasheet
    5. Ohmite RA-T2X-51E Heatsink, TO-220 product
    6. Assmann WSW Heatsinks, TO-220 product
    7. Kyoto Solid State Relay: In-32VDC max, Out-60VDC max, 4A max datasheet
    8. 1.3 Ohm 5% 3 watt power resistors feedback resistances
    9. 2.7KOhm 5% 1/4 watt resistors to connect control signals from the Arduino to the circuit.

LED Driver Circuit

Driver circuit for the LEDs

To get a system that produces a stable light output, the LED must be driven by a constant current. An approach to get a constant current is using the circuit to the right. The way this circuit works is that the feedback resistor and BJT combination sense the amount of current flowing though the LED and feed this signal back to the MOSFET gate controlling its voltage and hence the current flowing through it. This design allows approximately ~1A of current to flow through the LED. The key idea was drive the LEDs and FETs with a constant current making their light output insensitive to supply voltage. Simulations were performed to analyze the behavior of the system with the proposed circuit parameters, and it was found that the LEDs in the Luxeon array have a relatively shallow turn on slope, introducing voltage sensitivity despite the constant current drive of the supply. In order to remedy this, we had to choose a supply voltage range that would keep the LEDs in their own 'saturation' region.

For current control, the key parameter that must be selected with caution is the feedback resistance since that controls the maximum current flowing through the circuit. Given that this is a high current (1Amp) design, multi-watt power resistors must be used for the current limiters ensure that the power dissipated in them does not damage the circuit.

To determine what feedback resistance we needed, we performed several simulations in LTSpice to verify that the circuit will work the way we expect it to and the optimal resistance parameters for the feedback and input resistors (at the gate of the FET).

Seven copies of this circuit will be assembled, one to drive each LED in the array, with the seven control signals routed to the gates of the FETs from the Arduino microcontroller.

Super Capacitor Charging/Discharging Circuit

Capacitor Charging/Discharging Circuit

Ideally, the system should be able to drive more than one LED in the array at once. In order to support a much higher (multi-amp) drive current, caused by triggering 7 or more 1A LEDs at once, we had to build a supply circuit that was based around a collection of 50F super-capacitors.

These capacitors can be charged simply, using a conventional voltage regulator to approximate an ideal voltage source. This is problematic, however, as it will take an extremely long time to charge the capacitors fully. As a result, we designed a current controlled power supply.

The circuit is fairly straightforward -- an LM317 adjustable linear regulator acts as a regulated voltage supply. This supply could easily be replaced by a switch mode supply to improve system efficiency, however, one would have to carefully select a replacement supply capable of handling 7.5+ volts on the output and supplying >1.5A for the time it takes to charge the capacitors (about 1 minute)

The current drive is formed with a MOSFET is placed in series with the capacitors. Its gate is connected to the supply rail. Thus, the FET will drive as much current as it can into the capacitors until the voltage of the charged capacitors pushes the FET into cutoff. The result is that the capacitors will charge as quickly as possible and be voltage limited to the regulator's setting minus the (approximately) 2V Vgs of the FET.

Once the capacitors are fully charged, the voltage regulator can be disconnected (using the solid state relay) and the capacitors will retain their charge, ready to supply current to the LED array.

A simple resistive voltage divider has been included to allow our Arduino to sense when the capacitors are charged and then disconnect the regulator. This allows us to 'overdrive' the capacitors -- that is, set the linear regulator to drive the capacitors to a voltage higher than their design specification, and then use the Arduino to disconnect the supply before the capacitors actually exceed their specified rating. The advantage to this is that the FET does not approach cutoff as the capacitors are finishing charging, resulting in a higher current at the final stage of charging and thus a much shorter charging sequence.

Note that the Arduino is required for this configuration to work safely, and the circuit should not be connected without a powered and programmed Arduino. If an Arduino is unavailable, it is STRONGLY ADVISED that the circuit be readjusted to ensure that the super-capacitors to not exceed their rated voltage.

Overall System Design

The entire circuit design is shown below. Since there are 7 LEDs on the LED array module, each of the individual LED driver circuits is connected at the same node (in parallel).

Complete circuit schematic

Method

Simulations

Various simulations in LTSpice were performed prior to and in parallel with testing the prototype breadboarded version. The idea was to use the same circuit configuration as in the previous project since the MOSFET and BJT current limits the maximum amount of current through the LED. The optimal feedback resistance (in series with MOSFET source) was found by adjusting the resistance so the current in the saturation region of the MOSFET was approximately 1A. The feedback resistor has to be rated for at least 3 watts to handle the 1A. Lower power rating resistors could be used since the LED flash system will not have a continuous 1A flowing through it, the flash duration will be within the range of ~10ms or less.

The feedback resistor value is 0.68ohms, while the resistor on the collector side of the BJT was 51ohms. The MOSFET model used in the simulation was the FQP20N06L, but in the actual circuit we used the FQP30N06L. Fairchild Semiconductors did not make a FQP30N06L model so we used the closest model as possible. Although the values for the resistors were obtained through simulations, we knew that once we tested the actual circuit, we would have to modify the resistor on the collector side of the BJT to compensate for the difference in the MOSFET models.

As shown in the figures below, the circuit simulation for the LEDs only consisted of the LED driver current and not the charging/discharging unit. All the LEDs on the LED module were simulated except for the deep red and red LEDs because models were not available for those components. All simulation files can be found in the Appendix.

NOTE: The charging/discharging system was not simulated because models for the LM317 from Texas Instruments were not available and for some reason simulating capacitors in the Farad (1-50F) range does not simulate properly in LTSpice.


Characterization of LED Array Module

Although simulations were performed for the LED driver circuit with averaged models of the Luxeon LEDs, we wanted to fully characterize the LEDs ourselves to determine how much of a difference there was from the model to the actual product. To test each LED, we hooked each one within the LED driver circuit to a benchtop power supply with initially 0V. We stepped up the voltage by 0.1V and made note of what the current draw from the LED was. As you can see, the measured plot is very similar to the simulated plots (royal blue LED shown below). The major noticeable difference is from 2.7-3.6V range in which the shows a very weird effect from the LEDs. At around 3.5-3.6V (which is very close to the voltage drop of the LED), the LED suddenly kicks on and conducts hard. If the upper linear portion of the plot is extrapolated down, it would look more like the simulated.

One difference between the simulated and measured plots is that the MOSFET was different. The actual MOSFET was an FQP30N06L while the simulated MOSFET was a FQP20N06L (fairchild semiconductor did not have a model for the FQP30N06L). From the simulation, the current in the saturation mode is ~1A, but when measured and due to the difference of the MOSFETs, the resistor value on the collector side of the BJT was 51 ohms in the simulation made the measured saturation current limit at 1.1-1.2A. To make sure that the limit of ~1A is strictly enforced, the resistor was changed to 2.7K. Tests were conducted and the LEDs were clamped to 1A within a +/-0.5% range.

From this test, we were able to observe that the average saturation cutoff region for all the LEDs is around 4.8V. For the flash sequence to run a few times before the capacitors have to be charged fully again, 2-3 volts + 4.8V across the capacitors should be sufficient. Data from all LED characterization can be found in the Appendix.

Super Capacitor Charging/Discharging Design Testing

Section for Bill
Discuss about how the works and was tested...Video of the charging/discharging with arduino sensing is in the appendix

Charging circuit with voltage sensing from Arduino

Prototype Circuit

Video of LED driver circuit testing can be found in the Appendix.

Trade Offs

Trade off between charging time and efficiency....

Battery Design Considerations

Once the super caps were tested with a bench top power supply, we decided to test the caps charging and discharging time in the same configuration but with a 9V alkaline battery. A 9V battery performance is characterized by milliamp-hours capacity. As shown in the characteristic graphs below, for an energizer max 9V alkaline battery, with a discharge of 500mA, the capacity of the battery is approximately 300mAh. With the discharge trend, a discharge of 1A would have approximately 250mAh of capacity, giving the life of the battery to only 15 minutes for a continuous load of 1A. The 9V characteristic curves as shown below also indicate that the estimated 15 minutes of battery life for the system is an overestimation.

Arduino Code Development

Code development methodology...

Results

Results section.....

Conclusions

Our circuit design to make a LED flash system with super capacitors is possible. A more robust design can be implemented to make the design run more efficient. There are many tradeoffs between the charging time and battery consumption, so making a perfect system that encompasses all positive aspects is impossible.

BLAH BLAH BLAH

References

2012 LED Flicker project

Appendix I - Code and Data

Files

LTSpice code for simulated circuit: File:LED driver simulations.zip

  • Need to install MOSFET and LED models to work properly

Altium Designer schematics: File:Altium Schematics.zip

LED characterization data tables: File:LED characterization data.zip

Arduino code for driving LED circuit: [[File:]]

Videos

LED driver circuit test: File:LED driver testing.zip

Super capacitor charging/discharging with Arduino voltage sensing: File:Arduino sensing cap voltage.zip

Observing current load while testing flash sequence (6 channels) : File:Flash sequence current.zip

Slow flash sequence duration (6 channels): File:Slow flash sequence.zip

Fast flash sequence (6 channels): File:Fast flash sequence.zip

Testing voltage discharge from capacitors with 10 flash sequences: File:10 flash sequences.zip

Testing how many flash sequences can be triggered within sensing range: File:20 flash sequences.zip

Appendix II - Work partition

Simulation/characterization development - David Wang
Hardware assembly - William Esposito, David Wang
Firmware development - William Esposito