Bibliothèque de logiciels à Arduino

Bibliothèque de logiciels à Arduino

La plateforme Arduino permet aux gens de créer différents projets. Arduino est une plate-forme conviviale avec un large éventail de bibliothèques, y compris le Bibliothèque de logiciels. Le Bibliothèque de logiciels vous permet de créer un port série sur l'une des broches numériques de votre carte Arduino.

Dans cet article, nous plongerons plus profondément dans la bibliothèque des logiciels et explorerons comment cela fonctionne.

Introduction à la bibliothèque logicielle

Le Bibliothèque de logiciels est une bibliothèque Arduino standard qui permet une communication série sur les broches numériques autres que TX et RX. La bibliothèque permet la création d'un port de série logiciel, qui peut être utilisé pour communiquer avec d'autres appareils, tels que d'autres microcontrôleurs, des ordinateurs ou même des modules Bluetooth. La bibliothèque de logiciels est incluse avec l'ide Arduino et peut être utilisée avec n'importe quelle carte Arduino.

Note: En général, TX et Rx Les broches sont utilisées pour la communication série, mais en utilisant cette bibliothèque, nous pouvons permettre à la carte Arduino d'utiliser l'une des broches numériques pour remplacer les broches TX et RX.

Comprendre les fonctions de bibliothèque logicielle

Le Bibliothèque de logiciels A plusieurs fonctions qui vous permettent de configurer et de contrôler le port de série logiciel. Voici quelques-unes des principales fonctions que vous devez connaître:

Softwareserial ()

Cette fonction crée une nouvelle instance du Logiciel classe. Cette fonction a deux arguments, la broche RX et la broche TX. Par exemple, si vous souhaitez créer un port de série logiciel sur les broches 2 et 3, vous utiliseriez le code suivant:

Mysérial des logiciels (2, 3); // rx, tx

Le Softwareserial () la méthode est utilisée pour créer une nouvelle instance d'un Logiciel objet. Il permet la création de plusieurs instances mais à la fois, une seule peut être active.

Syntaxe

La syntaxe pour le Softwareserial () La méthode est la suivante:

Softwareserial (rxpin, txpin, inverse_logic)

Paramètres

Les paramètres du Softwareserial () sont

rxpin: Ce paramètre spécifie la broche qui sera utilisée pour recevoir des données série.

txpin: Ce paramètre spécifie la broche qui sera utilisée pour transmettre des données série.

inverse_logic: Ce paramètre est facultatif, et il inverse le sens des bits entrants. La valeur par défaut est fausse, ce qui signifie qu'un faible sur la broche RX est interprété comme un 0 bits et un haut comme 1 bits. S'il est réglé sur true, le bas sur la broche RX prendra désormais le 1 bits et haut que 0 bits.

Retour

Le Softwareserial () ne retourne rien.

Fonctions de bibliothèque arduino

Arduino Softwareserial () a une liste de fonctions pour la communication série entre les appareils. Certaines des principales fonctions sont discutées ici:

  • commencer()
  • disponible()
  • lire()
  • écrire()

commencer()

Le commencer() La fonction initialise le port série logiciel avec un taux de bauds. Le taux de bauds est la vitesse de transmission des données sur le port série. Par exemple, pour définir 9600 comme taux de bauds pour la communication série, vous utiliseriez le code suivant:

mysérial.commencer (9600);

disponible()

Le Disponible () FUnction Renvoie des octets disponibles pour la lecture sur le port de série logiciel. Par exemple, pour vérifier s'il existe des données disponibles, vous utiliseriez le code suivant:

si (mysérial.disponible ()> 0)
// Lire les données d'entrée
char à INCOMINGBYTE = MySerial.lire();

lire()

Le lire() La fonction lit l'octet suivant des données du port série logiciel. Par exemple, pour lire un octet de données et l'imprimer au moniteur série, vous utiliseriez le code suivant:

char à INCOMINGBYTE = MySerial.lire();
En série.println (incomingbyte);

écrire()

Le écrire() La fonction écrit un octet de données au port de série logiciel. Par exemple, pour envoyer la lettre "UN" Sur le port série du logiciel, vous utiliseriez le code suivant:

mysérial.écrire un');

Exemple de bibliothèque Arduino SoftwareSeRerial ()

Nous allons maintenant communiquer entre deux planches Arduino sur la communication en série à l'aide de cette bibliothèque. Prenez deux planches Arduino et connectez-les comme indiqué dans l'image ci-dessous.

