Compteur pas cher (RS232 ou souris + PC ?)

Bonjour,

J'ai besoin de faire un compteur pour v=E9rifier le nombre de rotations d'un axe. C'est un truc =E0 faire "jettable" et qui doit couter le moins cher possible.

La solution que j'ai trouv=E9e en cherchant sur internet consiste =E0 utiliser un contacteur reed reli=E9 sur le boutton "=E9gal" d'une calculatrice. On fait "+1", et a chaque passage d'un aimant, le systeme appuye sur "=3D".

Ca semblerait proche de la solution ideale pour moi, sauf que le comptage est limit=E9 a 3 par seconde en gros, et que je serai plus proche de 5 ou 10Hz.

Je comptais donc adapter ca en utilisant :

-Peut etre un ensemble led + photo transistor a la place du contacteur (si celui-ci est la cause de la limitation de la fr=E9quence)

-La ligne CTS du port RS232 d'un PC =E0 la palce de la calculatrice (le seul avec le probleme qu'il faut la lire en permanance et ne pas rater de passage, sur un OS pas temps r=E9el ca peut poser un probleme)

-Un souris sur port PS ou usb de r=E9cup=E9ration, en court-circuitant le switch d'un boutton par le contacteur ou le photo transistor. Ensuite, une application developp=E9e en 5 minutes pour compter le nombre de clicks et l'afficher fera le reste. L'os fera le buffer.

Donc les questions :

-Est-ce que c'est r=E9alisable ou est-ce que j'ai rat=E9 quelque chose ?

