salve a tutti,sono nuovo avrei bisogno di qualche consiglio.per lavoro dovrei implementare un codice che mi permetta di modificare da seriale un delay come e quando voglio...questo codice poi sara inserito in un altro codice che già funziona quindi non vorrei che fosse una cosa lunghissima.dopo vari tentativi sono quasi arrivato(forse)ad una soluzione ma mi da ancora dei problemini infatti la variabile che poi dovrei inserire nel delay in qualche modo risulta"sporca".qualcuno che ne capisce più di me?
grazie.
nope,i need to write for ex:t1=999 and have that value in t1 then if i have to modify t1 and put in it for ex:10000 otherwise t1 will have the value of 999.
do you understand? now i can write 999 in t1 but immediatly afterwards i will have 0 in t1
the result i hate so much this problem!!
i don't understand why i put a number and the serial is only able to reply me with another number.
i just want to modify a delay from the serial monitor...can it be so difficult?
now he reply me only the first number i put in T1 and no one else and after a few attempt he put in T1 random numbers...i don't understand
that one instead is a solution like but it has that sum or substraction bug too but only sometimes
int T1 = 0;
int T2 = 10000;
const int MaxChars = 7;
char strValue[MaxChars+1];
int i = 0;
void setup()
{
Serial.begin(9600);
}
void loop () {
while(Serial.available())
{
if(i<=MaxChars){
char ch = Serial.read();
Serial.write(ch);
strValue[i++] = ch;
}
else{
break;
}
}
strValue[i] = "t1";
T1 = atoi(strValue);
if(T1 > 0 && T1 < 1000000){
//Serial.write (T1);
Serial.write ("___");
}
i = 0; //RESET i before looping back
Serial.print ("T1 = ");
Serial.print (T1);
delay (T2);
}
Benvenuto. Essendo il tuo primo post, nel rispetto del regolamento, ti chiediamo cortesemente di presentartiQUI (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con attenzione il su citato REGOLAMENTO... Grazie.
Qui una serie di link utili, non inerenti al tuo problema:
Il codice devi racchiuderlo nei tag code, vedi sezione 7 del regolamento, spiega bene come fare ( pulsante </> ).
Altrimenti parte del codice può essere visualizzata male o mancare perché interpretato come attributo del testo stesso.
Leggi bene le varie funzioni della Serial. Esiste anche Serial.parseInt() e Serial.readUntil()
come ti è stato detto, il codice, in conformità al REGOLAMENTO, punto 7, va racchiuso tra i tag CODE che, in fase di edit, ti inserisce il bottone </> ... primo a sinistra. Provvedi quindi ad EDITARE i tuoi post precendenti ed ha racchiudere il codice negli appositi TAG.
Come richiesto da Nid69ita, attendiamo la tua presentazione nell'apposita sezione
infine, nella sezione in lingua Inglese si può scrivere SOLO in Inglese ... quindi, per favore, la prossima volta presta più attenzione ... il tuo post è stato spostato nell'opportuna sezione del forum "Italiano".
Te l'ho già scritto sotto la presentazione e te lo ripeto qui: ... invece di fare del sarcasmo e della polemica, potresti fare quanto ti viene richiesto nel semplice rispetto del regolamento !
nid69ita:
Leggi bene le varie funzioni della Serial. Esiste anche Serial.parseInt() e Serial.readUntil()
E tu hai letto quel che ti ho scritto ? Oppure devo venire da te io a farti il programma, visto che ti serve per lavoro. Anche io sono dei dintorni di Torino. Costo 45 euro l'ora+iva
tutti un po nervosetti eh?mi spiace se non ho rispettato tutte le vostre regole e il vostro regolamento avevo solo bisogno di una mano in futuro cercherò di rispettare ogni vostra regola sempre che mi diate almeno il tempo per potermi ambientare...non so neanche come vedere se avete scritto alla mia presentazione quindi calmi tutti eh?grazie della calorosa accoglienza comunque
Anche se le regole non le hai rispettate, la mano te la stiamo dando, visto che ti ho proposto dei comandi della Serial per risolvere.
Questo è periodo di studentelli che chiedono la pappa-fatta per i loro esami. Se ti aggiungi anche tu, che sei un professionista, siamo fregati.
Mi pare ti abbiamo solo chiesto di presentarti e seguire delle regole.
si hai ragione ma non riuscivo a trovare la mia presentazione e continuavano ad arrivare appunto messaggi che mi chiedevano di presentarmi va beh mi spiace mi adeguerò al regolamento scusate...ok?
In conformità al regolamento, punto 7, devi editare i tui post (iniziale e #5) (quindi NON scrivendo un nuovo post, ma utilizzando il bottone More -> Modify che si trova in basso a destra del tuo post) e racchiudere il codice all'interno dei tag CODE (... sono quelli che in edit inserisce il bottone con icona fatta così: </>, tutto a sinistra).
ciao gb...perdonami ma sono veramente parecchio lento in ste cose non riesco a capire come devo editare il codice davvero potresti spiegarmelo con calma?almeno poniamo fine a questo problema...
Hai guardato, come più volte ti è stato suggerito, il medodo parseInt() della classe Serial ? ... perché, senza complicarti troppo la vita, con quella serie di metodi risolvi piû semplicemente.
allora vi serve un filo di backround il fatto è che io già un paio di anni che lavoro con arduino per un motivo o per l'altro comunque qui dove lavoro era arrivato uno stagista 3 settimane al quale ho "INSEGNATO" un filo di arduino comunque dovendo fare molti altri lavori ho lasciato la gestione autonoma a lui(sbagliatissimo) perchè copiando da una parte e dall'altra ha tirato fuori un codice che potrebbe anche essere figo peccato che non funzioni e che sia lunghissimo ora io ve lo allego io sto cercando di capire più o meno che cavolo ha scritto giusto per raccapezzarmi perchè ora che lui non ce più naturalmente devo tradurre il suo codice praticamente privo di ogni tipo di indicazione.se volete provare a buttarci un occhio intanto vedo come e se posso ancora integrare un parseint in questo suo codice che se funzionasse sarebbe perfetto ripeto peccato che non sia cosi..ve lo allego
int menuselect;
int out=0;
int serial=0;
char tastiera = 0;
int T1 ;
int T2 ;
int T3 = 10000 ;
const int MaxChars = 6;
char strValue[MaxChars+1];
int i = 0;
void setup()
{
//Initialize serial and wait for port to open:
Serial.begin(9600);
// prints text and menu options for user to select from
Serial.println(F("Buongiorno "));
delay(1000);
Serial.println(F(" "));
Serial.println(F("Scelga l'opzione desiderata"));
Serial.println(F(" "));
Serial.println(F("Menu"));
Serial.println(F("---------"));
Serial.println(F("a. T1"));
Serial.println(F("b. T2"));
}
void loop()
{
int temp;
serial = Serial.read();
tastiera = Serial.read();
char ch;
if (Serial.available()) //selezionando a
{
menuselect = Serial.read();
if (menuselect = 'a')
{
while(Serial.available())
{
if(i<=MaxChars)
{
char ch = Serial.read();
Serial.write(ch);
strValue [i++] = ch;
}
else
{
break;
}
}
strValue[i] = '\0';
temp = atoi(strValue);
if(temp > 0 && temp < 1000000)
{
T1=temp;
}
Serial.print (" T1 = ");
Serial.print (T1);
delay (T3);
}
}
Serial.flush();
if (Serial.available()) //selezionando b
{
menuselect = Serial.read();
if (menuselect = 'b')
{
while(Serial.available())
{
if(i<=MaxChars)
{
char ch = Serial.read();
Serial.write(ch);
strValue [i++] = ch;
}
else
{
break;
}
}
strValue[i] = '\0';
temp = atoi(strValue);
if(temp > 0 && temp < 1000000)
{
T2=temp;
}
i = 0;
Serial.print (" T2 = ");
Serial.print (T2);
delay (T3);
}
}
}