Faltaría que agregues el esquema de conexiones para tratar de encontrar el problema (aunque me lo imagino).
En el código falta incluir la librería SoftwareSerial (u omitiste copiar líneas).
De todos modos, el código NO usa SoftwareSerial porque está definida una compilación condicional
if (defined(__AVR__) || defined(ESP8266)) && !defined(__AVR_ATmega2560__)
SoftwareSerial mySerial(0, 1);
#else
#define mySerial Serial1
#endif
que dice que si es un chip AVR o ESP8266 y no es un ATmega2560 use SoftwareSerial, sino (o sea es una Mega) use Serial1.
Y Serial1 usa los pines 18 y 19, no los pines 0 y 1.
Seguramente ese es el problema, el lector conectado a pines incorrectos.