-Quelle solution pour =E9mettre le signal ? (en prenant en compte le temps de r=E9ponse, l'adaptation des niveaux de sortie, et accessoirement le co=FBt). Une lampe de chevet, un photo transistor a 20 centimes et une vieilles souris ca couvre le besoin ?

Merci, Eliott.

Reply to
Eliott Gentil
Loading thread data ...

Salut Eliott Gentil,

Bon ... On est tous très collère contre toi... (moi et mes 102 touches + les touches spéciales qui servent à rien!)

On t'a déjà répondu et on t'a déjà donné des idées... Et toi tu reviens à la charge avec une question ... du style... j'ai pas eu le temps de répondre et lire vos réponses à la C##.

Tu prends un NE555 en multivibrateur-astable... tu mets ton switch sur le reset... et tu le branche à ton entrée "micro" de ta machine. Tu compts les beeps en logiciel avec un programme tout bête. Et pas besoin de beaucoup d'éléctronique... Un amateur pourra te donner un exemple de montages avec le NE555 déjà très documenté. On peut te donner les idées... mais pas la solution.

8-((
Reply to
GzavSnap

Bonjour,

Merci de m'avoir permis de trouver (non sans mal) le sujet "compte tour sur ecran" dont je n'=E9tais pas du tout l'auteur et dont le probl=E8me semblait =EAtre proche du mien.

Cependant, dans ce sujet, la question =E9tait de r=E9soudre le probl=E8me du comptage des appuis sur un switch. Il evoque pour la souris le probl=E8me du double-click intercept=E9 par l'OS et propose la solution int=E9ressante d'utiliser un clavier.

Bien que ces informations pourront m'=EAtre utiles, elles ne m'aident pas =E0 r=E9soudre le probl=E8me actuelle qui est, sachant que j'arrive =E0 d=E9tecter et =E0 compter l'appui sur un switch reli=E9 au port RS232, sur un bouton de souris ou sur une touche de clavier, d'arriver =E0 simuler un de ces =E9v=E8nements automatiquement =E0 chaque rotation d'un objet qui effectuera autour de 10 tours =E0 la seconde.

Le probleme sur le reset du NE555 est le meme : la carte son permettra de detecter l'arret du signal, mais encore faut-il envoyer un signal de reset =E0 chaque rotation d'un objet. C'est le passage de cette objet que je voudrais d=E9tecter (par rupture de faisceau, detection magn=E9tique, ou autre) pour activer le reset du NE555, l'envoie par le clavier la souris ou le joystick d'un message, ou le passage =E0 1 de la ligne CTS sur le RS232.

Et l=E0, j'ai juste besoin du nom d'un truc qui pourrait marcher pour aller lire bien sagmeent les ofrums et les datasheet :)

Merci, Eliott.

Reply to
Eliott Gentil

Salut,

Voià, j'ai fait un programme qui compte des signeaux sur la prise micro.

dispo. ici :

formatting link
(lire le readme.txt pour plus d'infos.)

Sinon, en théorie, on peut très bien mettre un switch sur une pile et relier le tout sur la prise micro... Mais cette prise n'aime pas trop les constantes continue de longue durée. Dans le cas ou le switch reste bloqué. On peut aussi tester le programme avec un lecteur wav... Vu qu'il y a deux entrée (droite et gauche), cela authorise deux switchs séparés... Plus "jetable" ... on peut pas! Xav.

Reply to
GzavSnap

Salut,

| Merci de m'avoir permis de trouver (non sans mal) le sujet "compte | tour sur ecran" dont je n'étais pas du tout l'auteur et dont le | problème semblait être proche du mien. Bon... ça passe pour cette fois ci ! ;-)

| Cependant, dans ce sujet, la question était de résoudre le problème |du comptage des appuis sur un switch. Il evoque pour la souris le |problème du double-click intercepté par l'OS et propose la solution |intéressante d'utiliser un clavier. "Nous" évoquions un problème de double-clique. Mais contournable par l'utilisation du deuxième bouton. Autre problème... l'OS lui même... car il faut deux souris. Il faut utiliser la commande de la deuxième souris... Car la première est dédiée au fenêtres windows. Si le curseur n'est pas sur la fenêtre... le bouton sera inactif. ... Clavier ??? (EO m'a encore bouffer des messages 8-( )

| Bien que ces informations pourront m'être utiles, elles ne m'aident |pas à résoudre le problème actuelle qui est, sachant que j'arrive à |détecter et à compter l'appui sur un switch relié au port RS232, sur |un bouton de souris ou sur une touche de clavier, d'arriver à simuler |un de ces évènements automatiquement à chaque rotation d'un objet qui |effectuera autour de 10 tours à la seconde. RS232 ??? "" -sur un switch relié au port RS232 - "" Un montage en direct ? ça marchera jamais ! La gestion de la RS est en assynchorne... ça peut pas marcher !

| Le probleme sur le reset du NE555 est le meme : la carte son |permettra de detecter l'arret du signal, mais encore faut-il envoyer |un signal de reset à chaque rotation d'un objet. C'est le passage de |cette objet que je voudrais détecter (par rupture de faisceau, |detection magnétique, ou autre) pour activer le reset du NE555, |l'envoie par le clavier la souris ou le joystick d'un message, ou le |passage à 1 de la ligne CTS sur le RS232. En NF pas en NO. (y a les deux sur les capteurs magnétiques)

| Et là, j'ai juste besoin du nom d'un truc qui pourrait marcher pour |aller lire bien sagmeent les ofrums et les datasheet :) La plupart du travail ce fait en logiciel ... Si tu achètes un joy USB à un euro tu pourras détourner le bouton "feu" et l'utiliser sans problèmes avec DirectX sous n'importe quel système. Et en plus y a pas d'électronique du tout.

|Merci, |Eliott. La souris est une fausse bonne idée car en logiciel, la programmation est plutôt compliquée... Il y a plus simple. Sutout que la RS232 est plutôt limitée et est urilisée pour le driver de souris principal et les modems... autre source de conflis matèriel. Il faut donc récupèrer le signal "brut" ... un 4016 sur une touche me semble un peu compliqué pour ce genre de chose. Xav.

Reply to
GzavSnap

En faît, si on peut... On prend une bobine avec un noyeau métalique. On fixe un aimant permanent sur l'axe, et on branche les bornes de la bobine à l'entrée micro. Bon, la bobine, ça peut être un écouteur bon marché. Le seul problème reste dans les comptages des signaux à basse vitesse... plus l'aimant passera rapidement plus le signal sera clair (de grande amplitude). A basse vitesse, le signal sera applati et pratiquement invisible lors de la comparaison. Il faudra donc utiliser une roue pour augmenter la vitesse de l'aimant en augmentent le rayon de l'axe.

Avec deux piles d'1.5v, une diode éléctro-luminécente , une photo-résistance et un miroir réflècteur sur l'axe... le problème ne se pose plus... ça peut marcher... Xav.

Reply to
GzavSnap

et ce genre de truc ?

formatting link
|66%3A2|39%3A1|72%3A1229|240%3A1318|301%3A1|293%3A1|294%3A50

Alain "Eliott Gentil" a écrit dans le message de news: snipped-for-privacy@l31g2000yqb.googlegroups.com... Bonjour,

J'ai besoin de faire un compteur pour vérifier le nombre de rotations d'un axe. C'est un truc à faire "jettable" et qui doit couter le moins cher possible.

La solution que j'ai trouvée en cherchant sur internet consiste à utiliser un contacteur reed relié sur le boutton "égal" d'une calculatrice. On fait "+1", et a chaque passage d'un aimant, le systeme appuye sur "=".

Ca semblerait proche de la solution ideale pour moi, sauf que le comptage est limité a 3 par seconde en gros, et que je serai plus proche de 5 ou 10Hz.

Je comptais donc adapter ca en utilisant :

-Peut etre un ensemble led + photo transistor a la place du contacteur (si celui-ci est la cause de la limitation de la fréquence)

-La ligne CTS du port RS232 d'un PC à la palce de la calculatrice (le seul avec le probleme qu'il faut la lire en permanance et ne pas rater de passage, sur un OS pas temps réel ca peut poser un probleme)

-Un souris sur port PS ou usb de récupération, en court-circuitant le switch d'un boutton par le contacteur ou le photo transistor. Ensuite, une application developpée en 5 minutes pour compter le nombre de clicks et l'afficher fera le reste. L'os fera le buffer.

Donc les questions :

-Est-ce que c'est réalisable ou est-ce que j'ai raté quelque chose ?

-Quelle solution pour émettre le signal ? (en prenant en compte le temps de réponse, l'adaptation des niveaux de sortie, et accessoirement le coût). Une lampe de chevet, un photo transistor a 20 centimes et une vieilles souris ca couvre le besoin ?

Merci, Eliott.

Reply to
Alain

Salut Eliott,

|La plupart du travail ce fait en logiciel ... |Si tu achètes un joy USB à un euro tu pourras détourner le bouton "feu" |et l'utiliser sans problèmes avec DirectX sous n'importe quel système. |Et en plus y a pas d'électronique du tout.

Voià, j'ai fait un programme qui compte des signeaux sur le joystick (USB...). Bon, c'est pas du DirectX mais du mmsystem standard... ça évite d'installer 50 még. sur le disque dur !

dispo. ici :

formatting link
(lire le readme.txt pour plus d'infos.)

Reply to
GzavSnap

Pourquoi se compliquer la vie a faire transiter ton signal par de multiples chemins si tu peux le recuperer directement sur un bit d'un port RS232 ? A partir de la, l'ecriture d'un soft Windows est du gateau. Si ton signal est, disons, de l'ordre de 100 Hz, tu ne perdras pas de pulse si ton logiciel s'attribue une priorite de thread assez elevee.

Reply to
Jean-Christophe

Oui, c'est là que tu nous mets ton Pic... 8-)) En fait, en relisant les questions de base... Avec "Inpout.dll", on peut lire directement le bit de validation d'état de la RS232... donc il suffit de le mettre à 5v sur NO/0v sur NF. La ligne data ne sera pas utilisé avec un 5v de commutation ! Cette entrée est une donnée indépendante et lisible par logiciel. C'est à creuser... Mais... effectivement ... cette solution dans la question mérite.

Reply to
GzavSnap

On Jul 12, 7:52 pm, "GzavSnap"

Non, non, tu appliques le signal a une pin d'entree du port RS232, (avec translation des niveaux du signal ou un switch vers +12V ou

-12V) donc pas de PIC, juste un RS232 et lecture du signal depuis le soft.

C'est pas du +12V -12V plutot que du +5V ?

J'etais parti sur du code C, pas du Basic ... mais si les fonctions de lecture des ports I/O sont dispos, no problemo :-) D'ailleurs avec cette solution tu eviteras les problemes relatifs a la gestion des clicks de souris par le systeme.

Et tu pourras monter plus loin en frequence, en augmentant la priorite de la thread de ton programme. SetThreadPriority( HANDLE hThread, int nPriority );

Reply to
Jean-Christophe

at

Bonjour =E0 tous,

pour infos, j'ai envoy=E9 2 exemples en VB, utilisant le port COM en entr=E9e, dans le thread "compte tour sur =E9cran"...

formatting link

vede ;O]

Reply to
vede

Salut,

Oui, avec un truc comme ça : dispo. ici :

formatting link
On peut y trouver un exemple d'utilisation très simple à base de la fameuse DLL "inpout32.dll". La meilleur DLL jamais consue dans l'univers. Basée sur la fonction INP et la OUT ... C'est vachement trop top et trop cool comme DLL...

Vive le "Inpout.dll" !!!

Oui... mais on à une alim sur la broche. ... On va pas mêtre un Max232 ! (en plus d'un pic!!!) ;-)

Heu... Je crois que la DLL "Inpout32.dll" peut ce programmer sous VB ! Pas sûre... il faut que je regarde CELA :

formatting link

Oui, mais il faut un trigger en front montant cf: compter4.zip Sinon, ça compte à chaque scan ... si on appuie longtemps. Dans ce cas on utiliser "Inpout32.dll"... Y a pas de raison que ça marche pas.

Oui, on intègre l'appel de "Inpout32.dll" (inp ou out) dans un scan qui dépend directement de la vitesse d'execution de la machine.

???? SetThreadPriority( HANDLE hThread, int nPriority ); c'est du language PIC ???? J'ai pas "SetThreadPriority" dans la DLL "Inpout32.dll" !!!

8-))))
Reply to
GzavSnap

