Voor communicatie tussen arduino's kan je ook erg goed de I2C bus gebruiken. Tenzij ze meer dan een meter van elkaar verwijderd zijn. Je kan er dan ook meer dan 100 arduino's op aansluiten als het moet.
@MeinoDie experts kan je beter negeren, ze kunnen soms best vervelend en hebben niet altijd gelijk. Men kan prima I2C op 100kHz gebruiken maar je lengte is alleen beperkt. Er zit immers wel een handshake protocol ingebouwd die je kan gebruiken. Dus je kan precies weten wanneer het niet goed meer gaat
Je kan wel meer dan 1 software serial object aanmaken maar er kan er maar 1 tegelijk een byte ontvangen. Als er ooit 2 bytes over de SW seriele poorten binnen komen tegelijk dan gaat het mis
Er is geen verschil tussen software of hardware seriële communicatie.
LimitationsThe library has the following known limitations:If using multiple software serial ports, only one can receive data at a time.
// Disable further interrupts during reception, this prevents // triggering another interrupt directly after we return, which can // cause problems at higher baudrates. setRxIntMsk(false); // Wait approximately 1/2 of a bit width to "center" the sample tunedDelay(_rx_delay_centering); DebugPulse(_DEBUG_PIN2, 1); // Read each of the 8 bits for (uint8_t i=8; i > 0; --i) // zoals commentaar al zegt, in dit loopje worden alle bits ingelezen { tunedDelay(_rx_delay_intrabit); // dit is een blocking delay d >>= 1; DebugPulse(_DEBUG_PIN2, 1); if (rx_pin_read()) d |= 0x80; }......
Interrupt Latency RequirementsAltSoftSerial can withstand approximately 1 bit time of interrupt latency from other libraries or functions. Most libraries, HardwareSerial, and the millis() timekeeping interrupt are designed to minimize CPU time spend executing interrupts or accessing data with interrupts disabled.However, some libraries may disable interrupts for longer than 1 bit time. If they do, AltSoftSerial will not work properly. If you discover erroneous results from AltSoftSerial, please try testing without other libraries.