Probelma con LCD 16x2

Salve stavo collegando un Arduino Mega 2560 insieme ad un LCD 16x2. Per "provarlo" ho utilizzato l'esempio classico HelloWorld che si trova nel PlayGround. Ho apportato delle modifiche riguardo ai pin in questo podo:
RS->48
E->49
D4->46
D5->47
D6->44
D7->45
R/W -> Ground

Ovviamente ho modificato la creazione dell'istanza lcd in lcd (48,49,46,47,44,45);
Il problema sorge quando vado ad accendere perchè mi vengono mostrati due caratteri strani, ovvero all'interno di un casella dell'lcd trovo tre linee orizzontali parallele (se non mi sono spiegato faccio una foto), tipo queste link (la foto non è mia, l'ho trovata online infatti nel mio cano non compare la scritta hello).
Ora siccome il circuito è abbastanza contorto perchè sono collegati numerosi led, sensori, attuatori ecc. io lo ho ricontrollato svariate volte. Per evitare di impazzire ( :D) vi chiedo se qualcuno si voi sa a cosa sono dovuti questi caratteri cosicché possa concentrarmi in una particolare strada per risolvere il problema. Inoltre leggevo online che alcuni display hanno dei problemi quando alimentati esternamente ( le librerie in particolar modo) , potrebbe essere questo?
Spero che qualcuno riesca a darmi una dritta. Grazie in anticipo!

Le tre linee orizzontali sono il carattere 0x11 o ASCII 9 che, credo, tu non trasmetta al display.

E' possibile che all'accensione la memoria sia "sporca" oppure venga "sporcata" magari da un assorbimento di corrente iniziale (stepper o motori).

Se questo è il motivo, evidentemente il problema è nell'insufficiente sistema di alimentazione.

Se, però, durante l'esecuzione dello sketch non hai problemi di questo tipo, puoi provare a inizializzare correttamente il display LCD.

All'accensione, i pin digitali non "sanno" se sono di output o di input e, di conseguenza il loro livello è tri state.

Personalmente, anche se a volte non è necessario, impongo nel Setup() lo stato di tutti i pin utilizzati (pinMode).

Successivamente eseguo le istruzioni:

lcd.begin(cols, rows);
lcd.noAutoscroll();
lcd.noCursor();
lcd.noBlink();
lcd.clear();
lcd.print();

Ciao , grazie della risposta.
Ho aggiunto quello che mi hai suggerito tu e adesso i caratteri sono scomparsi. La prima riga dell'LCD non mostra la stringa hello world infatti ciascuna casella del display rimane accessa (il "quadrettone" dove dovrebbe stare il carattere è tutto accesso per intenderci).