Connecter D2 de la carte maître Arduino avec D3 de la carte arduino esclave, se connectez également D3 de maître arduino avec D2 de l'esclave arduino.

Note: Pour la communication en série, le TX la broche est toujours connectée au Rx Pin de l'Arduino opposé et le Rx La broche du maître est toujours connectée au TX Pin de l'autre Arduino.

Voici le matériel des deux planches Arduino.

Voici un exemple de code Arduino qui montre comment utiliser le Bibliothèque de logiciels Pour établir la communication entre deux planches Arduino:

Code de la carte de l'expéditeur

Le code ci-dessous est pour l'expéditeur Arduino qui écrira une chaîne à la carte récepteur Arduino.

#inclure
// configurer un objet série logiciel
Mysérial des logiciels (2, 3);
void setup()
// Démarrer la communication en série
En série.commencer (9600);
alors que (!Série)
; // attendez que le port série se connecte

// Démarrer la communication en série logicielle
mysérial.commencer (9600);

VOID LOOP ()
// Envoyez un message sur la connexion en série logicielle
mysérial.println ("Hello, Board récepteur!");
retard (1000);

Code de la carte du récepteur

Le code ci-dessous est pour la carte du récepteur. L'utilisation de ce code Arduino recevra la chaîne d'une autre carte plutôt que la communication série établie entre deux planches Arduino.

#inclure
// configurer un objet série logiciel
Mysérial des logiciels (2, 3);
void setup()
// Démarrer la communication en série
En série.commencer (9600);
alors que (!Série)
; // attendez que le port série se connecte

// Démarrer la communication en série logicielle
mysérial.commencer (9600);

VOID LOOP ()
// Vérifiez si les données sont disponibles sur la connexion série du logiciel
si (mysérial.disponible())
// Lisez les données et imprimez-les au moniteur série
En série.println (myserial.readString ());

Dans cet exemple, nous incluons d'abord le Bibliothèque de logiciels au début du code. Ensuite, nous créons un Logiciel objet appelé «mysérial”Avec les broches 2 et 3 spécifiées comme les broches Rx et Tx, respectivement.

Dans le installation() fonction, nous commençons à la fois la série matérielle et la communication en série logicielle avec un taux de bauds de 9600. Dans le boucle() Fonction de la carte des expéditeurs, nous envoyons un message sur la connexion en série logicielle à l'aide de MySerial.Méthode println () et attendez une seconde avant d'envoyer le message suivant.

Dans la fonction LOOP () de la carte récepteur, le code vérifiera la disponibilité des données série sur la connexion en série logicielle en utilisant mysérial.disponible() méthode. S'il y a des données disponibles, nous lisons les données à l'aide de MySerial.Méthode readString () et imprimez-le au moniteur série à l'aide de la série.Méthode println ().

Limitations de la bibliothèque Softwareserial ()

Le Bibliothèque de logiciels a plusieurs avantages différents mais a également certaines limites que les utilisateurs doivent être conscientes. Ces limitations incluent

  • Incapacité à transmettre et à recevoir des données simultanément.
  • Lorsque vous utilisez plusieurs ports de série logiciels, un seul port peut recevoir des données à la fois.
  • Les ports série basés sur un logiciel créés à l'aide de cette bibliothèque fonctionnent à des taux de bauds inférieurs et ne sont pas aussi fiables que les ports série basés sur le matériel.
  • Certaines broches sur les conseils Mega et Mega 2560 ne prennent pas en charge les interruptions de changement pour RX, limitant les broches qui peuvent être utilisées.
  • De même, sur les planches de Leonardo et Micro, seules certaines broches peuvent être utilisées pour RX en raison d'un manque d'interruptions de changement.
  • La vitesse RX maximale sur les planches Arduino ou Greenino 101 est de 57600 bps.
  • RX ne fonctionne pas sur la broche numérique 13 des planches Arduino ou Genoino 101.
Conseil Broches Rx
Mega et Mega 2560 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).
Leonardo & Micro 8, 9, 10, 11, 14 (MISO), 15 (SCK), 16 (MOSI).

Conclusion

Le Bibliothèque de logiciels Dans Arduino est un outil utile pour communiquer avec les appareils utilisant des protocoles de communication série. Il permet aux développeurs de créer des ports série basés sur un logiciel qui peuvent être utilisés en conjonction avec des ports série basés sur le matériel. Cette bibliothèque a certaines limites car elle ne permet pas de transfert de données simultanées. Pour plus de détails, lisez l'article ci-dessus.