搜索代码

Display Potentiometer Voltage as a Bar Graph on an LCD

Display Potentiometer Voltage as a Bar Graph on an LCD

This video explains how to display input voltage at A0 pin as a bar graph on LCD1602-I2C and LCD2014-I2C displays. Robojax LCD Bargraph Library (zip file) I2C Scanner Introduction to LCD1602-I2C with code Introduction to using Potentiometer with Arduino Arduino You Know Course on Udemy
193-Ultrasonic sensor distance as a bar graph
语言: C++
/*
 * This Arduino sketch displays input voltage as a bar graph on an LCD1602-I2C.
 * Original library was taken from https://playground.arduino.cc/Code/LcdBarGraph/
 * Modified by Ahmad Shamshiri on May 25, 2019 at 19:43 in Ajax, Ontario, Canada
 * Visit http://robojax.com/learn/arduino for other Arduino codes
 * Watch video instructions for this code: https://youtu.be/gLtVRcyOXaU
 * 
 * Robojax Arduino Course on Udemy where you get a schematic diagram of this sketch 
 * and many other robotics-related lectures and codes. Purchase the course here: http://bit.ly/rj-udemy
 
 
 * This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.
 * This code has been downloaded from Robojax.com
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <https://www.gnu.org/licenses/>.
 */
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <LcdBarGraphRobojax.h>


byte lcdNumCols = 16; // -- number of columns in the LCD
byte lcdLine = 2; // -- number of lines in the LCD
byte sensorPin = 0; // -- value for this example

LiquidCrystal_I2C lcd(0x3f,lcdNumCols,lcdLine);  // -- creating LCD instance
LcdBarGraphRobojax lbg(&lcd, 16, 0, 0);  // -- creating 16 character long bargraph starting at char 0 of line 0 (see video)
				
void setup(){
  // -- initializing the LCD
  lcd.begin();
  lcd.clear();
  lcd.print("Robojax"); 
  lcd.setCursor (0,1); //  
  lcd.print("Voltage Bargraph"); 
   
  // -- do some delay: sometimes I've got broken visualization
  delay(1000);
}

void loop()
{
  lbg.clearLine(1);// clear line 1 to display fresh voltage value
  int inpuValue = analogRead(sensorPin);
  // -- draw bar graph from the analog value read
  lbg.drawValue( inpuValue, 1024);
  // -- do some delay: frequent draws may cause broken visualization
  float voltage = inpuValue * (5.0 / 1023.0);
  lcd.setCursor (0,1); //
  lcd.print("Voltage:"); 
  lcd.setCursor (8,1); //
  lcd.print(voltage); // print
  lcd.setCursor (12,1); //  
  lcd.print("V");   
 
  delay(100);
}

资源与参考

尚无可用资源。

文件📁

没有可用的文件。