Barra vertical progresiva+GLCD

hola que tal, no soy muy bueno con arduino (mega) pero de apoco estoy aprendiendo jajajaja.
Estoy queriendo hacer que se muestre en una pantalla grafica 128x64 una barra de progreso en forma vertical que puda comandar desde un potencio metro, y uniendo varios ejemplos logre esto, pero solo muestra una line progresiva no una barra jaja pongo aca lo que hice hasta ahora si alguien me ayuda lo agradesco.

#include <glcd.h>
int pot = A0;
int a = 0;
void setup()
{
GLCD.Init(NON_INVERTED); // initialise the library with pixel default as off
GLCD.ClearScreen(); // clear the LCD
}

void loop()
{
a = analogRead(pot)/16;
//for (int a=63; a>0; a--)
{
GLCD.DrawHLine(0, a, 10, BLACK);
delay(150);
}
GLCD.ClearScreen();
// clear the LCD
}

prueba con DrawVLine()
:kissing:

buscaste en San Google: Arduino GLCD Bar
Que tal esto?

si busque pero al no saber mucho no logro hacer que sea vertical, horizontal pude hacerla y funciona como yo quiero y todo con un potenciometro(aunque es en realidad para una rpm, pero si leo de un potenciometro ya esta)mi gran problema es lograr lo mismo pero que sea vertical quiero hacer algo asihttps://www.youtube.com/watch?v=WAs-IBdsdC0

cual es el ejemplo horizontal.

Mira esto copiando de otro lado es lo que yo hice, pero no kiero que sea horizontal sino kiero que sea vertical este video es lo que yo hice, https://www.youtube.com/watch?v=x7PQBqi8HWc
El codigo:

#include <glcd.h>
gText textArea;

#define KNOB 0
#define ESC 3
#define PROGRESS_BAR_LENGTH 128 //used in showMenu
#define PROGRESS_BAR_HIGHT 10 //used in showMenu
int potenciometro = A0;
int knob = 0;

void setup()
{
Serial.begin(9600);
GLCD.Init(); //initialise the library, non inverted writes pixels onto a clear screen
GLCD.ClearScreen();
}

void loop(){
if(digitalRead(ESC)==HIGH){
GLCD.ClearScreen();
}
showMenu();
}
//------------------------------------------------------------------------------------------------------------------------------------
void showMenu(){
read_data();
scroll(knob,'x');
}//------------------------------------------------------------------------------------------------------------------------------------
void scroll(double knob, char axis ){
double progress = 0; //the amount to fill in the progress bar
progress = (knob/1024)*PROGRESS_BAR_LENGTH;
switch(axis){
case 'x':
GLCD.FillRect(1,1,progress,PROGRESS_BAR_HIGHT-2);
GLCD.FillRect(progress,1,PROGRESS_BAR_LENGTH-progress,PROGRESS_BAR_HIGHT-2,WHITE);
GLCD.FillRect(0,20,PROGRESS_BAR_LENGTH-1,PROGRESS_BAR_HIGHT-4,WHITE);
GLCD.FillRect(0,20,PROGRESS_BAR_LENGTH-1,PROGRESS_BAR_HIGHT-4,WHITE);
break;
}}
//------------------------------------------------------------------------------------------------------------------------------------
void read_data(){
knob = analogRead(potenciometro); //analogRead(KNOB);
}

Tu comando estrella es GLCD.FillRect que se usa asi

GLCD.FillRect(x, y, width, height, color) draw filled rectangle

Punto de arranque, ancho, altura, color
Entonces como te dije, da igual que sea horizontal o vertical.

asi que si piensas un poco puedes invertir el comportamiento.

PROGRESS_BAR_LENGTH es obviamente la longitud de la barra
PROGRESS_BAR_HIGHT es la altura de la barra.
Ambos datos deben modificarse

Tu solución consiste en invertir el elemento que se va a mover

GLCD.FillRect(progress,1,PROGRESS_BAR_LENGTH-progress,PROGRESS_BAR_HIGHT-2,WHITE);

aca se mueve el ancho en forma variable PROGRESS_BAR_LENGTH-progress
tu debes hacerlo con la altura

por otro lado la lectura del potenciometro afecta el ancho y debe ser la altura

progress = (knob/1024)*PROGRESS_BAR_HIGHT ;

Ahora afectará la altura

Bueno acá tienes algunos trucos para lograr lo que necesitas.
A ver si puedes, requiere de un tiempo para entenderlo.
Dibuja en un papel, las coordenadas 1,1,ancho, alto y repite las 4 instrucciones para visualizar que hace y verás que entenderás como cambiarlo

Por ultimo: Los códigos usan el tag que esta a la izquierda de quote, el que dice code. Lee las normas del foro, punto 7 como insertar códigos.

Sigue sin estar vertical jajaja, me estoy dando cuenta que lo mio talves no es esto jajaj probe cambiando PROGRESS_BAR_LENGTH por PROGRESS_BAR_ HIGHT y nada lo que si logre es que una ves me de error jajaja

no es solo cambiar eso, lee bien lo que te puse antes.