Ciao a tutti, ho un po' di problemi con la libreria SoftSerial e la Leonardo.
Se uso una UNO per comunicare della seriale virtuale ai pin 0 e 1 della leonardo riesco, ma non mi riesce il contrario.
Quel che voglio fare è questo: inviare dati dal computer a una leonardo con la normale seriale, poi dalla leonardo comunicare con una micro (che in pratica è una leonardo anche lei) attraverso la seriale virtuale.
Questo uno dei tanti codici che ho provato per provare a stabilire una connessione, funziona solo quando la leonardo usa la sua seriale non virtuale, quindi come ricevente in questo caso:
trasmittente:
void setup() {
// initialize serial:
Serial.begin(9600);
while (!Serial); // wait for serial port to connect. Needed for Leonardo only
}
void loop()
{
delay(3000);
Serial.println("prova");
}
ricevente:
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); // RX, TX
String inputString = ""; // a string to hold incoming data
boolean stringComplete = false; // whether the string is complete
void setup() {
Serial.begin(9600);
while (!Serial); // wait for serial port to connect. Needed for Leonardo only
mySerial.begin(9600);
inputString.reserve(200);
}
void loop() {
if (mySerial.available()) {
char inChar = (char)mySerial.read();
inputString += inChar;
if (inChar == '\n') {
stringComplete = true;
}
}
if (stringComplete) {
Serial.println(inputString);
// clear the string:
inputString = "";
stringComplete = false;
}
}