GzavSnap wrote:.

Bonjour,

Je me suis laissé dire que vous exagériez un peu sur ce coup là ;) Je l'utilise moi aussi, mais elle n'a pas que des avantages : en plus de faire un fichier en plus a distribuer avec le programme, elle est très très lente ! Un collègue qui utilise beaucoup le port // l'a tracée, et l'a laissée tombée avant de programmer son propre driver ;)

L'idéal aurait été une petite api win32 pour autoriser les IN et les OUT matériels pour tel processus. Comme sous linux d'ailleurs !

(genre : if (ioperm(0x304, 10, 1)){ msg("ioperm() failled. Are you root ?\n\n"); return -1; } )

-- cLx

Reply to
cLx

Je regarde ça ! Ce serai bien de faire un réponse avec toutes ces infos. C'est didactique et ce serai le pied pour les enfants ... Système d'alarme avec bouton de souris etc... Xav.

Reply to
GzavSnap

On Jul 14, 5:51 pm, "GzavSnap"

Sauf que les fonctions input(port) et output(port,byte) peuvent s'appeler directement depuis un programme ecrit en assembleur Intel sur un PC : plus besoin de DLL pour cela, puisque ce sont ces fonctions que la DLL appelle.

Gamin, va !

M'enfin, y'a pas besoin de PIC, rogntudju ;-p

