Controlador acuario Arduino mega. FALLOS

Hola a todos.. aprovecho ya mismo tambien por decir que soy nuevo en el foro. me llamo Ricard y soy novato en el mundo arduino.Llevo 6 meses y aun me cuesta muchissimo entender cosas pero bueno se hace lo que se puede.. tengo un problema con una programacion que estoy haciendo( no es mia es una variacion de un compañero de un foro destinado acuarios..) tengo otro controlador funcionando igual que el del el con un arduino mega y una pantalla LCD 128x64 serial de sparkfun o algo asi creo que se llama. esta funcionando perfectamente el tema tengo un problema con una funcion en concreto que muestra el estado de unos dimeados en pantalla con una barra que va aumentado segun aumenta el nivel del pwm de 0 a 255. en la pantalla LCD funciona perfectamente con la programacion que hizo mi compañero. Ahora bien estoy haciendo otro con una pantalla GLCD 128x64 una KS0108 Panel B concretamente. pues no hay manera o no lo se hacer de ninguna de las maneras para que muestre lo que tiene que mostrar.. en principio el primer controlador tenia 3 dimeados y yo lo clone a la GLCD toda la programacion para las coordenadas de pintado. intente pintar las 3 gauges de nivel de dimeado y nada muestra cosas raras.. ahora he implementado 5 lineas de dimeados para diferentes colores asi que tendria que hacer 5 barras. las barras exteriores estan pintadas lo que no consigo es rellanarlas. os pongo el codigo entero haber si lograis entender algo.

el fallo lo tengo justo con esta funcion.. /////////////////////////////////////////////////////////////// // // PINTA EL GAUGE CON EL NIVEL DE INTENSIDAD ACTUAL DE LA LUZ // /////////////////////////////////////////////////////////////// void GaugeXY( int Valor, byte IndexCol ) { int Col [] = { 0,97,103,109,115,121}; int X = Col[IndexCol]; GLCD.DrawRect(X, 12, 3, 38); //GLCD.ClearScreen(X+1, 12+1, 2, 37); // esta funcion la usava en la pantalla LCD pero no encuentro una compatible con la GLCD GLCD.DrawRect(X+1, 12, X+2, 12+(map(Valor, 0, 255, 0, 39))); //Lcd.Rectangulo(X+1, 12, X+2, 12+(map(Valor, 0, 255, 0, 39))); // funcion anulada de la pantalla LCD pinta mal..

}

comentar que uso la libreria GLCD V3 os pongo una imagen de la pantalla principal que las barras son las 5 verticales de la derecha.. cuando estan los dimeados apagados han de quedar las barras vacias y cuando estan los dimeados aumentando han de pintarse su interior.. queria poner el codigo completo del controlador pero me dice que supero el maximo de palabras o algo asi..