Programme de détection infra-rouge (Résolu)

Forum de support pour les locuteurs de la langue française qui souhaitent écrire dans leur langue maternelle.

Moderator: Benj

Post Reply
Philbert Pascal
Posts: 80
Joined: Fri Jul 20, 2012 8:55 am
Location: Chambly (France)
Been thanked: 4 times
Contact:

Programme de détection infra-rouge (Résolu)

Post by Philbert Pascal »

Bonjour aux utilisateurs de Flowcode,
je cherche une solution pour fabriquer une détection infra-rouge. Je veux écrire le code dans Flowcode. Je veux moduler une diode IR à 38Khz, j'ai deux TSOP1138 (récepteur/démodulateur/amplificateur).
Je pense savoir comment faire pour éteindre et allumer ma Led à 1/76000s mais je ne trouve pas comment simuler mes TSOP1138 qui détecteront le signal.
L'idée est de détecter les deux entrées RE2 et RD7 dans la boucle des 38Khz. Mais je ne sais pas si cela fonctionnera.
Ce composant n'étant pas dans la liste Flowcode, dois-je le remplacer par un autre composant pour le simuler?
J'ai bien trouver un programme en C avec son .Hex, mais il ne veut pas fonctionner lorsque je test mon pic (le quartz reste sourd). De plus je dois pouvoir utiliser 2 récepteurs TSOP (Haut et Bas) qui activeront deux entrées sur le pic (16F84A entrée RE2 et RD7).
Si quelqu'un à déjà réalisé cela sur Flowcode, son aide me sera précieuse.
Merci d'avance.
Pascal

Hello users Flowcode,
I seek a solution to make an infrared detection. I want to write code in Flowcode. I want to modulate an IR diode 38 Khz, I have two TSOP1138 (receiver / demodulator / amplifier).
I think I know how to switch off and on my Led 1/76000s but I can not find how to simulate my TSOP1138 that will detect the signal.
The idea is to detect both inputs and RD7 RE2 in the loop of 38 Khz. But I do not know if it will work.
This component is not in the list Flowcode, should I replace it with another component to simulate?
I did find a C program with her. Hex, but it will not work when I test my peak (quartz is deaf). Also I have to use two receivers TSOP (up and down) that will activate two inputs on the peak (16F84A entry RE2 and RD7).
If someone already done this on Flowcode, his help will be invaluable to me.
Thank you in advance.
Pascal
Last edited by Philbert Pascal on Sat Feb 08, 2014 5:45 am, edited 2 times in total.

Spanish_dude
Posts: 594
Joined: Thu Sep 17, 2009 7:52 am
Location: Belgium
Has thanked: 63 times
Been thanked: 102 times
Contact:

Re: Programme de détection infra-rouge

Post by Spanish_dude »

- Un transmetteur IR à 38kHz grace à un PIC
- Deux récepteur IR 38kHz sur un (autre) PIC

C'est bien ça ?

Un bon site qui explique l'IR (en anglais) : http://www.sbprojects.com/knowledge/ir/index.php

Tout se que tu dois faire c'est envoyé un certain 'code' via ton transmetteur.
Ton récepteur lui décode le code et si ça correspond au code défini pour allumer/éteindre tel et tel LED, tu exécutes la fonction associé avec se code.

Générer du 38kHz c'est assez simple, soit avec un timer, soit avec un delay et de là contrôler une sortie.

Le récepteur décode le signal modulé avec une fréquence de 38kHz en un signal de 0V. Quand il n'y a pas de données reçu, le signal est de 5V (faudra peut-être rajouter un pull-up).
Tout se que tu dois faire c'est vérifier le signal reçue. Disons que tu envoi ton code avec le protocole RC5, tu dois juste le décoder avec ton PIC.

Par contre j'ai pas compris pourquoi tu veux deux récepteurs. Un est suffisant.

Nicolas

Philbert Pascal
Posts: 80
Joined: Fri Jul 20, 2012 8:55 am
Location: Chambly (France)
Been thanked: 4 times
Contact:

Re: Programme de détection infra-rouge

Post by Philbert Pascal »

Bonjour Nicolas,
je te donne des précisions. J'ai 2 LED infra-rouge qui fonctionne en paralléle à 38Khz. Une en bas de l'escalier et l'autre en haut. 2 Recepteur TSOP 1138 capte le signal en haut et en bas de l'escalier.
Si c'est celui du bas qui détecte, je lancerai les programme partant du bas, et si c'est celui du Haut, les programme partant du haut. Le pic gérant les programmes est le 16F877 que je viens de terminer de
programmer. Le signal que je reçois n'a aucun importance. Il faut simplement que le TSOP me transmette un état o ou 1.( réflexion des signaux émis par les LED IR)
J'ai un second pic, un 16F84A qui gere la détection, avec les LED IR et les deux recepteurs TSOP 1138. J'ai actuellement remplacer mes deux TSOP, par 2 poussoirs dans Flowcode pour la simulation.
Je suis en cours de programmation de ce dernier. J'ai réussi la simulation dans Flowcode, mais à la compilation j'ai une erreur .
Je te joins mon code d'erreur ainsi que le fichier Flowcode. Si tu as une idée, n'hésite pas.
Je te remercie pour toute tes informations et pour ton aide, qui me permettra de terminer mon projet.
Merci d'avance et bonne fin de weekend
Pascal.


Hello Nicolas,
I give you details. I have two infrared LED that operates in parallel to 38 Khz. A bottom of the stairs and the other above. 2 Receiver TSOP 1138 picks up the signal up and down the stairs.
If this is the bottom one that detects, I will launch the program from the bottom, and if this is the High, the program from the top. The peak is the program manager 16F877 I just finished
schedule. I receive the signal has no significance. It is simply that the TSOP I transmit a state o or 1. (Reflection signals from the IR LED)
I have a second peak, which manages a 16F84A detection with IR LEDs and two receivers TSOP 1138. I currently have my two TSOP replaced by two buttons to simulate in Flowcode.
I am in the process of programming it. I succeeded in simulating Flowcode, but I have a compilation error.
I am enclosing my error code and the file Flowcode. If you have an idea, do not hesitate.
Thank you for all your information and for your help, that will allow me to finish my project.
Thank you in advance and have a good weekend
Pascal.
Attachments
Capture d’écran 2012-07-29 à 19.06.19.png
(35.34 KiB) Downloaded 2449 times
Détection infra rouge.fcf
(18.5 KiB) Downloaded 309 times

Spanish_dude
Posts: 594
Joined: Thu Sep 17, 2009 7:52 am
Location: Belgium
Has thanked: 63 times
Been thanked: 102 times
Contact:

Re: Programme de détection infra-rouge

Post by Spanish_dude »

Tu as ton transmetteur et ton récepteur dans le même programme. ça marchera pas comme ça.
Je vois rien d'anormale dans ton code pour que ça te donne cette erreur, malheureusement :/.

Tu dis que tu as deux PIC mais visiblement tu essayes de détecter le signal IR après avoir transmit ton signal...

Je te propose de faire comme ça:
1) Fait un transmetteur qui envoi un signal constamment, pas vraiment besoin de PIC pour ça mais bon.
Juste allumer/éteindre le/les LED IR à une fréquence de 38kHz

Vu que tu envois constamment un signal ton TSOP va t'envoyer un signal de 0V.
Jusqu'au moment ou quelque chose interrompt le signal IR. À ce moment, ton TSOP envoi un signal de 5V.

2) Fait un récepteur avec un autre PIC.
Tout se que tu dois faire c'est constamment regarder/lire l'entrée ou les entrées où tu as branché le/les TSOP.
Dès que le signal reçue passe à 5V, ça veut dire que le signal IR a été interrompu et c'est à se moment là que tu exécutes se que tu veux faire quand le signal est interrompu (alarme, allumer des LEDs, ...).

Nicolas

Philbert Pascal
Posts: 80
Joined: Fri Jul 20, 2012 8:55 am
Location: Chambly (France)
Been thanked: 4 times
Contact:

Re: Programme de détection infra-rouge

Post by Philbert Pascal »

Bonjour Nicolas,
je me doutais que c'était problématique. Pourtant sur le site de Bigonoff, j'ai trouvé un programme en C ou l'émetteur et le récepteur étaient connectés.
Du coup, je vais simplement laisser le 16F84A générer le 38Khz pour mes LED IR, et envoyer le signal de sortie du TSOP directement sur le 16F877, ce qui ne change rien à mon programme.
Je vais simplifier le code du 16F84A, et peut etre n'aurais-je plus cette erreur de compilation.
Merci de ton aide.
Pascal.

Hello Nicolas,
I suspected that it was problematic. Yet the site of Bigonoff, I found a program in C.
So I'll just let the 16F84A gébérer the 38 Khz for my IR LED, and send the output of the TSOP directly on the 16F877, which does not change my program.
I will simplify the code 16F84A, and maybe more would I compile this error.
Thank you for your help.
Pascal

User avatar
Dan81
Valued Contributor
Valued Contributor
Posts: 268
Joined: Sun Jan 15, 2006 4:07 pm
Location: Albi France
Been thanked: 60 times
Contact:

