Hola,
Es la primera vez que escribo en esta sección del foro, lo que estoy intentando hacer es una tontería, pero no consigo que funcione.... Lo único que quiero hacer es imprimir una posición de un lcd de manera que aparezcan barras verticales de derecha a izquierda hasta rellenar el carácter...
O lo que es lo mismo, tener un byte[8] que se inicie en [00000,00000,00000,00000,00000] y progresivamente vaya convirtiéndose de la siguiente forma:
00000,
00000,
00000,
00000,
00000
00001,
00001,
00001,
00001,
00001
00011,
00011,
00011,
00011,
00011
etc...
Aquí os dejo el código con los serial outputs para el debug:
#include <LiquidCrystal.h>
// custom charaters
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
byte p6[8];
void setup() {
lcd.begin(16, 2);
lcd.createChar(6, p6);
Serial.begin(9600);
}
void loop()
{
byte p6[8] = {
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00};
lcd.setCursor(0, 0);
for (int i = 0; i < 16; i = i + 1) {
lcd.print(" ");
}
lcd.setCursor(0,0);
lcd.write(6);
//Vertical
for (int j= 0; j<5;j++){
Serial.println(" ");
Serial.print("VALOR DE J: ");
Serial.println(j);
Serial.print("VALOR DE 2 Elevado a J: ");
Serial.println(pow(2,j));
Serial.println("----------");
for (int i=0; i<8;i++){
delay(50);
p6[i]=p6[i]+pow(2,j);
Serial.print("valor de i: ");
Serial.println(i);
Serial.print("valor de p6[i]: ");
Serial.println(p6[i]);
}
lcd.createChar(6, p6);
lcd.write(6);
}
Serial.println("-------------------------");
delay (1000);
lcd.print("1");
delay(4000);
}
Yo creo que el problema viene dado porque al sumar el byte con el pow de 2^i por alguna razón que desconzco se le resta uno al resultado de la potencia...
Bueno espero que alguien pueda echarme una mano...
Muchas gracias de antemano