Transmission continue d'une entrée vers une sortie?

Bonjour à tous,
Je cherche depuis plusieurs jours une solution à mon problème et je ne trouve pas, alors je me tourne vers vous.

Je cherche à laisser passer quand je le souhaite un signal binaire (a priori 4MHz) depuis une entrée de ma carte Arduino vers une sortie, mais pouvoir aussi faire d'autres choses en même temps.

Le problème c'est que si je fais digitalWrite(sortie, digitalRead(entrée)), ça marche, mais que je ne peux rien faire d'autre.

Et j'ai essayé de profiter du fait que l'Arduino Uno était à 16MHz pour faire "rapidement" d'autres choses entre 2 impulsions, mais ça ne marche pas, car je pense que pas mal d'impulsions sont loupées par l'Arduino. La solution serait sans doute d'avoir une horloge qui tourne à 100 ou 200MHz, mais naturellement ça n'est pas possible.

Est-ce que vous savez comment ça peut se faire?
J'aimerais éviter le rajout de transistors externes.
Y a-t-il une solution interne à l'Arduino pour faire ça? En gros utiliser les composants internes au microcontroleur pour relier quand je le souhaite l'entrée à la sortie, et pouvoir faire autre chose?

Merci d'avance pour vos idées.

J'espère avoir compris :

  1. tu cherche à autoriser ou à interompre une transmission de donnée.
  2. tu n'as pas pas besoin de traiter ces données.

Si c'est cela une porte Nand 74HC00 suffit.

Les Nand sont inverseuses, pour retrouver le signal non inversé on en met deux en série.

Nand n: 1

  • sur une entrée tu appliques les données.
  • sur l'autre entrée tu applique la commande provenant de l'arduino.

Nand : 2
Tu appliques la sortie de la nand 1 sur les deux entrées de la nand2 (il n'est jamais bon de laisser une entrée en l'air).

La sortie délivre le signal interruptable par l'arduino.

Question : qu'elle est la fréquence du signal que tu veux commander ?

Merci pour cette réponse, oui tu as bien compris.
En fait je cherche juste à laisser passer le signal quand je le souhaite, et parfois à le bloquer.

C'est un signal issu du microcontroleur d'une chaîne Hifi, et je veux grâce à l'Arduino simuler l'appui sur les touches de commande (=simples boutons poussoirs ou molette à tourner).
Sachant que le microcontroleur fonctionne à 4MHz, et que c'est un signal qu'il s'envoie à lui-même: en fonction de l'arrivée ou non du signal sur ses broches il en déduit si oui ou non on a appuyé sur le bouton. Mais pour certains boutons (sortes de molettes à tourner), il teste en permanence la position : il regarde à chaque cycle si elle est par exemple en position 3, et si elle passe ensuite en 4 ça veut dire "Preset UP", et si elle passe en 2 ça veut dire "Preset DOWN". Du coup il faut à chaque impulsion lui envoyer un signal en retour, sinon il fait n'importe quoi :frowning:

Tu parles de portes NAND, j'avais aussi pensé à des transistors : Arduino sur la base pour la commande, entrée sur l'émetteur, base sur le collecteur?

Mais je n'ai pas testé car je me demandais si avec l'Arduino seule c'était possible : du genre : "connecte l'entrée numérique à la sortie numérique et reste comme ça jusqu'à ce que je te dise d'arrêter". Ça existe ce genre de fonctionnement sur Arduino?

Un transistor seul c'est de l'analogique, il va falloir gérer.
Si tu as un vrai signal numérique le plus simple c'est de prendre un circuit numérique qui est conçu pour.
Bonne sensibilité et remise en forme du signal.
Tu dois en trouver par paquet de 5 boîtiers pour moins de 1€ (en fait tu payera principalement l'emballage).

Pour la fréquence du signal une 74HCxxx est plus que très largement suffisante.

joebouvier:
...

Mais je n'ai pas testé car je me demandais si avec l'Arduino seule c'était possible : du genre : "connecte l'entrée numérique à la sortie numérique et reste comme ça jusqu'à ce que je te dise d'arrêter". Ça existe ce genre de fonctionnement sur Arduino?

Bonsoir
+1 à ce stade avec l’approche de 68tjs

tu semble avoir déjà fait un peu "un peu de bonne retro" sur ton projet ? 8)

C'est "souvent" plus simple ici d'exposer "+/- exhaustivement, l’état d'avancement de tes travaux" :grin:

Le plus gros risque pour toi , à cette période sur le forum est d’être "catalogué" ... STIxy :wink:

Mais je n'ai pas testé car je me demandais si avec l'Arduino seule c'était possible : du genre : "connecte l'entrée numérique à la sortie numérique et reste comme ça jusqu'à ce que je te dise d'arrêter". Ça existe ce genre de fonctionnement sur Arduino?

Pour info, oui ça existe. Avec les fonctions "type" arduino, ce serait trop lent pour ressortir du 4 MHz, mais moyennant une manip avec un DMA (direct memory address) sur un uc qui a cette option et suffisamment rapide, ça se fait.

Dans ton cas cependant, la solution hardware proposée plus haut semble toutefois bien mieux adaptée :slight_smile: .

Salut à tous et merci pour ces pistes à creuser!

Pour répondre à Artouste j'ai essayé de faire sommaire pour ne pas écrire une tartine trop indigeste!
Je cherche à rajouter le Bluetooth et à pouvoir le commander via les boutons de ma chaîne : c'est pour ça que j'ai besoin d'intercepter le signal quand j'en ai besoin, ou à le laisser passer quand je n'en ai pas besoin. C'est totalement basique en terme de complexité du code à écrire (si appui sur play, transmission de play, si apppui sur FWD et Bluetooth en marche, transmission de FWD au Bluetooth...), en dehors de ce problème sur lequel je suis tombé :wink:

Par contre je n'ai pas compris ce qu'était un STIxy?

STIXX ?

Comme tu peux le constater nous sommes envahi en ce moment par des lycéens de terminale STI2D qui ont un projet coefficient 7 ou 8 pour le bac.

En France tous les ans c'est quelques dizaines ou centaines de milliers de lycéen STI2D qui passent le bac sans qu'on ait rien à leur reprocher, ils sont sérieux et ils travaillent.

Nous ne faisons pas de stigmatisation sur les STI2D en général mais il se trouve qu'une minorité d'entre eux envahi ce forum de mars à juin parce que ce sont des branleurs qui cherchent à ce qu'on fasse leur travail.
Cerise sur le gâteau cette année en plus d'être branleurs ils sont menteurs et ils essayent de se planquer en faisant croire à des projets personnels mais comme ils sont encore plus nuls que nuls nous le détectons assez facilement.

Actuellement un gros noyau de contributeurs ne supporte plus, d'où au mieux une absence de réponce et au pire des réactions un peu raides.
C'est pour éviter la confusion qu'il est préférable de bien décrire son projet.

Ah ok je comprends mieux.
Moi je suis aussi un nul mais malheureusement je ne suis pas un STI puisque je commence à avoir quelques cheveux blancs :slight_smile:

Merci en tout cas à tous pour les réponses, j'ai regardé ce qu'étaient les DMA, et en ai conclu que ce n'était pas ni sur mon Arduino ni sur un Attiny.

Donc effectivement, même si ça m'embête de rajouter des composants externes, je vais plutôt partir sur des portes logiques, plutôt que de me lancer dans l'étude de uC ultraperformants dont je n'utiliserai qu'un millionième des capacités pour mon application basique.