CITAZIONE (jackie2_it, 11/03/2014 22:00:02 )
Quote:Puoi postare il tuo sketch modificato così lo posso testare per verificarne il problema?
Questo è quello che ho provato, ma non funziona, in pratica ho sostituito Serial1 con mySerial e aggiunto in testa al codice
#include <SoftwareSerial.h>
SoftwareSerial mySerial(3, 4); // RX, TX
Inoltre ho modificato questa riga altrimenti non sò perchè l'IDE di arduino da errore
mySerial.write(0x01); // Lunghezza dei dati sostituito da: mySerial.write(0x01)
[code]
#include <SoftwareSerial.h>
SoftwareSerial mySerial(3, 4); // RX, TX
#define SER_SIZE 256 //dimensione massima del buffer
static uint8_t bufferRegolatore[SER_SIZE + 1] = ""; //buffer che conterrà i byte letti dalla seriale.
int serind; //indice per il buffer.
//variabili d'appoggio per i valori letti dal regolatore.
int tensioneBatteria = 0;
int tensionePannello = 0;
int correnteCarico = 0;
int tensioneBatteriaScarica = 0;
int tensioneBatteriaCarica = 0;
int caricoOnOff = 0;
int sovraccarico = 0;
int cortoCircuitoCarico = 0;
int soc = 0;
int batteriaSovraccarica = 0;
int indicatoreSottoScarica = 0;
int indicatoreBatteriaCarica = 0;
int indicatoreCarica = 0;
int temperaturaBatteria = 0;
int correnteCarica = 0;
int contasecondi = 0;
void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);
mySerial.begin(9600); //comunica con il regolatore a 9600.
}
void parser() {
//elabora il buffer ed estrae i valori.
tensioneBatteria = (bufferRegolatore[10] << 8)