lucadentella:
non ho tanto capito
vedila così: il software non può sapere nulla lato arduino che arduino stesso non gli comunichi...
Se quindi vuoi scatenare diversi eventi (esecuzione di diversi programmi) in base a qualche informazione che ha Arduino (ad es. la pressione di pulsanti o la scansione di un RFID) questa informazione dovrà essere inviata da Arduino al PC dove è in ascolto il tuo programma che - in base a quello che riceve dall'arduino via seriale - eseguirà il suo compito.
Bene ho capito! Ora, grazie alla tua guida sono riuscita a fare un mezzo tool in c#, allora praticamente se invio i dati dal software in c# e arduino resta in ascolto, gli eventi vengono registrati senza problemi. Es: sul programma ho un pulsante "accendi" che, se premuto, lancia sulla seriale il carattere "A", arduino che sta in ascolto, controlla, appena infatti trova il carattere "A" sulla seriale accende il LED, quindi trova la corrispondenza ad esempio come segue:
if (dato_seriale == 'A') digitalWrite(LED, HIGH); // accendimi i led
oppure
if (dato_seriale == 'B') digitalWrite(LED, LOW); // spegnimi il led*/
Dove sto trovando difficoltà invece sta nel contrario, e quindi, premendo il pulsante su arduino, il software deve stare in ascolto e, nel caso ci sia corrispondenza, fare un'azione.
Il lato arduino è così:
.. se viene premuto il pulsante..
accendimi il led;
Serial.write("A");
Serial.flush() ;
nel lato del programma invece non so come muovermi xD.
Per ora per vedere se funzionava avevo lasciato lo stesso tasto che, premuto, mi legge da seriale.. es:
void Button1Click(object sender, EventArgs e)
{
button2.Enabled = false;
byte[] byte_buffer = new byte[17];
serialPort1.Read(byte_buffer, 0, 17);
string Text = System.Text.UTF8Encoding.UTF8.GetString(byte_buffer);
MessageBox.Show(Text);
}
ma purtroppo non va.. nel messagebox non esce nulla..
Qualche consiglio?
Grazie mille a tutti!!