Since my prototyping on the Arduino there’s been an update to the Arduino development software. A couple of the items mentioned in the fixes are strings and the wire library, both of which are likely to be useful in the next step of my project so I downloaded the latest version.
To check it was working, I overwrote my traffic lights with the simple blink example and that worked fine. I also found a good little tutorial on programming the arduino over on the Linux Journal site which in turn lead me to the prototyping software mentioned below.
I selected an I2C based LCD panel from MIDAS. This choice was made as there are only a handful of I/O ports on the Arduino and I knew I’d be needing some for the sensor too. This particular panel is a COG (chip on glass) model so is quite compact. I soldered the pins of the LCD to my prototyping board, included a couple of pull up resistors as required for the I2C bus and connected that to the arduino. A wiring diagram is shown below which was created in a rather natty little program called Fritzing. Fritzing includes a diagram for the Arduino and I quickly put together a custom part for the LCD. I can definately recommend this software. Fritzing has 3 views, breadboard, schematic and PCB. You can wire up the circuit on the virtual breadboard and it automatically appears on the other 2 screens so you just need to layout the wires and components.
Rather than using breadboard as I’ve done, it should be straight forward to incorporate the prototyping board directly into the design as that component is ready to use from the Fritzing library of parts. Because of the fine spacing of the pins on the LCD to get it to fit into the holes in the prototype board I gently bent them so they fit into 2 adjacent rows. The wiring between the components is on the back. I’ve wired the LCD to the SDA and SCL pins on the protoboard, if you refer to the Arduino Uno schematic you will see these in turn map to the AD4 and AD5 pins on the chip.
The next step is write some code to check that my LCD can display some text, for that I’ve been reading up on the various “wire” and LCD libraries available for the Arduino that simplify the coding needed.