La razón detrás de la discrepancia en la documentación es que la documentación se refiere a dos versiones diferentes del software y está desactualizada.
En la versión 0023 de Arduino e inferior, SoftSerial era una biblioteca muy básica escrita por David Mellis. Solo usa millis (), digitalRead / Write y bloquea al enviar o recibir. Esto significa que puede funcionar en cualquier pin. Sin embargo, funciona mal y lentamente. Recomiendo encarecidamente evitar esto.
En Arduino versión 1 y superior, SoftSerial fue reemplazado por NewSoftSerial . Esto utiliza interrupciones y temporizadores, y es mucho más eficiente. Esto limita los pines en los que puede funcionar, aunque a los que tienen interrupciones de cambio de pines.
Con respecto a los pines contradictorios; Hay dos tipos de pin de interrupción en el ATmega2560: las interrupciones externas (INT7 - INT0) y las interrupciones de cambio de pin (PCINT23 - PCINT0). Las interrupciones externas son más complejas y pueden configurarse para activarse en bordes ascendentes y / o descendentes. Las interrupciones de cambio de pin se activan siempre que se produzca algún cambio.
La larga lista de:
10, 11, 12, 13, 50, 51, 52, 53, 62, 63, 64, 65, 66, 67, 68, 69
son interrupciones de cambio de pin que son las que se requieren para NewSoftSerial (llamado SoftSerial en Arduino 1.0 y versiones posteriores).
La lista corta de:
2 (interrupt 0), 3 (interrupt 1), 18 (interrupt 5), 19 (interrupt 4), 20 (interrupt 3), and 21 (interrupt 2).
son interrupciones externas.
Puede verlos en el diagrama de asignación de pines para el ATmega2560 (que es correcto, AFAIK). La función de los pines de interrupción se describe en la página 105 en adelante de la hoja de datos .
Hay 4 USARTs de hardware en el ATmega2560. Estos son mucho más fáciles de usar y mucho más eficientes que cualquier biblioteca de serie de software. Están en los pines 0/1, 14/15, 16/17, 18/19.
También hay AltSoftSerial que es mejor que NewSoftSerial en términos de rendimiento, pero está aún más limitado en el pin elección.
En esta etapa, tengo que preguntar "¿por qué esos pines?". ¿No podría cambiar el diseño?