Spark fun Serial LCD

Hello,

Currently I am working with SparkFun serial LCD, linked below

http://www.zeroohm.ae/LCD-Serial-16x2-White-on-Black-5v?search=LCD

I am connecting it to Arduino UNO.

The LCD power is connected to Arduino 3.3 volts
the LCD RX pin is connected to pin 2 in Arduino through a 1k and 2.2k voltage divider. The input voltage is taken from the 2.2k

It’s displaying the text correctly, but it’s very very dim and it’s not clear at all, please check attached.

I am using Arduino code linked below with Arduino version 1.6.4

https://www.sparkfun.com/tutorials/246

It’s mentioned in the data sheet, that a 10kohms potentiometer can be used to adjust the contrast of the LCD, but I am not sure where is it located at the back of the LCD ?

Any help is appreciated.

Thanks

FutureEngineer:
It’s mentioned in the data sheet, that a 10kohms potentiometer can be used to adjust the contrast of the LCD, but I am not sure where is it located at the back of the LCD ?

Any help is appreciated.

Thanks

See attached image. Pot is circled in yellow.

I adjusted the pot using a mini screw driver, but still the font is very dim and it's not clear.

Should I connect the LCD power to 5 volts instead of the 3.3 volts, and remove the voltage divider from the RX pin of the LCD, despite what's written on the datasheet lined in the first post.

Thanks

The pot seems to adjust contrast, not brightness.

You can set the brightness from software; see https://www.sparkfun.com/datasheets/LCD/SerLCD_V2_5.PDF, chapter 3.1

Note: no experience with this device.

Data sheet says LCD runs on 5V only, backpack comm is TTL, that's 5V, I don't get the voltage divider, what's the purpose ?

outsider: Data sheet says LCD runs on 5V only, backpack comm is TTL, that's 5V, I don't get the voltage divider, what's the purpose ?

First link given by OP mentions 3.3V; http://www.zeroohm.ae/LCD-Serial-16x2-White-on-Black-5v?search=LCD

OIC. My bad.

It's very difficult to find the correct information; what do you trust? The board or the website? So much crap around nowadays.

So it's not your 'my bad' ;)

Hi,
Hardware part of datasheet.
LCDHardware.jpg

Should only be powered by 5.0V.
Tom… :slight_smile:

Then, I should trust the data sheet and power the device with 5 volts. Just hoping it won't be damaged.

Hi, Never heard of a 3.3V LCD, especially these generic 16x2. I have one of those without the I2C, same board, runs on 5V.

Tom... :)

Hi,

I was helping FutureEngineer through tech support at SparkFun. I don't usually go through the Arduino forums to answer questions but there was a note that this question was posted.

Initially, I suggested going by the product page's description and using logic level conversions for 3.3V. Looking further into our distributor pages, ZeroOhm is an authorized distributor for SparkFun. I think there is something wrong with their product page’s description [ http://www.zeroohm.ae/LCD-Serial-16×2-White-on-Black-5v?search=LCd ] . I think they copied the wrong description. It looks like they are using this description from the 3.3V LCD [ https://www.sparkfun.com/products/9067 ]. It should be this description for your Serial Enabled 16x2 LCD - White on Black 5V [ https://www.sparkfun.com/products/9395 ]. You should be ok to attach the Vcc pin to 5V and remove the logic levels. We do not have a 3.3V serial enabled LCD with those dimensions.

I have sent an email to the distributor to see what we can do about updating the description. The LCD is probably not getting enough power as opposed to a setting for the backlight or contrast. Sorry for the confusion and frustration that this may have caused.

Best regards, Bobby Technically Awesome Support Representative

Hi, Thanks Bobby, that's what I call product support.

Tom..... :)

I connected the LCD to 5volts, and it’s clear Now :slight_smile:

Now I am interfacing the serial LCD, arduino UNO and the GSM shield.

When I include the GSM code, the program does not compile. The error message is below:

Arduino: 1.6.4 (Mac OS X), Board: “Arduino Uno”

