NewSoftSerial

NewSoftSerial

Последняя версия библиотеки NewSoftSerial доступна здесь: NewSoftSerial12.zip.

Примечание: не загружайте эту библиотеку если у вас установлена Arduino версии 1.0 или более поздняя, т.к. NewSoftSerial включена в ядро Arduino core (там библиотека называется SoftwareSerial).

NewSoftSerial является последней из трех библиотек Arduino, обеспечивающих поддержку виртуального (программного) последовательного порта. Он является прямым потомком AFSoftSerial от Ladyada, который представил приемы, управляемые прерываниями, это значительное улучшение по сравнению с опросом, требуемым родным SoftwareSerial.

Без прерываний разработка вашей программы значительно ограничена, так как он должен постоянно опрашивать последовательный порт с очень короткими регулярными интервалами. Это делает практически невозможным, например, использование SoftwareSerial для получения данных GPS и их анализа в удобной форме. Ваша программа слишком занята, пытаясь не отставать от символов NMEA, поскольку они прибывают, чтобы тратить время на обработку их во что-то значимое. Именно здесь архитектура прерываний AFSoftSerial (и NewSoftSerial ) является значащей. Используя управляемый прерываниями RX, ваша программа заполняет свой буфер за кулисами при обработке ранее полученных данных.

Пример

#include

Here's a GPS device connect to pins 3 and 4 NewSoftSerial gps(4,3); A serial thermometer connected to 5 and 6 NewSoftSerial therm(6,5);

An LCD connected to 7 and 8 NewSoftSerial LCD(8,7); serial LCD

void loop() {

...
// collect data from the GPS unit for a few seconds
gps.listen();
read_gps_data();  // use gps as active device
// collect temperature data from thermometer
therm.listen();
read_thermometer_data(); // now use therm
// LCD becomes the active device here
LCD.listen();
LCD.print("Data gathered...");
...

}