Building a bigger bar graph

Take a gander at the Giant LED bar graph which [Chunky Hampton] recently completed (from this image we don’t think the nick name suits him). It’s simple both mechanically and electrically, but we love the look and think it would be a nice addition to your home, hackerspace, or as a children’s museum exhibit (we’re looking at you [Mr. Porter]).

The enclosure is a hunk of PVC electrical conduit. It’s got to be one of the largest sizes, but still should be found at most home stores. The base mounts easily and the cover snaps into place. [Chunky] used a hole saw to create the openings for the LED modules. They’re circular boards with multiple single-color LEDs on them. A common power bus feeds the high side of each bit, while a couple of transistor ICs controlled by 595 shift registers address them on the low side. From there just use any controller you wish, but in this case it’s an Arduino.

[Chunky] uses the meter to display power output from his stationary bicycle generator. But he also put together a little Larson Scanner demo which you can see after the break.

Continue reading “Building a bigger bar graph”

LED matrix shield starts with a very loud snap

We see a lot of LED matrix projects. They’re fun, and you can learn a lot of basic lessons during the build. But this one is out of the ordinary. [Rtty21] built an oddly sized, and sound controlled matrix shield for his Arduino. That’s it right there, the shield is the large chunk of protoboard but you can just see the Arduino peeking up over the top of it.

Now we say oddly sized because a 9×9 matrix doesn’t make much sense with an 8-bit micro controller. There’s no schematic but in the clip after the break he mentions that the columns and rows are driven by a decade counter and shift register and that’s what makes it possible to drive nine bits easily. Also of note on the board is that washer above and to the right of the matrix. It’s a touch-sensitive reset button. But the main control mechanism is a Clapper clone circuit. Just snap your fingers and it turns the project on or off. [Rtty21] based the design on this step-by-step sound input build.

Continue reading “LED matrix shield starts with a very loud snap”

[David] hand soldered a Blinky ball… and you can too!

This is a blinky ball that [David] designed, built, and programmed himself. Does it look familiar? It should, he took his inspiration from the original prototype, and the Hackerspace-produced derivative. [David’s] version is not as small, or as blinky, but in our minds the development process is the real reason for building something like this. He took a great idea and figured out how he could pull it off while pushing his skill set, staying within his time and budget constraints.

The project is powered by an Arduino nano which resides in the core of the ball. [David] used protoboard sourced locally for each of the slices, soldering green LEDs along the curved edges, and added shift registers to drive them. The ball is driven by a LiPo battery which can power it for about 45 minutes. You can see the animation designs he coded in the clip after the break.

Continue reading “[David] hand soldered a Blinky ball… and you can too!”

Arduino MIDI sequencer displays a lot of data

This Arduino MIDI sequencer has no shortage of ways to display loop info. The screen above is a touch-sensitive interface that acts as the user input. But if this screen is not visible, you can still see which tracks have activated samples for each beat and what effects are being used. That’s thanks to the collection of display boards which are shown in the video after the break.

The setup acts as the MIDI front end, relying on other hardware to generate the samples. It presents all of the options through several pages on the 320×240 touch screen display. The Ardunio Mega is responsible for monitoring the UI data, crafting and sending the MIDI commands, as well as updating the LED-based display boards. These include bar graphs for the various effects, a four row by sixteen pixel beat pattern display, and 7-segment displays to track the current location within the loop. All in that’s 368 LEDs driven by 18 shift registers.

Update: Link to a gallery can be found after the break as well.

Continue reading “Arduino MIDI sequencer displays a lot of data”

AVR External Memory Interface (XMEM) reads input matrix

Reading from a large number of inputs, like this piano keyboard, can be tedious. Even when multiplexing there’s a lot to keep track of. But if you choose the right microcontroller, you may have hardware assistance. Here’s an ATmega640 is using it’s external memory interface to read the key matrix.

You may remember the Open Music Labs article about reading from a shift register using just one pin of a microcontroller. This time around a shift register is still used, but instead of pulling in a long line of parallel inputs, the switches are multiplexed to reduce the number of I/O pins used to read them.

A 74HC573 is used to facilitate the multiplexing. We won’t go into how that part is accomplished; there’s a separate post that explains the process. What’s unique here is that the XMEM peripheral of the AVR microcontroller is used to grab the data. This is intended for external memory chips, but if you get the timing just right, it greatly simplifies reading in a matrix of up to 128 inputs.

Reading inputs from shift registers using just one single pin

Here’s an interesting article about reading data from shift registers using less than three pins. 74HC165 shift registers are a popular choice for adding inputs to a microcontroller. They have a parallel input register which can be read using the latch, then shifted into a microcontroller via the data and clock pins. For those counting, that’s the three pins normally associated with driving these devices.

This hack first does away with the latch pin. The addition of a carefully trimmed RC circuit (capacitor is charged by the clock pin, then the resistor lets that cap slowly discharge) means that the device will not latch until after the clock stops toggling. This technique drops the control down to just two pins (data and clock). You can still use hardware SPI to read the data using this method. It’s the same as using SPI to drive 595 shift registers except the microcontroller reads data instead of writing it.

But wait, there’s more! The diagram above actually shows a way of reading this shift register with just one pin. Notice that the clock and data pins are now connected to just one of the microcontroller pins. The data pin has an added resistor, which keeps the current low enough that it will not compete with the clock signal coming from the microcontroller. In between clock pulses, the microcontroller switches from output to input to read the data pin on each cycle. Give it a try, it’s a fun experiment!

Controlling shift registers via SPI

Hack a Day’s very own (and very prolific contributor) [Mike Szczys] put up a great tutorial on how to drive shift registers with an SPI interface.

[Mike]’s earlier tutorial of the 595 shift register goes through the functions of a shift register pin by pin. In a 595, bits for each position in the register are sent over one at a time. Most microprocessors have an Serial Peripheral Interface, and using an SPI bus means a lot less mucking about.

An ATmega168 was used for this build, although most Atmel chips can be made to work as an SPI master device. There are just three wires connecting the microcontroller to the shift register – SER, SRCLK, and RCLK. Like any other shift register setup, the build can be expanded by connecting the QH’ pin of the first 595 to the SER pin of the second.

[Mike] graciously made all the code for his build available. The video after the break is a 16-bit binary counter, a good stopping point before [Mike] rebuilds his Larson scanner/Cylon/Kitt, moving away from a PWM-based build to a register-based one.

Continue reading “Controlling shift registers via SPI”