[Tuto] Discuter entre le PC et le Arduino

Posté sur: août 8, 2013

Catégories: Arduino

Tags: arduino , pc , serie , tuto , usb

Réaliser une liaison série

Le but de ce montage est de communiquer entre l'ordinateur et le Arduino par la liaison série. Cette liaison série passe par le câble USB. Savoir utiliser cette connexion est une très bonne base à la réalisation d'autres connexions à l'aide de module qui utilise le même mode de fonctionnement comme le module Bluetooth par exemple.

Composants nécessaires :

 
composants

Principe du montage :

Ce montage ne comporte aucun composant externe, il suffit de câbler le Arduino avec le PC via le câble USB.

croquis

Programmation du montage :

La majeure partie de ce montage est la programmation. Pour établir une liaison série, une utilise la librairie Serial. Comme c'est une librairie, pour utiliser ces fonctions, il faudra écrire « Serial.nomdelafonction » .Elle contient les fonctions suivantes :

  • begin() : Fixe le débit de communication en bits par secondes (l'unité est le baud) pour la communication série. Pour communiquer avec l'ordinateur, utiliser l'un de ces débits : 300, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600, or 115200. Dans notre exemple nous uiliserons 9600 bauds.

  • available() : Donne le nombre d'octets (caractères) disponible pour lecture dans la file d'attente (buffer) du port série. Cette fonction est utile pour savoir si l'on a un message sur la liaison série.

  • read() : Lit les données entrantes sur le port Série.

  • flush() : Vide le buffer de réception de données du port série. Par conséquent, tout appel de la fonction Serial.read() ou Serial.avalaible() renverra seulement les données reçues après le plus récent appel de la fonction Serial.flush().

  • print() : Cette fonction affiche le texte compris comme paramètre

  • println() : Identique à print() mais sur une nouvelle ligne

  • write() : Ecrit des données binaires sur le port série. Ces données sont envoyées comme une série d'octet; pour envoyer les caractères correspondants aux chiffres d'un nombre, utiliser plutôt la fonction print().

Pour plus de détails, vous pouvez consulter le site officiel : http://arduino.cc/fr/Main/Serial

Le programme doit établir une connexion avec le PC et dire « Avez-vous quelques choses à me dire ? » et lorsque le PC répond. Le Arduino répéte ce que le PC a dit puis dit « OK ».

const int debit = 9600; // On défini le debit dans une variable
byte texte; // Variable pour contenir le texte reçu
void setup() { // Fonction d'initilisation de la cartenSerial.begin(debit); // On initialise la liaison série
Serial.println("Arduino : Avez-vous quelques choses a me dire ?"); // On demande si l'utilisateur à une question
}
void loop() // Fonction principale, elle se répète (s'exécute) à l'infini
{
while (Serial.available()) // On attend des messages sur la liason série
{
while (Serial.available()) // On attend des messages sur la liason série
{
texte = Serial.read(); // Stockage des messages dans textenSerial.write(texte); // Réécrire le message
delay(10);
}
Serial.println("nArduino : OK"); // Nouveau message pour valider la réceptionSerial.println("Arduino : Avez-vous quelques choses a me dire ?"); // On demande si l'utilisateur à une question
}
}

Il reste à brancher le Arduino pour compiler le programme et le téléverser.

Une fois terminé cela nous donne :


montage ON

 


Physiquement


Série


Coté interface série

Pour aller plus loin : On peut faire des tests avec les fonctions print, println au lieu de la fonction write pour voir les messages en binaire.

Commentaires

  • Hgrd
    mars 3, 2016
  • Remi
    mars 3, 2016

laissez un commentaire

Se connecter