Go Down

Topic: Ayuda estado de pwm en barra progressiva en pantalla GLCD (Read 705 times) previous topic - next topic

fraidias

Aug 31, 2012, 03:05 pm Last Edit: Aug 31, 2012, 03:53 pm by fraidias Reason: 1
hola buenas hace realmente poco que estoy en el mundo arduino y menos aun en este foro pero lo encontre y tengo una duda bastante grande con una funcion que no se bien como solucionarla.
os cuento tengo un controlador de acuario creardo con arduino mega y una pantalla KS0108 128x64 usando libreria http://code.google.com/p/glcd-arduino/downloads/detail?name=glcd-v3-20111205.zip pues bien.. tengo una serie de dimeados de luces por pwm en concreto 5. en la pantalla principal  muestro 5 barras de 3 pixeles de ancho y 38 de alto hay alguna manera de ver el valor pintando en dichas barras y que aumente progressivamente con los valores 0-255 del pwm?? la funcion seria tanto al aumentar como al disminuir. he conseguido crear todo el controlador pero esto ya me supera siendo novato.. he intentado poner el codigo completo pero no me deja por que dice que supero el limite de caracteres. yo he echo varias pruevas y tengo las barras pintadas eso si .. vacias sin leer el estado..
os pongo la parte del codigo que intento usar para pintar esos valores..
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);
   //LCD.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..

}  
cabe decir que esta funcion la he sacado de un controlador de otro compaƱero pero el usa una pantalla LCD Serial 128x64 le he cambiado las ordenes de pintado para la GLCD y nada no funciona como ha de funcionar.Ya llevo dias con ello y no hay manera de pintar algo coherente.Esta es la imagen de la pantalla principal de mi controlador que intento mostrar los valores en las 5 barras de la derecha pero no hay manera pinta cosas raras.. e incluso creo que pinta hacia abajo en lugar de hacia arriba.
http://i60.photobucket.com/albums/h40/fraidias/IMG_20120829_202204.jpg

Go Up