Buongiorno a tutti,
mi chiamo Gianni ed chiedo gentilmente il vostro aiuto per risolvere il problema che vi vado a descrivere.
Purtroppo sono inesperto di programmazione ma mi sto trovando comunque a combattere con arduino.
Sto provando a realizzare un sistema di controllo che mi permetta di regolare un motore elettrico sulla base (in funzione) dei valori di peso che ricevo da una bilancia digitale, tramite connessione seriale RS232.
Per acquisire i dati dalla RS232 utilizzo il seguente sketch:
#include <SoftwareSerial.h>
#define SOFTRX 10
#define SOFTTX 11
SoftwareSerial softSerial(SOFTRX, SOFTTX);
void setup() {
Serial.begin(9600);
softSerial.begin(9600);
}
void loop() {
byte n = softSerial.available();
if (n!=0) {
char data = softSerial.read();
Serial.print(data);
}
}
Il problema è che i dati che acquisico sono in formato char e quindi non riesco a trattarli come dei valori numerici.
Nello specifico ricevo, in maniera continua, delle righe di dati simili alla seguente:
ST, GS 15.352 g
- ST e GS non so che cosa siano
- 15.352 g è la pesata.
In questo caso, visto che la massa pesata è di 15,352 g, avrei bisogno di acquisire un float pari a 15,352.
Come posso fare?
SUl forum ho trovato tante/troppe soluzioni che, forse in consierazione della mia inesperienza, non mi sono risultate utili
Faccio presente inoltre che qualora la pesata rientrasse nelle unità, non mi dovrei acquisire 6 caratteri, ma 5 (es. 1.234 sono cinque caratteri, mentre 15,352 sono sei caratteri).
Mi sono veramente arenato...
Grazie a tutti coloro che vorranno darmi una mano!

