Bom dia.
Hoje de manhã ainda estive uns minutos a pensar no que estaria mal e dei conta que pelo menos, as declarações das variáveis que tinha dentro da função void loop(), não podiam lá estar, pois esta função é executada "eternamente", portanto as variáveis estavam a voltar a zero por cada vez que esta função é excutada!
Alterei também a ordem do código dentro da função void loop() para ver se evitava alguns problemas. Tenho que testar o código novamente no LCD para ver se já dá alguma coisa!
#include <time.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);
uint8_t memOffset = 0, dir = 1, col = 0, lin = 0;
byte customChar[8] = {0};
void CreatePrintCustomChar(uint8_t memOffset, byte* customChar){
for(uint8_t i = 0; i < 8; i++)
customChar[i] = rand() % 32;
lcd.createChar(memOffset, customChar);
}
void setup(){
srand(time(NULL));
Serial.begin(9600);
lcd.begin(20, 4);
lcd.setCursor(lin, col);
}
void loop(){
for(uint8_t i = 0; i < 80; i++){
lcd.setCursor(lin, col);
Serial.println("Linha:");
Serial.println(lin);
Serial.println("Coluna:");
Serial.println(col);
Serial.println("----------");
CreatePrintCustomChar(memOffset, customChar);
if( !(col % 19) && lin == 3){
col = 0;
lin = 0;
}else if( !(col % 19) ){
col = 0;
lin++;
}else
col++;
if(memOffset < 7 && dir)
memOffset++;
else if(memOffset > 1 && !dir)
memOffset--;
else
dir ^= 1;
Serial.println("memOffset:");
Serial.println(memOffset);
}
}
↧