Buongiorno a tutti, durante la verifica dello sketch l'IDE mi da un warning che però non pregiudica la compilazione ed il funzionamento dello sketch una volta caricato, sono comunque intenzionato a risolvere la questione ma non riesco a trovare una soluzione (probabilmente banale) anche cercando in giro per la rete, voi sapreste indirizzarmi?
Ho capito che ha a che fare con la SoftwareSerial, ma non ne vengo comunque a capo.
Sketch:
// SoftwareSerial - Version: Latest
#include <SoftwareSerial.h>
int txPin = 2; // BT TX pin
int rxPin = 3; // BT RX pin
int sx = 4; // 1st relay pin
int dx = 5; // 2nd realy pin
int rt = 6; // 3rd relay pin
String message; // input string from Android
SoftwareSerial bt(rxPin, txPin); // BT serial
void setup() {
bt.begin(9600);
pinMode(sx, OUTPUT); // set relay pins to OUTPUT
pinMode(dx, OUTPUT);
pinMode(rt, OUTPUT);
digitalWrite(sx, LOW); // set pins state to LOW (relays OFF)
digitalWrite(dx, LOW);
digitalWrite(rt, LOW);
}
void loop() {
while (bt.available()) {
message += char(bt.read());
}
if (!bt.available()) {
if (message == "check") { // Android app is set to send a check message at start
message = ""; //clear the data
statusCheck();
}
if (message == "sxON") {
digitalWrite(sx, HIGH);
message = "";
statusCheck();
}
else if (message == "sxOFF") {
digitalWrite(sx, LOW);
message = "";
statusCheck();
}
else if (message == "dxON") {
digitalWrite(dx, HIGH);
message = "";
statusCheck();
}
else if (message == "dxOFF") {
digitalWrite(dx, LOW);
message = "";
statusCheck();
}
else if (message == "rtON") {
digitalWrite(rt, HIGH);
message = "";
statusCheck();
}
else if (message == "rtOFF") {
digitalWrite(rt, LOW);
message = "";
statusCheck();
}
}
}
//Funzioni
void statusCheck() { // this is the function that checks pin's state and print it over the BT serial
bt.print(digitalRead(sx));
bt.print("|");
bt.print(digitalRead(dx));
bt.print("|");
bt.print(digitalRead(rt));
}
Warning dell'IDE:
In file included from /Applications/Arduino.app/Contents/Java/hardware/arduino/avr/variants/eightanaloginputs/pins_arduino.h:23:0,
from /Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/Arduino.h:257,
from /Applications/Arduino.app/Contents/Java/hardware/arduino/avr/libraries/SoftwareSerial/src/SoftwareSerial.cpp:43:
/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/libraries/SoftwareSerial/src/SoftwareSerial.cpp: In member function 'void SoftwareSerial::begin(long int)':
/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/variants/eightanaloginputs/../standard/pins_arduino.h:74:39: warning: comparison is always true due to limited range of data type [-Wtype-limits]
#define digitalPinToPCICR(p) (((p) >= 0 && (p) <= 21) ? (&PCICR) : ((uint8_t *)0))
^
/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/libraries/SoftwareSerial/src/SoftwareSerial.cpp:319:7: note: in expansion of macro 'digitalPinToPCICR'
if (digitalPinToPCICR(_receivePin)) {
^
/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/variants/eightanaloginputs/../standard/pins_arduino.h:74:39: warning: comparison is always true due to limited range of data type [-Wtype-limits]
#define digitalPinToPCICR(p) (((p) >= 0 && (p) <= 21) ? (&PCICR) : ((uint8_t *)0))
^
/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/libraries/SoftwareSerial/src/SoftwareSerial.cpp:360:6: note: in expansion of macro 'digitalPinToPCICR'
*digitalPinToPCICR(_receivePin) |= _BV(digitalPinToPCICRbit(_receivePin));
^
Archiving built core (caching) in: /var/folders/1r/0f51_dtn4z53q4tb2_vyf2_r0000gn/T/arduino_cache_464878/core/core_arduino_avr_nano_cpu_atmega328_51f02b7210b938436b779d1c032618e1.a
Lo sketch usa 4574 byte (14%) dello spazio disponibile per i programmi. Il massimo è 30720 byte.
Le variabili globali usano 184 byte (8%) di memoria dinamica, lasciando altri 1864 byte liberi per le variabili locali. Il massimo è 2048 byte.