Comment puis-je convertir la sortie d'un interrupteur momentané en une impulsion à la poussée et une impulsion à la libération?

8

Le titre dit à peu près tout.

J'ai une idée à essayer avec un circuit de différenciation d'amplificateur opérationnel et un pont de diodes, mais je vole à l'aveugle.

J'essaie également d'accomplir cela sans micro-contrôleur.

bruit
la source
Entre chiphacker et mes têtes @tcmaker, j'ai un tas de solutions potentielles. J'ai mijoté quelques épices dans SPICE et il y a certainement du potentiel, j'ai juste besoin de voir si elles vont correspondre à mon virage. Merci pour les réponses à tous! J'essaierai de publier des mises à jour sur mes progrès.
bruit
Voici une solution écrite par un de mes amis, une explication très détaillée et comprend un schéma LTSpice. uptownmaker.blogspot.com/2009/11/pulses-on-pushbutton.html
bruit

Réponses:

8

Porte XOR:

texte alternatif

J'ai utilisé le NC7SZ58 pour cela, qui est bon marché (0,04 $) et minuscule et possède des entrées de déclenchement Schmitt, de sorte que les impulsions sont à peu près de la même longueur (qui peuvent être définies par les valeurs RC).

endolith
la source
Peut-être un passe-bas RC sur les deux entrées, mais des constantes de temps différentes, pour le rebond?
DarenW
8

Si vous souhaitez une belle solution analogique, il y a ce circuit utilisé par les simulateurs de vol:

"Désolé, les nouveaux utilisateurs ne sont pas autorisés à utiliser les tags d'image"
(source: simprojects.nl )

Le schéma montre la disposition d'un interrupteur à bascule, mais il pourrait facilement être remplacé par un momentané.

Chaque fois que le commutateur change de position, le condensateur doit se charger et se décharger. Pendant ce temps, une tension se développe aux bornes des contacts du relais, fermant l'interrupteur. Une fois le condensateur chargé, le relais se désactive à nouveau.

Plus d'informations ici: http://www.simprojects.nl/toggle_to_momentary.htm

Anglais Dave
la source
2
Celui-ci est intelligent pour utiliser le nombre minimum de composants, juste un seul condensateur et un relais. L'inconvénient est que le relais est assez grand, mais le demandeur d'origine pourrait être en mesure de trouver des états plus petits ou à semi-conducteurs qui fonctionnent de la même manière (peut nécessiter l'ajout d'une résistance supplémentaire pour ralentir le temps de charge / décharge du condensateur)
davr
6

Selon le montant que vous souhaitez investir dans l'apprentissage, la solution anti-rebond, xor, flip-flop serait la plus "basique". Le 555 est un excellent circuit pour en savoir plus. Voici une page qui parcourt un grand nombre d'applications pour celle-ci: http://www.kpsec.freeuk.com/555timer.htm

Si vous recherchez "Edge-triggering" dans la section monostable, vous trouverez ce qui semble être la solution que vous recherchez.

jkopel
la source
2
Ne dites pas que "tout devrait être fait sur un uC", mais j'adore le 555 et il se trouve que j'en ai un tas, merci!
bruit
6

Vous pouvez utiliser une simple porte xor et l'une des entrées connectées directement au commutateur, tandis que l'autre entrée via un circuit RC qui fournit le retard. Cela fonctionne bien comme un "détecteur de bord", mais il ne fait aucun rebond - vous ne l'avez pas demandé :-). C'est probablement le moyen le moins cher si vous avez déjà une porte xor inutilisée dans votre conception.

icabrindus
la source
5

Autoriser un 555 mais rejeter un microcontrôleur est stupide, vous pouvez obtenir un microcontrôleur dans le même package ou plus petit qu'un 555, et en bonus, vous pouvez effectuer un anti-rebond dans le logiciel, en économisant certains composants supplémentaires qui seraient nécessaires pour anti-rebond du signal pour le 555. La même chose vaut pour la bascule D et la porte XOR ... c'est 2 circuits intégrés dont vous avez besoin, en plus des composants anti-rebond.

Quelle est votre raison de vouloir éviter un microcontrôleur? Les plus simples sont 1 $, probablement beaucoup moins en grande quantité. Si c'est de l'espace, il y a un AVR TSSOP à 8 broches qui est comme 3x5 mm, assez petit.

davr
la source
Je suppose que M. Noise nous demande de l'aider dans ses devoirs et qu'il n'est pas autorisé à utiliser la solution évidente.
SiliconFarmer
2
La principale raison est que j'essaie d'apprendre quelque chose sur l'électronique. Je l'ai déjà fait en code sur lequel je peux me rabattre si besoin est ... et non ce n'est pas un devoir, juste un petit virage pour mon divertissement et mon édification. Merci pour la réponse, cela me donne une direction vers laquelle travailler.
bruit
C'est raisonnable, si vous spécifiez que dans vos questions à l'avenir, les gens comprendront mieux.
davr
2
Il n'est pas non plus déraisonnable d'éviter un microcontrôleur en raison des coûts de création / maintenance / test du code. C'est quelque chose qui m'a traversé la tête en tant qu'ingénieur junior, mais que j'ai très bien compris grâce à mon expérience. La mentalité «oh, nous pouvons simplement le faire dans le logiciel» peut parfois vous causer des ennuis lorsque vous devez prouver que quelque chose va fonctionner.
Jason S
1
Je suis un peu confus quant à la façon dont l'utilisation d'un ordinateur miniature et d'un logiciel pour implémenter une fonction logique simple est "la solution évidente".
endolith
3

Il pourrait y avoir un moyen de le faire avec une minuterie 555 configurée en une seule fois.

Une bascule D et une porte XOR le feront également. Une logique exacte laissée au lecteur comme exercice.

SiliconFarmer
la source