Pagina 1 di 2

Scritte incrementali

MessaggioInviato: 14 giu 2018, 20:28
da papa10
Sto sbattendo la testa senza uscita(non sono programmatore) in questo codice.Alla riga carattere=0 mi da' errore(non e' un nome ma un tipo)Potreste aiutarmi?Grazie.
Codice: Seleziona tutto
#include<LiquidCrystal.h>
LiquidCrystal lcd(7,6,5,4,3,2);
String stringa;
int posizione=0;
int carattere=0;
int ritardo=100;
String testo("Questo e' un esempio di testo abbastanza lungo per essere scritto su due righe");
int lunghezza = testo.length();
int ripetizione=0;


void setup() {
lcd.begin(16,2);
pinMode(1,OUTPUT);

}

void loop() {
while(carattere<lunghezza&ripetizione>2);
{digitalWrite(1,HIGH);
for(posizione=0;posizione>=16;posizione++)
stringa=String(testo);
lcd.setCursor(posizione,0);
lcd.print(stringa.substring(carattere,carattere+1));
Serial.print(stringa.substring(carattere,carattere+1));
delay(ritardo);
carattere=carattere+1;}
carattere=carattere-1;
delay(ritardo*10);
lcd.clear();}
carattere=0;
delay(ritardo*15);
lcd.clear();
ripetizione++;
digitalWrite(1,LOW);

}

Re: Scritte incrementali

MessaggioInviato: 14 giu 2018, 20:57
da biget
Perché pasticci con le parentesi

Re: Scritte incrementali

MessaggioInviato: 14 giu 2018, 21:03
da EdmondDantes
Non ho verificato il codice, ma controllando velocemente mi pare che manchi (o una di troppo) una parentesi graffa.

Re: Scritte incrementali

MessaggioInviato: 14 giu 2018, 21:23
da papa10
e dove sono gli errori o l'errore

Re: Scritte incrementali

MessaggioInviato: 14 giu 2018, 21:37
da papa10
ecco ho trovato
Codice: Seleziona tutto
#include<LiquidCrystal.h>
LiquidCrystal lcd(7,6,5,4,3,2);
String stringa;
int posizione=0;
int carattere=0;
int ritardo=100;
String testo("Questo e' un esempio di testo abbastanza lungo per essere scritto su due righe");
int lunghezza = testo.length();
int ripetizione=0;


void setup() {
lcd.begin(16,2);
pinMode(1,OUTPUT);

}

void loop() {
while(carattere<lunghezza&ripetizione<2);
{digitalWrite(1,HIGH);}
for(posizione=0;posizione<=16;posizione++)
stringa=String(testo);
lcd.setCursor(posizione,0);
lcd.print(stringa.substring(carattere,carattere+1));
Serial.print(stringa.substring(carattere,carattere+1));
delay(ritardo);
carattere=carattere+1;
carattere=carattere-1;
delay(ritardo*10);
lcd.clear();
carattere=0;
delay(ritardo*15);
lcd.clear();
ripetizione++;
digitalWrite(1,LOW);

}
pero' non scrive nulla anche se il compilatore e' ok

Re: Scritte incrementali

MessaggioInviato: 14 giu 2018, 21:53
da xyz
Confermo che manca o esiste una graffa di troppo, quel codice se corretto dal punto di vista della sintassi è un loop infinito alla prima riga della funzione "loop" e ha un test del "while" con un AND tra bit. Anche il "for" è messo male, esegue tante volte una costruzione di una stringa con lo stesso assegnamento, potenziale memory leak.

Re: Scritte incrementali

MessaggioInviato: 14 giu 2018, 21:59
da papa10
dammi un aiutino non riesco ad uscirne

Re: Scritte incrementali

MessaggioInviato: 15 giu 2018, 16:43
da papa10
ho usato l'interfaccia I2C ma non parte nessun carattere:

Codice: Seleziona tutto
#include <LCD.h>
#include <LiquidCrystal.h>
#include <LiquidCrystal_I2C.h>

#include <LCD.h>
#include <LiquidCrystal.h>
#include <LiquidCrystal_I2C.h>



#include <Wire.h>
#include <LiquidCrystal.h>

LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);

String stringa;
int posizione=0;
int carattere=0;
int ritardo=100;
String testo("Questo e' un esempio di testo abbastanza lungo per essere scritto su due righe");
int lunghezza = testo.length();
int ripetizione=0;


void setup() {
lcd.begin(16,2);
pinMode(1,OUTPUT);

}

void loop() {
while(carattere<lunghezza&ripetizione<2);
{digitalWrite(1,HIGH);}
for(posizione=0;posizione<=16;posizione++)
stringa=String(testo);
lcd.setCursor(posizione,0);
lcd.print(stringa.substring(carattere,carattere+1));
Serial.print(stringa.substring(carattere,carattere+1));
delay(ritardo);
carattere=carattere+1;
carattere=carattere-1;
delay(ritardo*10);
lcd.clear();
carattere=0;
delay(ritardo*15);
lcd.clear();
ripetizione++;
digitalWrite(1,LOW);

}

Re: Scritte incrementali

MessaggioInviato: 15 giu 2018, 16:52
da xyz
Ripeto cosa ho già scritto, questo è un loop infinito:

Codice: Seleziona tutto
while(carattere<lunghezza&ripetizione<2);

Re: Scritte incrementali

MessaggioInviato: 15 giu 2018, 17:10
da papa10
poiche' non sono un programmatore e ho un'eta' avanzata come piu' volte ho avuto occasione di di dire,puoi aiutarmi.Grazie