Using an HD44780 character LCD with the Raspberry Pi

[Tech2077] is one of the lucky ones who already got his hands on a Raspberry Pi. He’s been looking into different interface options with the GPIO header and just posted a guide to using an HD44780 character display with the RPi. We like this approach because instead of doing some hard-core LCD work he’s using prototyping equipment you probably already have on hand.

Getting a character LCD running should be really simple. The gotcha is the logic level gap between the devices. If you’ve been working with Arduino, your add-ons are probably meant for a 5V power rail  and logic levels. The RPi outputs 3.3V logic. You could use a level converter (you’d need at least 7 pins to be converted in this case) or you can be a bit more clever. [Tech2077] grabbed an I2C port expander that uses just 2 of the RPi lines to address even lines of the display (four data bits plus three control bits). This is a bit of a hack, as the 3.3V logic is 0.2V below the recommended minimum for a digital 1 on the port expander. But it seems to work just fine! If it didn’t, a couple of NPN transistors would do the trick as well.

Addressing the new peripheral is just a matter of loading the i2c module and writing some Python.

Character LCD spectrum analyzer made simple with a dedicated IC

[El Artis] just finished building an audio spectrum analyzer that uses a character LCD. The uses an Arduino to drive the display, but unlike other meters that use the microcontroller for analysis, [El Artis] is using a discrete IC for that task.

This project uses the MSGEQ7 graphic equilizer display filter chip to grab frequency data from the audio source. The chip connects to your microcontroller of choice using two digital pins and one analog pin. [El Artis] points us to [J Skoba's] post about how to use it with an Arduino, then adds his own custom character routines for an HD44780 display. You’ll notice that there are sixteen bars in the image above, which conflicts with the 7 outputs the chip offers. [El Artis] averages neighboring values in order to add the extra outputs.

Don’t miss the demo video after the break. If you’re looking to use this part in one of your projects, we noticed they’re a little hard to find (octopart doesn’t return any suppliers) but SparkFun has them.

[Read more...]

Spectrum analyzer users custom characters on an HD44780 display

[Camilo] built a spectrum analyzer to use with his audio system (translate). The hardware is quite simple, using an op-amp, microcontroller and LCD display. He chose an LMV324M low-voltage op-amp which connects to the incoming audio signal and feeds its output to the microcontroller’s ADC. In this case, he chose a Freescale microcontroller from the HCS08 family which is running at 20 MHz. This gives the project enough speed to properly analyze the incoming audio. He mentions that he’s following the guidelines set forth in the Nyquist-Shannon sampling theorem and using the Fast Fourier Transform when processing the samples.

This isn’t the first time we’ve seen a character LCD used as a display for a frequency analyzer. This other ATmega8-based rendition supported several different screen layouts. These displays have enough RAM to store eight custom characters. Each character is 5×8 pixels, lending eight levels to each character for a total of 16 for each column seen above. We love the simplicity of the hardware in the project but we wouldn’t mind seeing an additional potentiometer to fine-tune how the data is displayed on the screen to take advantage of its full range. See the project in action in the clip after the break.

[Read more...]

Building a message board with a web interface

[Sergio] is just getting into hardware hacking. He started by getting an HD44780 compatible LCD screen running with his Arduino. To take the project to the next level, he decided to add a web interface for changing the message displayed on the LCD.

He’s doing things on the cheap (a man after our own hearts), purchasing many of his components off of eBay. Unfortunately that decision came back to bite him when it was time to connect his Arduino to the network. The Ethernet Shield knock-off wasn’t the same as the official version. That one’s got a Wiznet W5100 ethernet chip with does a lot of the heavy lifting for you. Instead, [Sergio] is using a board with an ENC28J60. It took a bit of searching, but eventually he came up with an example to help him get his Arduino serving web pages and listening for updates from them.

The ENC28J60 is actually not a bad piece of hardware. It’s cheap enough, and there are a few hardware/software demos out there that are worth taking a look at.

An alarm for every day of the week

If you don’t have a 9-to-5 type of job you might find yourself constantly resetting your alarm clock as your calendar commitments change. [Lucas] finally got fed up with the nightly ritual and decided to build his own alarm clock which has unique settings for each day of the week (translated).

The display itself is an LM044L 20×4 character display. This provides a viewing area that is about 3″x1″ and since it’s an HD44780 compliant LCD screen, writing data to it takes very little effort (and RAM) compared to a graphic LCD. A PIC 18F2550 drives the device, taking input from a half-dozen buttons, driving the display, and turning on the enclosed buzzer when it’s time to get up. There’s a backup battery which will keep the settings when power is lost. The daily alarms, current time, and back light brightness can all be adjusted from the four screens that make up the settings menus. The only thing that it’s missing is a precision timekeeper, but that should be easy to add either by measuring the frequency of the mains or by using an RTC chip.

Shift register is all it takes to make a 3-wire serial LCD

This hack is a bit older, but one aspect of the setup makes it worth sharing. Shift registers are a common component to include in a project when you need to increase the number of I/O pins available. We’ve used them to drive LCD screens before, but we never realize you could use a 595 chip to make a 3-wire serial LCD interface. That’s because we’ve always thought of shift registers as having three control pins which must be addressed: data, clock, and latch. But it seems that’s not the case. This hack gangs the pins for clock and latch (called the storage register clock input on this chip) together. This causes the shifted data to be latched to output register one clock cycle after it is shifted into the chip.

This means you can operate the 595 chip with just two pins, but alas, you do need one more connection to drive the LCD properly. This is an HD44780 compliant display. It is being used in 4-bit mode; four of the shift register pins provide that data, while a fifth controls the Register Select pin. Since the shifted data from the 595 appears on the pins after each clock strobe, you must control the Enable pin on the LCD separately or it will behave sporadically.

So there you have it, control an HD44780 display with just 3-pins by using a $0.42 part. Are we going a little too fast for you? Check out this 595 tutorial and give the shift register simulator a try. That should bring you up to speed.

[Thanks Rajendra]

Full-featured AVR time-lapse

This time-lapse photo trigger was built [Lukasz Goralczyk]. It is controlled by an ATmega168 and we were surprised to read that it uses about 12k of code. Curious about what takes up that much space, we were impressed to see all the features demonstrated in the video after the break. The small device, running on two AA batteries, has a well-designed user interface displayed on a 3V character LCD that is navigated with a clickable rotary encoder.

It isn’t the smallest intervalometer we’ve ever seen, but it deserves respect for the features packed into a diminutive form-factor.

[Read more...]

Follow

Get every new post delivered to your Inbox.

Join 94,048 other followers