Serial - mandare segnale al programma

Salve, sto provando ad fare delle prove con arduino e java.
Mi servirebbe capire come posso mandare l'output ad java da arduino con serial.print().

Essendo che uso un pulsante e un led.

Questo è il codice che ho scritto finora.. facendo accendere anche un led.
Ma mi servirebbe mandare alla seriale 0 e 1 e con java riuscire ad ricavare il valore e facendo far funziona un elemento fatto in java.

Uso java eclipse foundation.

Ecco il codice:

int led = 6;
int puls = 2;
int val = 0;
int stato = 0;
void setup() {
  pinMode(led, OUTPUT);
  pinMode(puls, INPUT);
  Serial.begin(9600); 
}

void loop() {
  val = digitalRead(puls);
  

  if (val == 1) {
    stato = 1 - stato;
    delay(300);
  }

  if (stato == 1) {
    digitalWrite(led, HIGH);
    Serial.print("1");
  }

  else {
    digitalWrite(led, LOW);
    Serial.print("0");
  }

}

vi ringrazio molto e buon inizio settimana.

Quel che chiedi già l'hai fatto, ovvero inviare su seriale 1 e 0, con la print invii il carattere zero e uno se usi la write puoi inviare zero e uno come "numero" (ovvero senza usare gli apici).
L'unica cosa è che ad ogni ciclo di loop invii il carattere sulla seriale, dovresti usare una variabile che memorizzi lo stato già inviato e fare la scrittura su seriale solo se la variabile stato ha un valore differente rispetto al vecchio valore, es:

if(stato!=stato_precedente)

e puoi usare direttamente la variabile stato per inviare il suo valore sulla seriale sia con il metodo write che con il metodo print.

Per la parte loto PC con java non credo che questo sia il forum adatto per la tua richeista, dovresti chiedere ad un forum che tratta di java lato pc

... per la parte Java, prova a cercare su Google "java serial port programming" e guardati anche QUESTA libreria.

Per altre info, come ti è già stato suggerito, meglio se ti rivolgi ad un forum di supporto Java.

Guglielmo

si uso quella libreria.. e sto leggendo la documentazione e quello che vorrei fare io, devo rilevare il readbytes.

Ora mi metto allo studio.

Vi ringrazio molto.

gigetto1982:
si uso quella libreria.. e sto leggendo la documentazione e quello che vorrei fare io, devo rilevare il readbytes.

Hai visto gli esempi in WiKi ? :wink:

Guglielmo

si si , un'altra cosa.. ma per conoscere qual'è il pulsante.. perché ne ho 3 e 2 led .. cosa devo mandare alla seriale.?

grazie mille.

La seriale è un canale tra il tuo sketch su Arduino e il tuo programma Java. Nessun altro andrà a questionare quel che ci passa sopra, quindi puoi mandare quel che vuoi, basta che dall'altra parte lo interpreti correttamente.

Entrambi i programmi sono sotto il tuo controllo, quindi nulla ti vieta di spedire "Pippo" e "Pluto", ad esempio...

Eh? :o
Sta a te decidere cosa inviare sulla seriale al tuo programma, puoi identificare i pulsanti come 1,2 e 3 oppure come A,B e C o, ancora, Gianni, Valerio e Pthor e inviare tali identificativi sulla seriale.
Lato ricezione dovrai fare la cosa inversa una volta ricevuto il "nome" del pulsante farai ciò che devi

Edit: Anticipato da Sukko

... che sia una trasmissione tra due Arduino o che sia tra Arduino ed un programma Java, NON cambia nulla, devi sempre ragionare allo stesso modo.

Guglielmo

capito molto grazie mille e buona giornata.

fabpolli:
...o, ancora, Gianni, Valerio e Pthor...

intendevi Pdor, figlio di Kmer della tribù di Instar! Della terra desolata del Sknir! Uno degli ultimi sette saggi! Purvurur, Garen, Pastararin, Giugiar, Taram, Fusciusc e Tarin He!
Colui il quale può leggere nel presente, nel passato e anche nel congiuntivo! Colui che era, colui che è, e colui che sempre sarà… Ciucia chi e ciucia là!
Pdor, colui il quale ha inseguito e sconfitto i demoni Sem! Che ora vagano per il mondo chiedendosi…ma num chi Sem?

confermo, si può usare anche questo nella seriale :wink:

maubarzi:
intendevi Pdor, figlio di Kmer della tribù di Instar!

Sei un uomo dalla forma gnomica, mi hai fatto RSPRESIG! :slight_smile:

NB: "RSPRESIG" è la versione italiana di "ROTFLASTC". :wink:

docdoc:
ROTFLASTC

povero gatto schizzato via dallo spavento :wink:

si, forma gnomica un po' tozza :wink: ma non troppo, ho solo gli addominali ben protetti perchè ci tengo molto :stuck_out_tongue:

maubarzi:
ho solo gli addominali ben protetti perchè ci tengo molto :stuck_out_tongue:

:smiley: Questa mi mancava :smiley: :smiley: :smiley: