Infrain ou Pulse

technopujades

Senior Member
Bonjour a tous,

Je cherche a connaitre le fonctionnement exact de Infrain et Pulse ou plutôt avoir une solution ...
J'explique, l'idée serait d'envoyer une fréquence de 38kHz sur une sortie relié à une Del IR en continu.
Le tout sans bloquer mon programme !
En gros je lance mon Infrain ou mon Pulse (en ns) puis je continu mon programme.
En gros, je veux que le pulse ou infrain dure plus longtemps que le temps de l'action ainsi je peux continuer mon programme ...
Petit schéma :

Sortie Del IR : --------------------------- ---------------------------
Programme : --------------------------------

Je ne sais pas si je suis clair ?

Merci de m'éclaircir ...
 

westaust55

Moderator
La commande de INFRAIN détecte des communications utilisant le protocole de Sony SIRC.
La commande de PULSIN mesure la durée d'une impulsion simple d'un signal entrant.

Si vous souhaitez créer un signal de 38 kHz pour conduire un IR LED une solution est d'employer la commande de PWMOUT.

Bien qu'en anglais vous puissiez souhaiter aller voir l'information que j'ai précédemment signalée ici :
http://www.picaxeforum.co.uk/showthread.php?17303-Infrared-(IR)-Communications-Basic-Tutorial
 

PieM

Senior Member
J'explique, l'idée serait d'envoyer une fréquence de 38kHz sur une sortie relié à une Del IR en continu.
Le tout sans bloquer mon programme !
Bonjour,

Effectivement il faut utiliser la commande PWMOUT car elle est hardware, donc n'interfère pas avec un programme (enfin, pas pour tout!).
Dans le cas d'un Picaxe à 4MHz, il faut utiliser par exemple la commande pwmout B.2, 25, 53 en supposant que la sortie soit sur B.2. Un signal à 38 kHz est généré avec un cycle de 50%.
 

technopujades

Senior Member
Impec ! C'est exactement les réponses que je voulais avoir.
Un gros merci à vous 2 !
Je teste dès la rentrée sur un petit 08M ... (avec le PWM sur la sortie 2 comme indiqué sur la doc).

Question supplémentaire juste pour information personnelle ...
Pour couper mon PWMOUT, en lisant la doc c'est PWMOUT 2, OFF pourquoi un simple LOW 2 (si sortie 2) ne suffit pas ... ?
 

PieM

Senior Member
Question supplémentaire juste pour information personnelle ...
Pour couper mon PWMOUT, en lisant la doc c'est PWMOUT 2, OFF pourquoi un simple LOW 2 (si sortie 2) ne suffit pas ... ?
A priori, ça doit marcher mais ce n'est pas logique ! la commande PWM se fait en arrière tâche, sous le contrôle d'un circuit interne spécifique contrôlé par un timer. Seule la commande PWMOUT ,.., OFF va désactiver ce timer.
Par exemple la commande SERVO est incompatible avec PWM (sauf dans certaines conditions sur certains M2 et 28X2), car utilisant toutes deux ce timer. Donc il est nécessaire dans ce cas par exemple de désactiver le PWM.
 

technopujades

Senior Member
Merci pour tes explications toujours aussi claire !
Du coup tu me fais souler une autre question ...
En utilisant le PWM, j'utilise un timer dédié à cela ou c'est le même qui est utilisé dans la fonction TIMER ?
En gros, sur un 08M puis-je utiliser le PWM et le TIMER en même temps ?
 

PieM

Senior Member
Merci pour tes explications toujours aussi claire !
Du coup tu me fais souler une autre question ...
En utilisant le PWM, j'utilise un timer dédié à cela ou c'est le même qui est utilisé dans la fonction TIMER ?
En gros, sur un 08M puis-je utiliser le PWM et le TIMER en même temps ?
En fait sur un 08M2, tu vas utiliser la variable TIME (type word) qui est seule disponible sur les M2.
La fonction TIMER (SETTIMER en fait) n'existe que pour les Picaxes supérieurs au 20X2.

TIME est incrémentée toutes les secondes , boucle après 65535 secondes, et peut être initialisée par une valeur quelconque au sein du programme (Time = w10 par ex.) .
C'est indépendant du PWM.
 

technopujades

Senior Member
OK, ça ne fait pas mes affaires tout ça !
Je voulais envoyer sur la sortie 2 du 08M le PWM calé sur 38kHz (pour un piloter une del IR).
Et sur une entrée mettre le récepteur IR.
Les mettre côte à côte : Del IR et récepteur IR afin d'envoyer le signal IR directement au plafond, jusqu'à qu'une main humaine soit mise devant à environ 10 cm, le signal IR aurait alors réfléchie sur la main et aurait atteint le récepteur.

L'idée était de programmer un truc du style :
Envoyer PWM sur la del IR, puis avec l'aide d'un timer se poser la question si ça fait plus de 1 seconde que le récepteur reçoit (ce qui indique que la main est bien présente depuis plus de 1s).
 

PieM

Senior Member
OK, ça ne fait pas mes affaires tout ça !
Je voulais envoyer sur la sortie 2 du 08M le PWM calé sur 38kHz (pour un piloter une del IR).
Et sur une entrée mettre le récepteur IR.
Les mettre côte à côte : Del IR et récepteur IR afin d'envoyer le signal IR directement au plafond, jusqu'à qu'une main humaine soit mise devant à environ 10 cm, le signal IR aurait alors réfléchie sur la main et aurait atteint le récepteur.

L'idée était de programmer un truc du style :
Envoyer PWM sur la del IR, puis avec l'aide d'un timer se poser la question si ça fait plus de 1 seconde que le récepteur reçoit (ce qui indique que la main est bien présente depuis plus de 1s).
Et bien, tu peux !
dès que tu détectes une réception, tu utilise une pause de 1 seconde et tu regardes si tu as encore la réception au bout de la seconde.

Sinon, plus rigoureux, dès une détection, tu mets la variable TIME à 0 et tu fais un
do while TIME <1
(test reception)
si pas de réception > sous programme détection pas OK
loop
sous programme détection OK
 

technopujades

Senior Member
Et bien, tu peux !
dès que tu détectes une réception, tu utilise une pause de 1 seconde et tu regardes si tu as encore la réception au bout de la seconde.

Sinon, plus rigoureux, dès une détection, tu mets la variable TIME à 0 et tu fais un
do while TIME <1
(test reception)
si pas de réception > sous programme détection pas OK
loop
sous programme détection OK
Voila, c'est exactement ce que je voulais faire mais comme tu me l'indique le SETTIMER n'existe pas sur le 08M ...
 
Top