ShiftBrite RGB LED Module
What is ShiftBrite? ShiftBrite is a high-brightness LED module containing red, green, and blue elements. It uses a simple clocked serial interface to receive a 10-bit brightness value for each color, resulting in over a billion possible colors. Each input is buffered and output on the other side of the module. This allows each ShiftBrite to repeat the signal to the next, allowing longer cable runs between elements without excessive loading of microcontroller I/O pins. ShiftBrite elements feature current control and automatic overtemperature control (an overheating channel driver will shut off until it has cooled). Each channel can also be adjusted with a separate current control register, for fine tuning of each LED if close brightness matching is necessary. The integrated voltage regulator powers the internal logic, allowing a single 5 to 9 volt supply rail to power the ShiftBrite chain. Shifty VU: An example ShiftBrite application. How do I use ShiftBrite? ShiftBrite modules receive data in a simple clock/data/latch format. Place a logic level on the data pin, pulse the clock pin, and move to the next data bit. Once all data has been sent, pulse the latch pin to load the new data into the LED PWM registers. Since each ShiftBrite acts as a 32-bit shift register, it passes the last bit to the next ShiftBrite in the chain on every clock pulse. This allows many ShiftBrites to be controlled from the same set of control lines; simply shift out 64 bits of data for two ShiftBrites, 96 bits for three devices, and so on. However, this does mean that in order to update one LED, the entire array must be refreshed. Additional details regarding ShiftBrite usage and example code will be posted soon. For now, please refer to the Allegro A6281 documentation. ShiftBrite modules are essentially breakout boards for the A6281 chip, and the signal names are silkscreened on the corresponding input and output pins. Sample Arduino code (tested by customers, works): int datapin = 10; // DI
int latchpin = 11; // LI int enablepin = 12; // EI int clockpin = 13; // CI unsigned long SB_CommandPacket; void setup() { digitalWrite(latchpin, LOW); void SB_SendPacket() { shiftOut(datapin, clockpin, MSBFIRST, SB_CommandPacket >> 24); delay(1); // adjustment may be necessary depending on chain length void loop() { SB_CommandMode = B01; // Write to current control registers SB_CommandMode = B00; // Write to PWM control registers delay(250); SB_CommandMode = B00; // Write to PWM control registers delay(250); SB_CommandMode = B00; // Write to PWM control registers delay(250);
Direct payments from your PayPal account are no additional charge; PayPal will add a small fee if you wish to make a credit card payment without a PayPal login.
|
Recent Comments
5 years 2 weeks ago
5 years 2 weeks ago
5 years 4 weeks ago
5 years 11 weeks ago
5 years 18 weeks ago
5 years 19 weeks ago
5 years 23 weeks ago
5 years 23 weeks ago
5 years 26 weeks ago
5 years 32 weeks ago