Go Down

Topic: usb relai pour commander electro-aiment (Read 1 time) previous topic - next topic

driven

Bonjour à tous

étant un peu novice sur le sujet, je me permet de vous demander conseil:

Je souhaiterais, commander une electro-aiment (tiroir caisse) via un raccourci sur le bureau

l'electro aiment en question est du type 24v 300ma
j'ai une alim 24v en 3A (c'est la seule que j''avais sous la main)
j'ai mis un interrupteur style bouton d'éclairage 220.

ca fonctionne (pas compliqué me direz vous)

Seulement je voudrais maintenant actionner mon electro aiment via un raccourci sur mon bureau
je pensais donc utiliser une carte relais usb du style:
http://www.gce-electronics.com/fr/nos-produits/22-carte-usb-2-relais-x220.html
http://www.robot-electronics.co.uk/htm/usb_rly02tech.htm

je ne sais si ces cartes sont le mieux pour ce genre d'application surtout dc au niveau du voltage de l'alim
peut être en avez vous d'autre a me conseiller.

et puis surtout comment la piloter:
un raccourci bureau de type cmd ou bat
en quel langage l'écrire
il faudrait aussi mettre un timer du style 1s le temps que l'ectro-aiment puisse libérer mon tiroir


merci de vos réponses
cordialement

patg_

Bonjour,
Ca a l'air adapté au besoin.
Ca se commande via un port série virtuel donc avec à peu près n'importe quoi (automatisation d'un émulateur de terminal, script WSH (Windows Scripting Host), ou toute autre chose.
Mes Arduineries: http://breizhmakers.over-blog.com/

driven

c'est bien ce que je pense,


Sur ce lien, il décrive les commandes pour actionner le relais
http://www.robot-electronics.co.uk/htm/usb_rly02tech.htm

dec   hex
90   5A   Get software version - returns 2 bytes, the first being the Module ID which is 10, followed by the software version
91   5B   Get relay states - sends a single byte back to the controller, bit high meaning the corresponding relay is powered
92   5C   Set relay states - the next single byte will set all relays states, All on = 3 (xxxxxx11) All off = 0
100   64   All relays on
101   65   Turn relay 1 on
102   66   Turn relay 2 on
110   6E   All relays off
111   6F   Turn relay 1 off
112   70   Turn relay 2 off


donc ce serait ces deux fonctions
101   65   Turn relay 1 on
timer 1s
111   6F   Turn relay 1 off

Mais comment les appeller?

Artouste



Sur ce lien, il décrive les commandes pour actionner le relais
http://www.robot-electronics.co.uk/htm/usb_rly02tech.htm
...

Mais comment les appeller?

Comme repondu par patg
Ce "truc" est vu comme un port com, il suffit donc d'envoyer vers le port com les instructions
c'est à toi de choisir le soft (ou d'implémenter dans ton application la partie logicielle) qui va discuter avec le port com

patg_

Ca revient à envoyer respectivement les caractères e puis o.
Pour commencer tu peux utiliser un émulateur de terminal genre putty, le connecter sur le port série et envoyer manuellement ces caractères. Ca devrait allumer puis éteindre le relai 1.

Ensuite, soit tu te fais un petit logiciel qui envoie ces commandes sur le port série, soit tu automatises un émulateur de terminal. Je ne connais pas d'émulateur de terminal qui puisse simplement exécuter une séquences d'actions puis se refermer tout seul. Mais on peut bricoler avec AutomateIt ou le Windows Scripting Host pour piloter un truc genre putty par exemple. C'est pas super-élégant mais ça fonctionnerait.
Mes Arduineries: http://breizhmakers.over-blog.com/

driven

merci de vos reponses

étant néophyte, j'essaye de demeler ts ca,
par petit logiciel tu entend un executable?

j'ai trouvé ce bout de code

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(void) {

char data,st;
FILE *pFile;
pFile = fopen("/dev/ttyACM0", "ab+");
if (pFile == NULL) { printf("io error\n"); exit(2); }


data = 0x5b; //get state
//data = 0x5a; //get firmware id
printf("write: %u \n", data);
fwrite(&data,1,1,pFile);
fflush(pFile);
fread(&st,1,1,pFile);
printf("read: %u \n", st);
fclose(pFile);
}


J'y comprend pas grand chose à vrai dire, mais ca ressemblerait a du C
faut surement le modifier je l'ai trouver sur ce lien
http://www.robot-electronics.co.uk/forum/viewtopic.php?f=5&t=506&p=1127&hilit=rly02#p1127

Apres il faudrait que je télécharge un logiciel comme: devcpp
j'y copie le bout de code, je lui demande de compiler
et hop j'ai un exe, plus qu'a placer un raccourci sur mon bureau

qu'en pensez-vous?

patg_

T'es sous Windows ou Linux?
Si tu ne connais pas le C c'est pas forcément simple à faire.
Je viens de faire un script AutoIt qui semble marcher (j'envoie juste 2 caractères à mon Arduino espacés d'1s et je ferme le terminal).

En gros:
Tu télécharges putty.exe (émulateur de terminal):
http://www.putty.org/
Tu crées une configuration de type "Serial" pour dialoguer via ton port COMx (où x est le numéro du port  ;) )
u
Ensuite tu installes AutoIt:
http://www.autoitscript.com/site/autoit/

Et tu crées un script du genre à l'aide de l'éditeur de script:


Code: [Select]
; lance le terminal
Run("D:\temp\Putty.exe -load COM10")
dim $w

; attend activation de la fenêtre de démarrage
$w = WinWaitActive("[CLASS:PuTTY]")

;active relai 1
Send("e")
Sleep(1000)

;désactive relai 1
Send("o")
;ferme le terminal
WinKill($w)


Ensuite tu peux exécuter ce script depuis l'éditeur pour le tester, ainsi que le transformer en exécutable.
Reste plus qu'à mettre un lien sur le bureau vers cet exécutable.

C'est pas super-élégant de mon point de vue mais pour quelqu'un qui ne connait pas le développement ça reste le plus simple.
(Si tu veux essayer de développer un tel soft d'envoi de données au port série et que tu es sur windows je te conseillerais plutôt Visual Studio Express, en faisant une appli .Net en ligne de commande)

Mes Arduineries: http://breizhmakers.over-blog.com/

Go Up