![]() |
|
|
Theory of Operation updated: 17 June 2008
Small EL wire inverters all work on the same principle - they get direct current from a battery, and there is an oscillator which generates a low voltage alternating current. This current is then fed through a transformer to step the voltage up to around 200 volts AC. This sequencer, like most EL-wire sequencers, uses a device called a triac to switch this AC current on and off. You need a separate triac for each EL wire channel that you want to control independently. So if there are 16 channels as in the case of my prototype, there are 16 triacs which switch the 16 EL wire channels. My sequencer is controlled by a microprocessor. Some are not. One could argue that your don’t really need a microprocessor, but I wanted to give this sequencer some advanced animation capabilities. The software in the microprocessor determines which wire segments should be on or off at any instant. This pattern of on and off is represented by a bit sequence in the processor's memory - a series of logical 1s and 0s. At the appropriate time, these bits are sent out of the microprocessor one at a time (serially). Directly connected to the microprocessor’s serial output is a 74HC4094 serial-in parallel-put (SIPO) shift register. This device works as follows: it has one serial input, and eight outputs. For now, let’s refer to the outputs as "positions." When you wiggle the clock signal (pin 3 of this chip), the chip looks at the state of its input line (pin 2). If the line is high, the first bit’s a one, if it’s low, the first bit is a zero. This value (one or zero) is moved into the first "position." You then change the state of the input pin to whatever your second bit is supposed to be (1 or 0), and wiggle the clock line again. Every time you wiggle the clock line, whatever was in the first position moves to the second position, whatever was in the second position moves to the third position, and so on. So by repeatedly clocking in new data, you can fill all eight positions. There's another pin called the strobe pin (pin 1). When you wiggle the strobe pin, those values in the eight positions are sent to the eight output pins. In our case, each of those output pins controls an EL wire channel. Now, you can continue to clock new data into the shift register, and the old output values will be held until you wiggle the strobe line again. This allows you to load new data in without interfering with the data already present on the output pins. So you clock in some data, and when you wiggle the strobe line, boom, the data is asserted on the output pins all at once. Clock in more data, strobe it, and boom, a new pattern appears. But wait, there’s more! As the contents of the shift register are shifted down the line, after the eighth position they are not shifted off to oblivion. Instead, they're shifted to an output pin, which can be connected to the input of another shift register. You can chain as many of these shift registers together as you like. My first prototype has just two of these shift registers (hence 16 channels), but the final one will probably have about ten of them (or as many as I can fit onto the circuit board). The back end of my design (the high voltage AC triacs and triac drivers) was pretty much lifted from Guerroloco's Instructable. If you look at the schematic, you’ll see that each shift register output is connected to a special optoisolator called a triac driver. This along with the triac itself does the actual switching of the high voltage AC. At this point I don't really understand much about triacs. The triac driver is a spooky little chip - it's an optoisolator. There are two "sides" to this chip - one one side theres' an LED (internal, you can't see it), and on the other side some sort of photo transistor. When you power the LED, it allows current to flow through the other side. Two sides of the chip are not physically conected to each other - hence the name opto isolator. The chip completely isolates the high voltage AC from the low voltage TTL logic signals. Which sounds like a pretty sane thing to want to do. There are some drawbacks to using the triac driver, though - the most obvious is board space. Currently I need one of these (A DIP6) for each channel of EL wire, and that's a lot of PC board real estate. They also increase the amount of current draw. And finally, they need some sort of zero cross in order to do their switching. I don't understand the physics of how they work yet, but my understanding is that the switched AC signal needs to have a zero crossing that the opto chip can "see" so that it can do the switching. For this reason, square-wave AC signals don't work so well, and it also limits the speed at which you can flash the channel. In my research on the internet, it seems that lots of people blow off the opto isolator and drive the triac directly with TTL signals. So I'm going to try that out as well. Parts list
Schematics and photos The schematic is here. It only shows eight channels, but you'll note that you can chain as many of these together as you like by connecting subsequent eight channel segment's J1 (input) to the previous segments J4 (cascaded output). This is different from what I actually build for my first prototype (I have no schematic for that, I simply laid out the circuit board in Pad2Pad and then checked the netlists VERY carefully!) Also, in this schematic I guess I should have labeled this more carefully, but J3 is where you'd connect your EL wire (pin 9 is common), and J2 is where you apply the AC power for your EL wire.On my proto board, the second 4094 is connected directly to the first 4094's Pin 9 serial output. I used a 40 pin .100 pitch connector to match the 40 pin connector on the Jackrabbit prototypying board, and mapped my signals, power, and ground, to the appropriate places in the Jackarabbit's 40 pin interface. I just use an old IDE connector to connect the jackrabbit to my proto board. Worked great!
The 80-channel version (June 17, 2008) I am currently working on the 80-channel version, but I won't be posting any schematics until I've got it debugged and working, You can find the most recent info on that project on the blog.
Copyright © 2006-2008 David Chesavage. All Rights Reserved. |