finalmente sono risucito a collegare tutti i componenti e a far funzionare il MAX232.
ora però mi sono abbastanza impu*****ato sul codice:
#define RX 6
#define TX 7
#include <SoftwareSerial.h>
#include <ctype.h>
String comando;
String string;
SoftwareSerial mySerial(RX,TX);
void setup(){
Serial.begin(9600);
Serial.flush();
mySerial.begin(9600);
mySerial.flush();
}
void loop(){
float a,b;
comando = "";
if(Serial.available()){
Serial.println("inserire il valore di a");
delay(10);
a=Serial.parseFloat();
mySerial.print("il valore di a e' ");
mySerial.write(a);
mySerial.println();
}
if(mySerial.available()){
Serial.println("inserire valore di b");
delay(10);
b=Serial.parseFloat();
mySerial.print("il valore di b e' ");
mySerial.write(b);
mySerial.println();
}
if(Serial.available()){
Serial.print("inserire un comando da eseguire");
comando = Serial.readStringUntil('\n');
comando.trim();
}
mySerial.print("il comando da eseguire è " + comando);
if(comando == "somma"){
a=a+b;
mySerial.print("il risultato e' " );
mySerial.write(a);
}
else if(comando == "prodotto"){
a=a*b;
mySerial.print("il risultato e' ");
mySerial.write(a);
}
}
vorrei compiere una semplice operazione scrivendo, comunicando tra le due seriali, il problema è che non riesco a gestire proprio i tempi della comunicazione: quello che vorrei fare è questo:
1.serial dice:inserire valore di a;
2.inserisco valore di a;
3.mySerial dice: il valore di a è...;
4 serial dice : inserire valore di b;
5. inserisco valore di b;
6.mySerial dice : il valore di b è...;
7.serial dice: inserire comando da eseguire;
8.inserisco la stringa "somma" o "prodotto";
9. mySerial legge e interpreta la stringa;
10. mySerial mi restituisce il valore dell'operazione;
con il codice che ho scritto non riesco a ottenere passi "discreti" nel senso che non riesco a mettere in pausa la porta finchè non inserisco il valore o comando. suppongo che centri l'uso scorretto che faccio della funzione available().
mi potete aiutare?