LcdBarGraph Library for Arduino
Author:  Bal√°zs Kelemen
Contact: prampec+arduino@gmail.com


Navigation


History

 1.0 2010-02-21: Initial Release
 1.1 2011-12-11: Make it compatible with Arduino 1.0
 1.2 2012-04-27: Fix of Robert Klotz for values greater than 1650. (Thank you Rob!)
 1.2 2012-10-08: Patch for custom positioning of the bar.
 1.3 2012-12-18: Applying "positioning" path in the official release.
 1.4 2014-03-17: Fixing an example and adding a new one.


Description

LcdBarGraph is an Arduino library for displaying analog values in LCD display, which is previously initialized. This library uses LiquedCrystal library for displaying.

LcdBarGraph.gif

Watch demo on YouTube: http://youtu.be/noXtsvPRwQk

The inspiration was come from the video Arduino EMF detector . After watching was wondering what a big work is to build a led bar. Why not use a higher level implementation? And the LcdBarGraph was born.

Please fill free to port this idea to other LCD libraries like arduinoshiftreglcd .

I wanted to leave LcdBarGraph as simple as possible. But the folks asked for the possibility of allow custom positioning of the bar. So, at the version 1.3 I've added this option.

I still do encourage you to make your modification in the library for your own use. (But do not forget about the GPL license, so please publish your modifications!)

Do not hesitate to contact me if you have some wishes, or just find the library useful.


Download, install

Download here:

  • LcdBarGraph-v1.0.zip - Initial release (Use values less than 1650!)
  • LcdBarGraph-v1.2.zip - Use for Arduino v1.0 or later
  • LcdBarGraph-custom_pos.zip - This patch modifies the original v1.2 sources, so that you may position the bar in your LCD with a very little footprint penalty.
  • LcdBarGraph-v1.3.zip - Same as the version 1.2 but with the position option patch applied. (It enlarges the footprint by 12 bytes, but adds a great functionality.)
  • LcdBarGraph-v1.4.zip - Same as the version 1.3 but with an example was fixed, and a new example was added.

Extract the zip in your library folder. Restart the Arduino Ide.


Setup

First you need to set up the LiquidCrystal library as usual. After this you can create LcdBarGraph instance with the just created LiquidCrystal instance. You should pass the reference of the LiquidCrystal to the constructor of the LcdBarGraph, as you can see in the example.

You also need to specify the number of character columns in the LCD which is unfortunately not available from the official LiquidCrystal library.

You may use as many instances of LcdBarGraphs even on the same LiquidCrystal you want. See the MoreGraphs example.


Methods

draw(int value, int maxValue)

Draw a bargraph with a value between 0 and maxValue.


Example

  1. #include <LiquidCrystal.h>
  2. #include <LcdBarGraph.h>
  3.  
  4. byte lcdNumCols = 16; // -- number of columns in the LCD
  5. byte sensorPin = 0; // -- value for this example
  6.  
  7. LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // -- creating LCD instance
  8. LcdBarGraph lbg(&lcd, lcdNumCols);  // -- creating bargraph instance, format is (&lcd, lcdNumCols, start X, start Y). So (&lcd, 16, 0, 1) would set the bargraph length to 16 columns and start the bargraph at column 0 on row 1.
  9.  
  10. void setup(){
  11.   // -- initializing the LCD
  12.   lcd.begin(2, lcdNumCols);
  13.   lcd.clear();
  14.   // -- do some delay some time I've got broken visualization
  15.   delay(100);
  16. }
  17.  
  18. void loop()
  19. {
  20.   // -- draw bar graph from the analog value readed
  21.   lbg.drawValue( analogRead(sensorPin), 1024);
  22.   // -- do some delay: frequent draw may cause broken visualization
  23.   delay(100);
  24. }


Information about this page

Last Modified: March 16, 2014, at 08:47 PM
By: prmpec

Share