20091231
Reality Blows: Strange LCD Problem and Strange Solution.
I spent the better part of two hours struggling with your average HD44780 driven 16x2 character LCD, even though I was using the LiquidCrystal library that comes with the arduino environment. My problem was the text I was printing out looks like this:
I tried a lot of things, like adding in delays here and there, even going so far as to use a subclass of LiquidCrystal which inserts a 2ms delay after each write to no avail. Then by a process of elimination, I found that if I reverse the order in which the lines were printed, i.e. print line 1 then line 0, the problem goes away:
Whiskey Tango Foxtrot.
Cheers,
Steve
Labels: arduino, electronics, IRL, seeeduino
20090216
Arduino ultrasound ranger
Code to drive it is avaliable under GPL.
An updated version of the schematic as a .sch file is available also.
Cheers,
Steve
Labels: arduino, code, electronics, seeeduino
20090125
Auto leveller
A simple 2 DoF setup with an accelerometer (LIS302DL) attached to the effector. The seeeduino attempts to drive the servos so the Z and Y axis measure zero acceleration. The sketch is available at the usual place.
The algorithm employed is a simple PD controller with pseduo-gradient stepping to determine how to control each servo without any knowledge of how the servos are arranged. To deal with sensor noise from the accelerometer, a schmitt trigger mechanism is employed along with a moving average.
The code also allows the system to be calibrated to deal with accelerometer miscalibration.
It is cute, but that is about it :-) Coupled with a tripod and better construction ut might be useful for some DIY surveying or construction work.
Cheers,
Steve
Labels: arduino, code, electronics, seeeduino
20081226
DIY digital spirit level
A simply digital spirit level using a LIS302DL accelerometer from nkcelectronics coupled with a seeeduino for processing and a 2x16 character LCD display for output.
Sketch is available for your convenience. Note the Sketch includes an extra feature: PWM backlight on pin3.
Cheers,
Steve
Labels: code, electronics, seeeduino, software
20081212
2x16 character LCD displays
2x16 character LCD displays can be tricky beasts. I got mine working today with my seeeduino (an arduino compatible board with more awesome), and really wished I had known that:
- The contrast pin needs to be in the same power network as the power and ground pins. The contrast pin at 0v provides highest contrast, which means you can probably just ground it normally.
- The timing between LCD driver power up and commencement of device programming appears to be important. I had the LCD power independently, and this gave me garbage on screen. When the LCD shared the same power supply as the seeeduino everything worked perfectly.
Cheers,
Steve
Labels: arduino, electronics, seeeduino


