Brunello:
ote that on the Leonardo, the Serial class refers to USB (CDC) communication; for TTL serial on pins 0 and 1, use the Serial1 class
I've tried with Serial1 class, but nothing happens
EDIT:
Now it works perfectly. The error was that the transmitters were working to 57600bps, while in the sketch I had initialized communication at 9600bps. :P
Thanks so much for the help! ;)
This sketch is correct:
boolean stato = false;
void setup() {
Serial1.begin(57600);
pinMode(13, OUTPUT);
}
void loop() {
if(Serial1.available())
{
char s = Serial1.read();
switch(s)
{
case 'a': stato = !stato;
digitalWrite(13, stato);
break;
}
}
}
La Leonardo è un pò strana e non ricordo come è messa a seriali, però se è uguale alla UNO, la seriale che comunica con Il PC tramite Il chip FTDI232 o l'atmeghino minuscolo è la 0 (zero), non la uno.
Quindi se vuoi vedere i dati seriali acquisiti dal APC220 sulla Serial1, devi fare uno switch dei dati verso la seriale zero, cioè la Serial e basta (senza 0 o 1 dopo Serial).
La Leonardo usa una porta seriale virtuale per comunicare con il PC, simulata via software.
La porta "tradizionale" UART sui pin 0 ed 1 è invece la Serial1.
Per inviare comandi alla porta Serial1, devi intercettare a livello software la comunicazione su Serial(0) ed inviarla alla Serial1: in gergo informatico si dice fare un "bridge".