Go Down

Topic: comunicare dalla porta seriale e modificare variabili. (Read 989 times) previous topic - next topic

secondsky

Ciao, ho fatto un po' di ricerca sul forum ma senza centrare il problema.
Vorrei sapere se sia possibile impartire ad arduino dei comandi, dalla porta seriale, che modifichino delle variabili, digitandoli manualmente.
Ad esempio dei nomi seguiti da dei valori.
Il nome dovrebbe indicare la variabile da modificare e il valore il nuovo dato.
Grazie.

leo72

Certo che puoi. La seriale è bidirezionale: l'Arduino può spedire dati al PC ma può anche riceverli.

secondsky

Mi sarebbe molto utile trovare un esempio di codice o un riferimento al comando da usare.
Sostanzialmente immagino che quel che serva sia comprare il serial.read con un parola e, se coincidono, leggere il seguente valore per sostituirlo.
Pensavo fosse più facile ma sono un po' in alto mare.

leo72

Intanto parti dal Reference, ha un bel po' di info in merito:
http://arduino.cc/en/Reference/Serial

secondsky

Il problema è che serial.read mi scompone le parole nelle singole lettere, avrei bisogno di far loro comporre delle string che vengano comparate ad altre già scelte e poi separate dai valori, i quali vengano immagazzinati come integrali e restino validi anche per i loop successivi.

lesto

sta a te programmare e ideare un sistema per ricomporre le singole lettere. Se ne è parlato spesso sul forum, se fai qualche ricerca trovi vari esempi
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

bigjohnson

#6
Oct 03, 2011, 04:47 pm Last Edit: Oct 03, 2011, 04:50 pm by bigjohnson Reason: 1
Ciao,
se guardi il codice del mio progetto http://www.panu.it/ardupower/ vedi come fare a mandare dei comandi con delle variabili, io leggevo i dati da un socket tcp/ip ma il principio è lo stesso, leggi dalla seriale, controlli se il carattere è un ritorno a capo e metti i dati in una stinga, quando hai la stringa completa la controlli con un case switch e poi verifichi la correttezza del parametro inserito.
Il codice è un po confuso, l'ho scritto di fretta, ma funziona.

Alberto

secondsky

caspita, sembra molto complesso l'argomento.
è strano perché un po' di tempo fa ci stavo lavorando con processing e trovavo la cosa molto più semplice...
Code: [Select]
String lastInput = new String();
String currentInput = new String();

void setup()
{
size(800, 600);
smooth();
PFont font = loadFont("Arial-Black-48.vlw");
textFont(font);
textAlign(CENTER);
}

void draw()
{
background(255, 255, 255);
fill(0);
text(lastInput, width/2, height/2);
fill(255, 0, 0);
text(currentInput, width/2, height*.75);
}

void keyPressed()
{
if(key == ENTER)
{
   lastInput = currentInput = currentInput + key;
       println(currentInput);

   currentInput = "";
   
}
else if(key == BACKSPACE && currentInput.length() > 0)
{
   currentInput = currentInput.substring(0, currentInput.length() - 1);
}
else
{
   currentInput = currentInput + key;
}
}

suchigno

Ciao secondsky,
hai trovato un modo per leggere valori e variabili dalla seriale?


Go Up