Popular Posts

3/29/2013

Mesure de la longueur d'un signal de réception

Le but de ce petit programme est de mesurer la longueur d’un signal de récepteur de télécommande de modèle réduits et le traiter à la convenance pour des applications  diverses tel que des sorties en tout ou rien pour commander un relais de puissance, un moteur électrique, des éclairages ou comme pour moi des inflammateurs d’artifices.

Les signaux issus des récepteurs actuels sont en principes de même forme et de même longueur pour une même position de l’organe de comme attitré à la voie sur l’émetteur.

Dans une période de 20 ms (50 Hz)  ce signal varie de 650 à 2400 µs selon la  position de l’organe de commande de la voie de l’émetteur et de la programmation de la largeur du signal dans l’émetteur si celui-ci est doté de cette fonction, qui fera que l’appareil branché sur cette voie du récepteur variera de position pour un servo, de vitesse pour variateur ou régulateur ou d’état tout ou rien pour un train rentrant, un éclairage etc.

Voyez aussi le programme et réalisation  très intéressante de Michel LECLERC  intitulé ‘Servo’ dans la rubrique ‘Vos programmes’.

C’est cette dernière fonctionnalité qui sera traitée dans cette application. Il s’agit de mettre l’une après l’autre des 4 sorties du port GP (PIC 12F675) à 1 pendant 0.25s par l’action d’un front montant sur l’entrée GP2 configurée interruption.

Le programme démarre par la mise à zéro des différentes variables et drapeau suivit de l’initialisation du port GPIO permettant de modifier le registre de ce port non seulement en sorties  mais aussi en entrées. Hors du commun, le port GP du PIC 12F675 est par défaut constructeur configuré en entrée Analogique !

Merci à Michel LECLERC de m’avoir aider à éclaircir de cas particulier.

Puis la valeur analogique de la longueur du signal traiter en mode interruption, est comparée à une valeur pour décider des fonctions suivantes.

Le but est de modifier les sorties GP0-1-3-4 pendant 0.25s à chaque passage au-delà de la valeur de comparaison (25 pour ce cas, >50% su signal).

La mesure de la longueur du signal est réalisée dans les sous programme en interruption sur GP2 (GP2_INT). Lors du front montant la valeur ‘Mesuresignal’ est incrémentée toutes les 50µs ce qui donnera une valeur représentative de la longueur du signal et enfin une valeur de comparaison ‘Valeursignal’. Pas compliqué n’est ce pas!

Pour les développeurs voulant plus de précision dans cette mesure réduiront cette temporisation de 50µs au plus court par des NOP(s) pour aller à des valeurs > à 255 en optant pour un mot de plus de 8 bits.

No comments:

Post a Comment