Sciencexp : le site des Sciences Expérimentales

Mesures scientifiques et ordinateur : mesurer, figurer, comparer

Traduction/Translation/Traduko/Traducción/Übersetzung/Traduzione

[PNG] Mon logo Zite !

Identifiez-vous pour accéder à la partie privée du site ou le modifier.

Déconnexion.

Eŭropo-Demokratio-Esperanto

Ĉu vi parolas esperanton ?

 

Dernière mise à jour le 22/10/2023

Arduino utilisé comme un adaptateur USB-série

Divers appareils de mesure peuvent être reliés à un ordinateur par une prise "série" (= RS232 = V24...), mais les ordinateurs récents n'ont pas ce type de connecteur. Normalement, on peut acheter dans le commerce des adaptateurs USB-série pour une trentaine d'euros.

Mais un Arduino peut être utile dans plusieurs cas. D'une part, lorsqu'on n'a pas d'adaptateur sous la main. D'autre part lorsqu'on a un adaptateur, mais pas le bon câble de raccordement. Et enfin, lorsqu'on veut aussi utiliser les entrées analogiques de l'Arduino, ou les sorties PWM.

Les versions récentes du logiciel Arduino permettent d'utiliser la bibliothèque SoftwareSerial, qui donne la capacité d'utiliser presque n'importe quelles broches pour transmettre des signaux selon le protocole sériel (RS232). Donc Arduino échange des données avec l'ordinateur par le câble USB, comme d'habitude, et il échange des données avec l'appareil RS232 par trois fils.

Arduino RS232

Le programme à implanter dans Arduino est très simple, c'est une variante de l'exemple SoftwareSerialExample.

// Arduino utilisé en convertisseur USB-série
//d'après SoftwareSerialExample des exemples d'Arduino
#include  <SoftwareSerial.h>

SoftwareSerial mySerial(10, 11,true); // RX, TX
//10 est la broche RX, à relier au TX de l'autre appareil (3?)
//11 est la broche TX, à relier au RX de l'autre appareil (2?)
// relier aussi les masses (GND d'Arduino, 5? de l'autre appareil)
//true est nécessaire ici à cause de l'inversion de la logique RS232/TTL

void setup() {
  Serial.begin(2400); //ici, 2400 est pour le pHmètre Heito Chauvin-Arnoux
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }

  // set the data rate for the SoftwareSerial port
  mySerial.begin(2400); //mettre la même vitesse pour une bonne compatibilité
}

void loop() { // c'est l'essentiel : transmettre tous les signaux reçus
  if (mySerial.available()) {
    Serial.write(mySerial.read());
  }
  if (Serial.available()) {
    mySerial.write(Serial.read());
  }
}

On peut compliquer un peu le programme : s'il reçoit un caractère particulier en provenance de l'ordinateur, il fait les mesures sur une ou quelques entrées analogiques, et renvoie le résultat vers l'ordinateur. Ainsi, avec une seule prise USB, on peut profiter des capacités de l'Arduino et de l'appareil de mesure.

Le programme ci-dessus a été testé avec le pHmètre Heito/Chauvin-Arnoux P310. Une fois implanté dans Arduino, il permet d'utiliser les pilotes Mensurasoft sans aucune modification de ceux-ci.

 

photo Arduino pHmètre Chauvin-Arnoux P310

Arduino Uno relié au connecteur RS232 du pHmètre Heito/Chauvin Arnoux P310.

 

 

 

 






Dernière modification le 25/07/2017

Site motorisé par ZitePLUS 0.9.1