Pages: [1]   Go Down
Author Topic: comunicare dalla porta seriale e modificare variabili.  (Read 969 times)
0 Members and 1 Guest are viewing this topic.
torino, italy
Offline Offline
Sr. Member
****
Karma: 0
Posts: 339
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 333
Posts: 22936
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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


torino, italy
Offline Offline
Sr. Member
****
Karma: 0
Posts: 339
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 333
Posts: 22936
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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


torino, italy
Offline Offline
Sr. Member
****
Karma: 0
Posts: 339
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

0
Offline Offline
Shannon Member
****
Karma: 132
Posts: 10497
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Milan, Italy
Offline Offline
Sr. Member
****
Karma: 0
Posts: 349
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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
« Last Edit: October 03, 2011, 09:50:51 am by bigjohnson » Logged


torino, italy
Offline Offline
Sr. Member
****
Karma: 0
Posts: 339
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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:
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;
 }
}
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 6
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Logged

Pages: [1]   Go Up
Jump to: