Ce bout de code me permet de modifier paramètres la tension à 2,25V sur l'alimentation.
par exemple :
3. VSET:
Description:Sets the output voltage. Example VSET1:20.50
Sets the CH1 voltage to 20.50V
J'ai essayé à l'aide d'un Hyperterminal (MTTTY) en USB (cette fois, et non en RS232, pas sur mon PC) en envoyant un fichier text avec la commande VSET1:2.25, j'arrive à changer la tension sur l'alimentation.
Si quelqu'un à déjà eu une expérience similaire son aide serait la bienvenue, car je ne parviens à communiquer avec l'arduino et l'alimentation.
Sur l'hyperterminal, je fais que envoyé un fichier .txt, ce fichier contient juste : VSET1:2.25 (sans retour à la ligne, car avec ca ne fonctionne pas).
J'ai essayé :
-Serial1.print("VSET1:2.25");
-Serial1.println("VSET1:2.25");
-Serial1.write("VSET1:2.25");
-Serial1.print("VSET1:2.25",BIN);
-byte tension[10]={'V', 'S', 'E', 'T', '1', ':', '2', '.', '2', '5'};
for(int i;i<10;i++){
Serial1.write(tension*);* } J'ai trouvé en plus cette doc qui explique le protocole à suivre pour communiquer avec l'alimentation, disant qu'il faut envoyer un string, ce que je fais, mais je sèche ...
c'est peut-être un peu violent d'envoyer une commande toutes les 10 millisecondes. Pour commencer, tu devrais placer cette commande à la fin du setup() et ne rien faire d'autre ou mettre un while(1); à la fin de loop().
Sans compter que 10ms c'est environ le temps pour envoyer ta chaîne de caractères. Autant dire que tu dois saturer l'alimentation de messages (et peut-être même l'arduino au bout d'un moment)
peut être une absence de connection entre RX1/TX1 du Mega2560 (Serial1) et RX/TX du Max232 présent sur le shield. Ce shield permet, par cavalier, des liaisons avec D0 à D7, pas au delà , donc pas D18 ou D19 (Serial1).
Module basé sur un MAX232 permettant d’ajouter une liaison RS232 à une carte Arduino ou compatible.
Sélection des ports de communication par cavaliers (choix de deux broches de l’Arduino entre D0 à D7).
->Supprimer les 2 cavaliers et relier par fils RX à D19, TX à D18
(Autre solution : utiliser un SoftSerial utilisant les broches D2 à D7 et positionner en conséquence les 2 cavaliers)
peut être une absence de connection entre RX1/TX1 du Mega2560 (Serial1) et RX/TX du Max232 présent sur le shield. Ce shield permet, par cavalier, des liaisons avec D0 à D7, pas au delà , donc pas D18 ou D19 (Serial1).
->Supprimer les 2 cavaliers et relier par fils RX à D19, TX à D18
(Autre solution : utiliser un SoftSerial utilisant les broches D2 à D7 et positionner en conséquence les 2 cavaliers)
J'utilise deux câbles pour relier RX1 et TX1 de l'arduino Mega à la Shield RS232. J'ai essayé avec le SoftSerial, en choisissant D2(Rx) et D3(Tx), et j'ai obtenu le même résultat : pas de réponse de l'alimentation.
fdufnews:
Normalement le Serial1.print("VSET1:2.25"); devrait faire l'affaire puisque l'alimentation attend une chaîne de caractères.
Par contre,
void loop() {
Serial1.println("VSET1:2.25");
delay(10);
}
c'est peut-être un peu violent d'envoyer une commande toutes les 10 millisecondes. Pour commencer, tu devrais placer cette commande à la fin du setup() et ne rien faire d'autre ou mettre un while(1); à la fin de loop().
Sans compter que 10ms c'est environ le temps pour envoyer ta chaîne de caractères. Autant dire que tu dois saturer l'alimentation de messages (et peut-être même l'arduino au bout d'un moment)
Les 10 ms, c'est effectivement trop, j'ai ajouté un while(1).
Je ne comprends pas moi non plus pourquoi un simple Serial1.print("VSET1:2.25") ne suffit pas. Qu'est ce que l'hyperterminal fait de plus?
Si le shield n'est pas enfiché sur votre MEGA, comment l'alimentez vous? les GNDs sont ils reliés? quelle est la position des cavaliers et sur quelles pins avez vous branché vos fils?
J-M-L:
Si le shield n'est pas enfiché sur votre MEGA, comment l'alimentez vous? les GNDs sont ils reliés? quelle est la position des cavaliers et sur quelles pins avez vous branché vos fils?
kamill:
Bonjour,
Tu es sur de ton cable RS232? C'est un cable droit ou croisé?
Voici le lien du cable sur Conrad.
J'ai en plus essayé de croisé ou non le tx et rx, sans succès
J'ai essayé un code tout simple en C++ sur Xcode, et envoyé un portSerial << "VSET1:2.25"
Ça fonctionne tout bien.
Et j'ai trouvé sur un forum, un utilisateur qui a réussi à le faire fonctionner sur une arduino.