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.
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.
Arduino Uno relié au connecteur RS232 du pHmètre Heito/Chauvin Arnoux P310.
Dernière modification le 25/07/2017