LOCODUINO

Bibliothèque SoftWare Serial

.
Par : Dominique, Guillaume

DIFFICULTÉ :

Explications

Bibliothèque officielle faisant partie du référentiel Arduino livrée avec l’IDE, elle facilite l’écriture du code pour utiliser n’importe quelle autre broche numérique que 0 et 1 afin de créer une autre voie série.
Cette bibliothèque émule une voie série.

Installation

Cette bibliothèque fait donc partie intégrante d’Arduino, elle est installée de base. Il suffit juste de l’importer dans le programme que l’on écrit.

Limitations

La bibliothèque Software Serial a plusieurs limitations qu’il faut prendre en compte :

  • Lors de l’emploi de plusieurs voies séries émulées par la bibliothèque, seulement 1 peut recevoir des données, il faut les traiter chacune son tour dans ce cas.
  • l’emploi sur un Arduino Méga est restreint ; seuls les numéros de broches suivants peuvent être utilisés comme broche Rx : 10, 11, 12, 13, 14, 15, 50, 51, 52, 53, A8 (62), A9 (63), A10 (64), A11 (65), A12 (66), A13 (67), A14 (68), A15 (69).
  • de même sur les Arduino Leonardo et Micro, la broche Rx peut être seulement sur les broches : 8, 9, 10, 11, 14 (MISO), 15 (SCK), 16 (MOSI).

Si votre projet nécessite la réception de données simultanées sur les voies séries émulées, nous nous tournerons vers une autre bibliothèque AltSoftSerial de Paul Stoffregen, mais qui possède aussi d’autres limitations.

Importer la bibliothèque

#include <SoftwareSerial.h>
Cela se fait en début de programme.

Définitions de la voie série émulée

Contrairement à la voie série officielle où les broches utilisées sont définies, il nous faut pour cette bibliothèque les définir. Pour cela, il faut créer une variable de type SoftwareSerial en lui donnant un nom et comme paramètres les deux broches que nous allons utiliser comme Rx et Tx.
Par exemple :
SoftwareSerial mySerial(10, 11);

Fonctions de cette librairie

Émuler la voie série signifie tout de même utiliser les mêmes commandes mais en changeant le nom de la voie série, comme cet exemple où nous ouvrons la voie série :
mySerial.begin(4800);
Le code donc est le même que la voie série officielle et nous nous reporterons à l’article Bibliothèque Serial dont le présent article est le complément.

6 Messages

  • Bibliothèque SoftWare Serial 7 juin 2019 11:49, par rey

    Bonjours, j’ai besoin de lire une distance puis de l’envoyer pas bluetooth, mais lors de la réception je reçois un 0 alors que par câble je reçois bien la distance. Comment je pourrai faire.

    code :

    #include <SoftwareSerial.h>
    
    SoftwareSerial CaptDist(10,11);
    
    SoftwareSerial HC06(8,9); //tx,rx
    
    int dist;
    int check;
    int i;
    int uart[9];
    const int HEADER = 0x59;
    
    void setup() {
      //Serial.begin(9600);
    
      CaptDist.begin(115200);
    
      HC06.begin(9600); 
    }
    
    void loop() {
      distance();
      if (Serial.read() == 'L'){
        Serial.print("OK : ");
        Serial.print(dist, DEC);
      }
      if (HC06.read() == 'L'){
        HC06.print("OK : ");
        HC06.print(dist, DEC);
      }
    }
    
    void distance ()
    {
      if (CaptDist.available()) {
        if (CaptDist.read() == HEADER) {
          uart[0] = HEADER;
          if (CaptDist.read() == HEADER) {
            uart[1] = HEADER;
            for (i = 2; i < 9; i++) {
              uart[i] = CaptDist.read();
            }
            dist = uart[2] + uart[3] * 256;
          }
        }
      }
    }

    Répondre

  • Bibliothèque SoftWare Serial 7 juin 2019 15:31, par msport

    Vous avez testé votre liaison Bluetooth depuis le serial tout court ?
    Pensez à changer de pin, certaines pins sont dédiées aux timers.

    Répondre

  • Bibliothèque SoftWare Serial 26 mars 2020 17:29, par diawara ismael

    bonjour
    pourquoi dites vous que la broche tx du module doit aller sur la brox rx de la garde et vice versa pour la broche rx et pourtant vous les branchez sur les sortie 10 ET 11

    Répondre

  • Bibliothèque SoftWare Serial 12 avril 2023 15:39, par bauduin

    Bonjour,

    Je fais pour ma copine un détecteur d’intrus pour éviter le vol de ses ruches (trés fréquent !).
    J’ai réussi à connecter un SIM900 avec une carte Arduino Nano (bon à savoir, ça marche) et j’arrive à envoyer un mail à chaque approche du détecteur.
    Mais j’ai du utiliser une carte SIM spéciale "Things Mobile". Ce sont des cartes sans code PIN pour l’internet des objets (comme on dit maintenant).
    Seul problème : cela va revenir cher, entre l’abonnement, les recharges, les frais divers (un peu escroc ces gens).
    J’ai vu qu’il existait une biblio "GSM.h" qui entrait le code PIN. Mais je ne la trouve plus.
    Et les cartes de téléphone ne semble plus pouvoir permettre l’annulation du code PIN.
    Une idée ?
    PS : votre site super, c’est en des meilleurs pour l’apprentissage Arduino !

    Répondre

  • Bibliothèque SoftWare Serial 12 avril 2023 17:20, par msport

    Bonjour,
    le sujet, certes très sympathique, n’est pas vraiment du ressort de Locoduino mais je pense que vous trouverez ce qu’il faut sur arduino.cc
    Nota, les sms sont gratuits.

    Voir en ligne : Send SMS

    Répondre

  • Bibliothèque SoftWare Serial 12 avril 2023 17:31, par Dominique

    Le sujet n’est pas celui de Locoduino mais il se trouve que j’ai du faire la même chose pour installer une alarme.
    Pour supprimer le code pin d’une carte SIM il faut l’installer dans un vieux téléphone et utiliser les réglages de la carte SIM : il y a une possibilité de supprimer la demande du code pin. J’ai retrouvé un vieux Nokia et ça a marché.
    Sinon avec la carte sim900 et une interface série-usb on peut taper la commande qui va bien : pour cela il faut chercher le catalogue des commandes sim ATxxx sur le web (Ça n’existe pas ici 👈)
    Bon Miel 🍯
    cordialement.

    Répondre

Réagissez à « Bibliothèque SoftWare Serial »

Qui êtes-vous ?
Votre message

Pour créer des paragraphes, laissez simplement des lignes vides.

Lien hypertexte

(Si votre message se réfère à un article publié sur le Web, ou à une page fournissant plus d’informations, vous pouvez indiquer ci-après le titre de la page et son adresse.)

Rubrique « Bibliothèques »

Les derniers articles

Les articles les plus lus