Problème de lecture d'un signal 4 kHz avec un RPi 3  [RESOLU]

Un lieu pour discuter des composants et de leur utilisation. Un passage obligé si vous devez interfacer votre Raspberry Pi avec le monde extérieur. On y trouvera aussi les cartes type commande de moteur pas à pas, continu, servo...

Modérateurs : Francois, smba38

spourre
Raspinaute
Messages : 735
Enregistré le : lun. 22 déc. 2014 16:50
Localisation : 67380 LINGOLSHEIM

Re: Problème de lecture d'un signal 4 kHz avec un RPi 3  [RESOLU]

Message par spourre » lun. 3 avr. 2017 23:57

Pinhapple a écrit :
spourre a écrit :Nota: Par définition, le front désigne le changement d'état du signal (montant, descendant). il est donc illogique de parler du front bas dans votre premier post. Ceci est uen remarque à titre pédagogique uniquement.
Effectivement, je pensais plutôt à "état haut" et "état bas" (respectivement 1 V et 0 V). ;)
...
En revanche, si je tente de lire mon signal B (pour rappel, un état haut de 250 µs toutes les 4,096 secondes, état bas le reste du temps), le programme pédale dans le vide et rien ne s'affiche dans la console, alors que je m'attendais à un front montant toutes les 4 secondes.
...
Auriez-vous une idée de ce qui peut coincer ? Est-ce que mon code Arduino me permet d'obtenir ce que je souhaite ?
Caramba! encore raté :twisted:
Un état logique n'a pas d'unité et ne se mesure pas en Volt. C'est 0 ou 1, true ou false ..
De plus, en logique CMOS donc entrées à base de comparateur, le 0 logique est vérifié pour toute tension inférieure ou égale à 1/3 Vdd soit 1.1 V dans notre cas (aux tolérances près).
Le signal haut correspond, quant à lui, à une tension égale ou supérieure à 2/3 Vdd, soit 2.2 V.
Entre ces deux tensions, l'état est indéterminé et peut soit, ne correspondre à aucun niveau logique (zone linéaire à très forte pente, utilisée dans certains montages, soit prendre n'importe quel niveau logique, en fonction de très nombreux facteurs (dispersion dans le lot, chronologie des signaux, perturbation externe ..) à la limite d'un système chaotique.

Pour la non prise en compte du signal qui, me semblait-il, avait une durée de 125 µs, je crains que cela confirme l’hypothèse émise dans un dernier post:
spourre a écrit : Le signal le plus problématique à traiter est certainement le signal B, non pas à cause de sa fréquence de récurrence mais à cause de sa durée.
...
Si, la durée est trop problématique, il faudra envisager de le prolonger avec un monostable externe par exemple.
!
Pour lever le doute, il faut modifier votre programme de génération pour en allonger la durée. Si passer à 250 µs, comme pour le signal A, résoud le problème, il faudra envisager la solution purement électronique que je vous avais suggérée.

Sylvain

Pinhapple
Raspinaute
Messages : 125
Enregistré le : jeu. 23 févr. 2017 15:53
Localisation : Rouen

Re: Problème de lecture d'un signal 4 kHz avec un RPi 3

Message par Pinhapple » ven. 7 avr. 2017 08:45

spourre a écrit :Caramba! encore raté :twisted:
:lol:
Je pense comprendre le principe, mais j'utilise les mauvais mots. Ça va venir ! :D
spourre a écrit :Pour lever le doute, il faut modifier votre programme de génération pour en allonger la durée. Si passer à 250 µs, comme pour le signal A, résoud le problème, il faudra envisager la solution purement électronique que je vous avais suggérée.
Avec les fonctions d'interruptions de WiringPi, j'arrive à obtenir ce que je souhaite : lire les impulsions régulières de mon signal A, et détecter l'unique impulsion par tour de mon signal B, le tout en Python avec une interface graphique (un segment qui balaie un cercle).

Merci pour toute l'aide apportée ! ;)
  • RPi 3 + LibreELEC / RPi 3 + RetroPie / RPi B+ + Sense HAT ou Framboisedorf ou module caméra
  • Arduino Mega, Uno, Nano
  • Freescale FRDM KL25Z

spourre
Raspinaute
Messages : 735
Enregistré le : lun. 22 déc. 2014 16:50
Localisation : 67380 LINGOLSHEIM

Re: Problème de lecture d'un signal 4 kHz avec un RPi 3

Message par spourre » ven. 7 avr. 2017 11:11

Pinhapple a écrit : Avec les fonctions d'interruptions de WiringPi, j'arrive à obtenir ce que je souhaite : lire les impulsions régulières de mon signal A, et détecter l'unique impulsion par tour de mon signal B, le tout en Python avec une interface graphique (un segment qui balaie un cercle).

Merci pour toute l'aide apportée ! ;)
Ah que voilà une bonne nouvelle :D

Sylvain

Répondre

Retourner vers « L'électronique et le Raspberry Pi »