Go Down

Topic: nokia lcd 5110 (Read 2683 times) previous topic - next topic



   I've the nokia lcd 5110 module. So, I must print the decade numbers from convert Distance in cm from my HC-SR04 module. Have you idea how I can do that? Because, the PCD8544 library haves only functions which they print characters.


Check out http://www.arduino.cc/playground/Code/PCD8544
and http://blog.stuartlewis.com/2011/02/12/scrolling-text-with-an-arduino-and-nokia-5110-screen/

The first one definately gives you the option of printing a string, using the LcdString function.

My website: http://www.harryrabbit.co.uk/electronics/home.html Up and running now! (Feel free to look round!) :D


Nov 26, 2011, 10:11 pm Last Edit: Nov 26, 2011, 10:16 pm by john44 Reason: 1
     how can I convert the character-string function into number dec? I know a function String(value, DEC); Moreover, I write you my code

Code: [Select]
void loop()

  gotoXY(0, 2);
  distance = ultrasonic.Ranging(CM);
  LcdCharacter(ultrasonic.Ranging(CM));  // this functhion give me the character no decade numder !!!


I would like this http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1272177425

furthermore, I believe the solution is in this function,

Code: [Select]

void LcdWrite(byte dc, byte data)
  digitalWrite(PIN_DC, dc);
  digitalWrite(PIN_SCE, LOW);
  shiftOut(PIN_SDIN, PIN_SCLK, MSBFIRST, data);
  digitalWrite(PIN_SCE, HIGH);

how can I shiftout() DEC number and no byte data???


What data do you want to display on the LCD? It may just be a case of adding a number to the number you have. Check out the ASCII table: http://www.harryrabbit.co.uk/electronics/ASCII%20table.html

If you want to display the number 33, the character shown will be '!'. To get the LCD to show the number 33, a series of steps will need to be taken:

Split the number up into digits, which we'll store in an array:

array[0] = num % 10;
num = num / 10;
(repeat until num = 0)

If num was 33, the array will now have the values 3, 3. (Because of the way the above code processes the data, if num was 35, the array will now have the values 5, 3).

Next, turn the data in the array into a character. It is now the ASCII table comes in handy. If we assume a number of 0, we need to add 48 to it to produce the character 0. If the number is 3, we still need to add 48 to it to produce its character:

array = array + 48;

Then we need to start at the end of the array and work backwards, printing out the characters.

Code: [Select]

  array[i] = num % 10;
  num = num / 10;

arrayLegnth = i;

for(int j = 0; j < i; j++){
  array[j] = array[j] + 48;


It should work...
My website: http://www.harryrabbit.co.uk/electronics/home.html Up and running now! (Feel free to look round!) :D


the solution of old problem

Code: [Select]

Go Up

Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

via Egeo 16
Torino, 10131