Re: Programme de détection infra-rouge

Post by Dan81 »

Salut Pascal

Pour ce qui est de l'erreur :

evite d'utiliser des accents , et autres caracteres particuliers (y compris des espaces).
ici c'est l'accent.

Personnellement, j'utilise ques les 26 lettres et chiffres (et l'underscore pour les differentes versions de prog), ni noms trop longs.
(ca doit etre les sequelles du DOS3) mais ca marche toujours.

Daniel

Spanish_dude
Posts: 594
Joined: Thu Sep 17, 2009 7:52 am
Location: Belgium
Has thanked: 63 times
Been thanked: 102 times
Contact:

Re: Programme de détection infra-rouge

Post by Spanish_dude »

En effet, une fois que tu renommes ton programmes sans l'accent ça compile sans problème.
Bien vu Daniel !

Je ne savais pas que les accents auraient pu causer un problème, bon a savoir :mrgreen: .

Nicolas

Philbert Pascal
Posts: 80
Joined: Fri Jul 20, 2012 8:55 am
Location: Chambly (France)
Been thanked: 4 times
Contact:

Re: Programme de détection infra-rouge

Post by Philbert Pascal »

Bonjour Dan81,
encore une fois tu me sauves. La compilation c'est passée sans problème.
Mais mes problèmes ne sont pas tous résolus. J'explique. Je fais une boucle pour générer ma fréquence de 76Khz pour ma diode IR de 38Khz.
J'ai calculer la tempo nécessaire soit 12µs de 6 cycles en laissant un délay de 10ms entre chaque train d'onde. ( préconisé par Vishay sur TSOP 1138).
Je fais bien mes 6 cycles, j'ai bien mon délai entre chaque train d'onde, mais ma fréquence et 7Khz au lieu de 38Khz.
La détection ce fait sans probléme, et je commande bien mon proc principal.
Es-ce lié à la lecture des ports, puis l'écriture d'autre ports, qui ralentissent ma boucle?
Merci à tous d'avance. Je vous joint mon fichier final.
Pascal.

Hello Dan81,
once again you save me. The compilation is passed without problem.
But my problem is not solved. I explain. I make a loop to generate my frequency of 76Khz for my IR diode to 38 Khz.
I calculate the tempo of 12μs is required 6 cycles by allowing a delay of 10ms between each wave train. (Recommended by Vishay TSOP 1138 on).
I do well my 6 cycles, I did my time between each wave train, but my frequency and 7kHz instead of 38 Khz.
The detection result without problem, and I order my proc main well.
Es is related to reading ports and writing on the other ports, which slows my loop?
Thank you all in advance. I attached my final file.
Pascal.
Attachments
Detection infra rouge.fcf
(22.25 KiB) Downloaded 328 times

User avatar
Dan81
Valued Contributor
Valued Contributor
Posts: 268
Joined: Sun Jan 15, 2006 4:07 pm
Location: Albi France
Been thanked: 60 times
Contact:

Re: Programme de détection infra-rouge

Post by Dan81 »

Bonjour Christian

Derriere chaque icone il y a plusieurs lignes de codes, donc ca consomme du temps.
Deux solutions :
- changer de quartz : 20 MHz par ex, ton systeme n'est pas sur batterie je suppose.
- reduire les tempos jusqu'a arriver a la frequence voulue (si c'est possible)

bon courage

Daniel

Philbert Pascal
Posts: 80
Joined: Fri Jul 20, 2012 8:55 am
Location: Chambly (France)
Been thanked: 4 times
Contact:

Re: Programme de détection infra-rouge

Post by Philbert Pascal »

Bonjour Dan81, (et non Christian hihi)
je suis descendu à 2µs dans la boucle mais rien ne change , je suis toujours encore 10khz.
Le programme que j'ai vu sur le site du super Bigonoff est écrit en assembleur.
Je pourrais peut etre m'en inspirer. Le mien utilise 2 capteurs au lieu d'un.
Peux-etre pourrais tu m'aider à le modifier?
je vais essayer de le bidouiller ce soir.
Je vais aussi essayer de'écrire une boucle toute simple dans Flowcode et voir si j'arrivre à 38Khz.
Merci d'avance et à bientôt.
Pascal

Hello Dan81, (Christian and non hihi)
I went down to 2μs in the loop but nothing changes, I am still 10kHz.
The program I saw on the site of super Bigonoff is written in assembler.
I might be my inspiration. Mine uses two sensors instead of one.
Could be you could help me change it?
I will try to trick it tonight.
I will also try de'écrire a simple loop in Flowcode and see if I arrivre to 38 Khz.
Thank you in advance and see you soon.
pascal

Post Reply