Hola a todos,
A raíz de problemas que tuve entre las librerías "SoftwareSerial.h" y "PinChangeInterrupt.h", comencé a utilizar para las comunicaciones la librería "NeoSWSerial.h".
Estaba preparando un código con el módulo DF Player Mini, pero tengo problemas utilizando la librería "NeoSWSerial.h".
Este es el código que me da errores:
#include "Arduino.h"
#include <NeoSWSerial.h>
#include "DFRobotDFPlayerMini.h"
int pinRX = 10;
int pinTX = 11;
NeoSWSerial mySoftwareSerial(pinRX, pinTX);
DFRobotDFPlayerMini myDFPlayer;
void printDetail(uint8_t type, int value);
void setup()
{
mySoftwareSerial.begin(9600);
Serial.begin(115200);
Serial.println(F("DFRobot DFPlayer Mini Demo"));
Serial.println(F("Initializing DFPlayer ... (May take 3~5 seconds)"));
if (!myDFPlayer.begin(mySoftwareSerial)) {
Serial.println(F("Unable to begin:"));
Serial.println(F("1.Please recheck the connection!"));
Serial.println(F("2.Please insert the SD card!"));
while(true){
delay(0); // Code to compatible with ESP8266 watch dog.
}
}
Serial.println(F("DFPlayer Mini online."));
myDFPlayer.play(1);
}
void loop()
{
}
Y los mensajes que recibo en el Serial Monitor son:
Unable to begin:
1.Please recheck the connection!
2.Please insert the SD card!
Sin embargo, si cambio de librería a "SoftwareSerial.h" funciona correctamente:
#include "Arduino.h"
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"
int pinRX = 10;
int pinTX = 11;
SoftwareSerial mySoftwareSerial(pinRX, pinTX);
DFRobotDFPlayerMini myDFPlayer;
void printDetail(uint8_t type, int value);
void setup()
{
mySoftwareSerial.begin(9600);
Serial.begin(115200);
Serial.println(F("DFRobot DFPlayer Mini Demo"));
Serial.println(F("Initializing DFPlayer ... (May take 3~5 seconds)"));
if (!myDFPlayer.begin(mySoftwareSerial)) {
Serial.println(F("Unable to begin:"));
Serial.println(F("1.Please recheck the connection!"));
Serial.println(F("2.Please insert the SD card!"));
while(true){
delay(0); // Code to compatible with ESP8266 watch dog.
}
}
Serial.println(F("DFPlayer Mini online."));
myDFPlayer.play(1);
}
void loop()
{
}
¿Alguien sabe por qué?
Es simple curiosidad, puedo utilizar SoftwareSerial.h y problema resuelto, pero me gustaría saber por qué no funciona con NeoSWSerial.h
Gracias,
Jose