[Mise à jour le 30/7/2024]
// Testé avec une carte Arduino Uno (2:RXD, 3:TXD) // Interface série logicielle (asynchrone) // 9600baud, 8, N, 1 #include <SoftwareSerial.h> SoftwareSerial SoftSerial(2,3); // (2:RXD, 3:TXD) Arduino Uno unsigned char buffer[64]; // tableau pour la réception de données via le port série int count = 0; // compteur void setup() { SoftSerial.begin(9600); // Réglage du débit de l'interface série logicielle Serial.begin(9600); // Réglage du débit de l'interface série matérielle (moniteur série) } void loop() { if (SoftSerial.available()) // si disponible { while (SoftSerial.available()) // lire les données { buffer[count++] = SoftSerial.read(); // et les écrire dans le tableau if (count == 64) break; // tant qu'il n'est pas plein } Serial.write(buffer, count); // écrire le tableau dans la console //Serial.write("\n"); clearBufferArray(); // vider le tableau et count = 0; // raz compteur } if (Serial.available()) // si les données sont disponibles sur le port série matériel ==> les données proviennent d'un PC ou d'un ordinateur portable SoftSerial.write(Serial.read()); // les écrire sur le port série logiciel } void clearBufferArray() // fonction pour effacer le tableau { for (int i = 0; i < count; i++) { buffer[i] = NULL; } // On efface le tableau avec la commande NULL }