Build options changed, rebuilding all
SoftwareSerial/SoftwareSerial.cpp.o: In function __vector_3': /Users/Desktop/Arduino.app/Contents/Java/hardware/arduino/avr/libraries/SoftwareSerial/SoftwareSerial.cpp:227: multiple definition of __vector_3’
GSM/GSM3SoftSerial.cpp.o:/Users/Desktop/Arduino.app/Contents/Java/libraries/GSM/src/GSM3SoftSerial.cpp:499: first defined here
SoftwareSerial/SoftwareSerial.cpp.o: In function SoftwareSerial::read()': /Users/Desktop/Arduino.app/Contents/Java/hardware/arduino/avr/libraries/SoftwareSerial/SoftwareSerial.cpp:392: multiple definition of __vector_4’
GSM/GSM3SoftSerial.cpp.o:/Users/Desktop/Arduino.app/Contents/Java/libraries/GSM/src/GSM3SoftSerial.cpp:487: first defined here
SoftwareSerial/SoftwareSerial.cpp.o: In function SoftwareSerial::read()': /Users/Desktop/Arduino.app/Contents/Java/hardware/arduino/avr/libraries/SoftwareSerial/SoftwareSerial.cpp:392: multiple definition of __vector_5’
GSM/GSM3SoftSerial.cpp.o:/Users/Desktop/Arduino.app/Contents/Java/libraries/GSM/src/GSM3SoftSerial.cpp:487: first defined here
collect2: error: ld returned 1 exit status
Error compiling.

This report would have more information with
“Show verbose output during compilation”
enabled in File > Preferences.

Hello,

I connected the serial LCD to pin 11.

Any guidance is appreciated.

Thanks.

Below is the code, when I only interface the GSM shield with the UNO, it’s working and I am receiving an SMS. Also, the code is working with the serial LCD with out the GSM shield code. However, when I interface both, I am getting the error message posted in the earlier thread.

/////////////////GSM Sheild
#include <GSM.h>
#define PINNUMBER ""
//GSM gsmAccess(true); 
//GSM_SMS sms;
//char remoteNum2[11] = "";  // telephone number to send sms
//GSMVoiceCall vcs;
//String remoteNumber = "";  // the number you will call
//char charbuffer[20];
//char txtMsg1[25] = "The limit is exceeded"; /////////////////////////////////////////////////for senfind notifications 
//boolean OK = 0; 

// EmonLibrary examples openenergymonitor.org, Licence GNU GPL V3
#include "EmonLib.h"                   
EnergyMonitor emon1;                   
double ApperantPower; 
double Comulative_ApperantPower; 

////////////////////////////////////// LCD 
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10,11);  


////////////////////////////////////////
void setup()
{  
  mySerial.begin(9600); 
  Serial.begin(9600);
  delay(500);
   mySerial.write(124); // move cursor to beginning of first line 
   mySerial.write(157); 
   delay(500); 
 
  mySerial.write(254); // move cursor to beginning of first line
  mySerial.write(128);

  mySerial.write("                       "); // clear display
  mySerial.write("                       ");

  mySerial.write(254); // move cursor to beginning of first line
  mySerial.write(128);
 
  mySerial.write("Welcome               ");

  
  
  ///////////////////////////////////////////////
  emon1.current(1, 111.1);             // Current: input pin, calibration.
  //http://openhardware.gridshield.net/energy-monitor-shield-on-the-arduino-uno
  //////////////////////////////////////////////
  //Serial.println("SMS_R");
  // connection state
  //boolean notConnected = true;
  //while(notConnected)
  //{
    //if(gsmAccess.begin(PINNUMBER)==GSM_READY)
      //notConnected = false;
    //else
    //{
      //Serial.println("NoReady");
      //delay(1000);
    //}
  //}
  //Serial.println("GSMReady");
  ////////////////////////////////////////////
}

void loop()
{
  
  

  
  
  
  double Irms = emon1.calcIrms(1480);  // Calculate Irms only
  ApperantPower= Irms*230.0;
  Comulative_ApperantPower =  (Comulative_ApperantPower + ApperantPower);
 delay(1000); 
  Serial.println("current ="); Serial.println(Irms);
  

  //////Sending SMS
  //if (Comulative_ApperantPower > 1000 && OK ==0 )
  //{
    //sms.beginSMS(remoteNum2); sms.print(txtMsg1); sms.endSMS(); delay(500);  
    //delay(2000);
    //OK =1; 
  //}
  
    
  
  
  
}

Guys,

Please any technical support is appreciated.

Thanks.