rs/RS232.zip

Une DLL peut s'appeler depuis n'importe quel language, a condition de pouvoir la loader et de connaitre les signatures des fonctions qu'on veut y appeler ? Je sais que tu le sais :-) Tu sais aussi qu'on peut *ecrire* soi-meme des DLL ?

Ben il te suffit juste d'un anti-rebond logiciel.

Hein ? Non, je parlais de la priorite que le systeme accorde a ton programme.

Grr, c'est du C Windows, pour ceux qui ecrivent des softs sous Windows, et qui ont besoin de changer a la volee les priorites des threads dans un soft multi-thread. :-p

Eh, tu sais que inpout32.dll n'est pas la panacee, justement parce-que tu pourrais la reecrire toi-meme ? ( et donc l'ameliorer, je n'en doute pas :-)

Bon, j'espere que tu prends bien tout cela, (moi, oui) et je trouve sympa ce que tu fais avec ce vieux ZX81 qui reste cher a mon coeur ... (soupir)

Des bruits courent comme quoi la NASA va utiliser le ZX81 comme systeme de controle pour le prochain module en partance vers la planete Mars ( avec bien sur, une version Zilog de inpout32.dll ... :-)

Reply to
Jean-Christophe

Je

re

lente !

=E9e tomb=E9e

s OUT

Arf, arf ... Laisse les jeunots s'enthousiasmer avec le Basic, juste le temps d'adopter un veritable language ;-)

Reply to
Jean-Christophe

Jean-Christophe se fendait de cette prose :

Oui, les ordinateurs de bord de la navette, à base de intel 4004, seront obsolètes dans dix ans :D

--
LeLapin
Reply to
LeLapin

Riez jeuneuse !!! Je maintiens : Le Turbo Pascal c'est Nul !!! Basic: "Rien ne sert de courrir, il faut arriver à point..." Merci pour les constructeurs de micros qui ont créé des machines qui rendent le Basic ... moins long ! Par ailleurs, il est moins facile de planifier les poses pipi... Avant, on avait le temps...

Reply to
GzavSnap

Argggh ! Moi qui voullais faire de l'humour !!! Pas grâve, je vais attendre sur Mars pour pouvoir démonter leur sonde le premier.

8-))
Reply to
GzavSnap

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.