print on the lcd two different characters on the same row and column

Hii,

I'am new on arduino world  :)  
I would like to know how can I print on the same row two different characters(a number and a ascii symbol) on the lcd (16X2) without the ascii sysmbol overwrite the number.

kind regards

#include <LiquidCrystal.h>
#include <stdio.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int val = 0;
double volts= 100.0233;
char *lab[2] = {"U= ", "T= "};
char *Einheit[2] = {"V", "C"};

void setup() {

// turn the LCD on (HIGH is the voltage level)
digitalWrite(37, HIGH);
// set the RW Pin to Write Mode by setting the digital pin to LOW
digitalWrite(36, LOW);

// opens serial port, sets data rate to 9600 bps
Serial.begin(9600);
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);

}
void loop()
{ //read from A8
val=analogRead(A8);

volts=(val/1024.0)*50000.0;

lcd_print_string(volts, lab[0], Einheit[0], 3, 3, 0, 3);

// wait for a half second
delay(500);
}
// *P_str = val; ===> P_Str = &val;
void lcd_print_string(double value, char label[], char unit[], unsigned int dec_number, unsigned int dec_places, unsigned int row, unsigned int column)
{
char Out_str_ent[16];
char Out_str[16];
char Out_str_dec[16]; // partie décimale

unsigned int width = dec_number + dec_places+1; // the minimum width is equal to decimal numbers, decimal point and decimal values(digits)
unsigned int real_length_dec_num = strlen(Out_str_ent); //real length of the decimal number ==> target_length_dec_num = dec_number
unsigned int total_length = strlen(Out_str_ent+strlen(Out_str_ent)-dec_number)+strlen(Out_str_dec+1)+strlen(label)+strlen(unit)+1; //total length of the printing value on the LCD incl. label and unit

dtostrf(floor(value), dec_number, 0, Out_str_ent); // decimal numbers
dtostrf(value-floor(value), 0, dec_places, Out_str_dec); // decimal places

// clears the LCD screen and positions the cursor in the upper-left corner
lcd.clear();
// set the cursor position:
lcd.setCursor(column, row);

if (total_length <= 16){

lcd.print(label);
lcd.print(Out_str_ent+strlen(Out_str_ent)-dec_number);
lcd.print(Out_str_dec+1);
lcd.print(" ");
lcd.print(unit);
lcd.setCursor(0,1);
lcd.print(real_length_dec_num);

if (real_length_dec_num > dec_number){

lcd.setCursor(column, row);
lcd.print(label);
lcd.print(Out_str_ent+strlen(Out_str_ent)-dec_number);
lcd.print(Out_str_dec+1);
lcd.print(" ");
lcd.print(unit);
lcd.setCursor(strlen(label)+column,0);
//lcd.cursor();
lcd.write(94); /(here I would like to print the ascii symbol and the number without the ascii sysbol overwrite the number/

}
}
}

You will always overwrite the previous character.

If you want to produce some sort of cross-bred character, I suppose you could display each character alternately. And rely on Persistence of Vision to see a composite character.

Or create a User defined character. There are only 8 User defined characters.

David.

The liquidcrystal solution in most low cost LCDs is very slow. So even if you attempted to write multiple characters at the same character position, it would appear to flicker quite a bit as the time to rotate the molecules in the solution is typically longer the persistence of our vision.

The only option you have on a hd44780 LCD is to create a custom character and then write it to the desired position. Just keep in mind that the LCD only supports 8 custom characters.

Alternatively you could switch to a GLCD. If the library supports overstrike you could do what you want.
My openGLCD library includes a user selectable overstrike mode on ks0108 and SED1520 displays.

--- bill