Yes i have. In the setup i can do something like:
lcd.begin(16, 2);
lcd.print("Input Aux");
lcd.setCursor(5,0);
lcd.print("WTFFFFF");
and it prints on the second line just fine. Also, I have uploaded my old code to the Arduino which was a capacitor meter and the
variable that stores the value of the capacitance prints on the second line just fine. I am using the lcd in the EXACT same way
and its not working.
Does it have to do with the interups I'm using for the reading of A and B of the optical encoder?
here is the code for my capacitor meter that works perfectly!
#include <LiquidCrystal.h>
#define analogPin 0 // analog pin for measuring capacitor voltage
#define chargePin 13 // pin to charge the capacitor - connected to one end of the charging resistor
#define dischargePin 4 // pin to discharge the capacitor
#define resistorValue 100500.0F // change this to whatever resistor value you are using
// F formatter tells compliler it's a floating point value
unsigned long startTime;
unsigned long elapsedTime;
float microFarads; // floating point variable to preserve precision, make calculations
float nanoFarads;
float fudgefactor;
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
void setup(){
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
// Print a message to the LCD.
lcd.print("Like A Boss!");
pinMode(chargePin, OUTPUT); // set chargePin to output
digitalWrite(chargePin, LOW);
Serial.begin(9600); // initialize serial transmission for debugging
}
void loop(){
digitalWrite(chargePin, HIGH); // set chargePin HIGH and capacitor charging
startTime = micros();
while(analogRead(analogPin) < 648){ // 647 is 63.2% of 1023, which corresponds to full-scale voltage
}
elapsedTime= micros() - startTime;
// convert milliseconds to seconds ( 10^-3 ) and Farads to microFarads ( 10^6 ), net 10^3 (1000)
microFarads = ((float)elapsedTime / resistorValue) ;
Serial.print(elapsedTime); // print the value to serial port
Serial.print(" uS "); // print units and carriage return
if (microFarads > 1){
Serial.print((long)microFarads); // print the value to serial port
Serial.println(" microFarads"); // print units and carriage return
// set the cursor to column 0, line 1
// (note: line 1 is the second row, since counting begins with 0):
lcd.setCursor(0, 1);
// print the number of seconds since reset:
lcd.print(microFarads);
lcd.setCursor(14, 1);
lcd.print("uF");
}
else
{
// if value is smaller than one microFarad, convert to nanoFarads (10^-9 Farad).
// This is a workaround because Serial.print will not print floats
nanoFarads = microFarads * 1000.0; // multiply by 1000 to convert to nanoFarads (10^-9 Farads)
Serial.print((long)nanoFarads); // print the value to serial port
Serial.println(" nanoFarads"); // print units and carriage return
// set the cursor to column 0, line 1
// (note: line 1 is the second row, since counting begins with 0):
lcd.setCursor(0, 1);
// print the number of seconds since reset:
lcd.print(nanoFarads);
lcd.setCursor(14, 1);
lcd.print("nF");
}
/* dicharge the capacitor */
digitalWrite(chargePin, LOW); // set charge pin to LOW
pinMode(dischargePin, OUTPUT); // set discharge pin to output
digitalWrite(dischargePin, LOW); // set discharge pin LOW
while(analogRead(analogPin) > 0){ // wait until capacitor is completely discharged
}
pinMode(dischargePin, INPUT); // set discharge pin back to input
}