Progetto LCD

Ciao a tutti, avevo bisogno di aiuto per quanto riguarda un progetto molto semplice. Da principiante stavo dando un occhio al progetto LCD dello starter kit ma per aggiungere un po’ di pepe ho deciso di apportare delle modifiche (e ovviamente adesso il codice che ho scritto non funziona come dovrebbe). Cercherò di essere esaustivo nella spiegazione del circuito (la posizione dei collegamenti digitali ai piedini del display e la posizioni dei resistori dovrebbe essere corretta poiché invariata dal progetto dello starter kit che precedentemente ha funzionato) e poi aggiungerò lo sketch. Oltre al potenziometro del contrasto ne avevo posizionati altri due: uno, collegato all’ingresso analogico A0 doveva selezionare la lettera; il secondo, collegato all’ingresso A1 doveva selezionare la posizione del cursore sul display (mi sono fermato alla casella 11,0). Ecco lo sketch, sono giorni che mi scervello ma il risultato è sempre un display impazzito che tenta di mandarmi messaggi a caratteri alieni:
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
const int potPin = A0;
const int potPin1 = A1;
int potVal = analogRead(potPin);
int potVal1 = analogRead(potPin1);
void setup() {
lcd.begin(16, 2);
}
void loop() {
if (potVal <= 33) {
lcd.print(“A”);
}
else if (potVal <= 66) {
lcd.print(“B”);
}
else if (potVal <= 99) {
lcd.print(“C”);
}
else if (potVal <= 132) {
lcd.print(“D”);
}
else if (potVal <= 165) {
lcd.print(“E”);
}
else if (potVal <= 198) {
lcd.print(“F”);
}
else if (potVal <= 231) {
lcd.print(“G”);
}
else if (potVal <= 264) {
lcd.print(“H”);
}
else if (potVal <= 297) {
lcd.print(“I”);
}
else if (potVal <= 330) {
lcd.print(“L”);
}
else if (potVal <= 363) {
lcd.print(“M”);
}
else if (potVal <= 396) {
lcd.print(“N”);
}
else if (potVal <= 429) {
lcd.print(“O”);
}
else if (potVal <= 3314) {
lcd.print(“P”);
}
else if (potVal <= 33
15) {
lcd.print(“Q”);
}
else if (potVal <= 3316) {
lcd.print(“R”);
}
else if (potVal <= 33
17) {
lcd.print(“S”);
}
else if (potVal <= 3318) {
lcd.print(“T”);
}
else if (potVal <= 33
19) {
lcd.print(“U”);
}
else if (potVal <= 3320) {
lcd.print(“V”);
}
else if (potVal <= 33
21) {
lcd.print(“Z”);
}
if (potVal1 <= 31 && potVal1 == 0) {
lcd.setCursor(0, 0);
}
else if(potVal1 <= 312 && potVal1 > 31) {
lcd.setCursor(1, 0);
}
else if(potVal1 <= 31
3 && potVal1 > 312) {
lcd.setCursor(3, 0);
}
else if(potVal1 <= 31
4 && potVal1 > 313) {
lcd.setCursor(4, 0);
}
else if(potVal1 <= 31
5 && potVal1 > 314) {
lcd.setCursor(5, 0);
}
else if(potVal1 <= 31
6 && potVal1 > 315) {
lcd.setCursor(6, 0);
}
else if(potVal1 <= 31
7 && potVal1 > 316) {
lcd.setCursor(7, 0);
}
else if(potVal1 <= 31
8 && potVal1 > 317) {
lcd.setCursor(8, 0);
}
else if(potVal1 <= 31
9 && potVal1 > 318) {
lcd.setCursor(9, 0);
}
else if(potVal1 <= 31
10 && potVal1 > 319) {
lcd.setCursor(10, 0);
}
else if(potVal1 <= 31
11 && potVal1 > 31*10) {
lcd.setCursor(11, 0);
}
}

Ciao!

Ti invitiamo a presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: Presentazioni e a leggere il regolamento: Regolamento - qui una serie di schede by xxxPighi per i collegamenti elettronici vari: ABC - Arduino Basic Connections - qui le pinout delle varie schede by xxxPighi: Pinout - qui una serie di link [u]generali[/u] utili: Link Utili

Il codice devi racchiuderlo nei tag code, vedi sezione 7 del regolamento, spiega bene come fare. Altrimenti parte del codice può essere visualizzata male o mancare perchè interpretato come attributo del testo stesso.

le letture dei pin analogici le devi mettere all'interno del loop. Ogni lettera poi deve essere individuata da un intervallo, altrimenti stampi su lcd tutte le lettere minori di un determinato numero

Ok, perfetto, proverò subito. Grazie mille davvero, specialmente per le delucidazioni sul regolamento