Cde Relais en Sortie Récepteur Modélisme
Moderator: Benj
Cde Relais en Sortie Récepteur Modélisme
Bonjour à Tous,
Mon fils m'a demandé de réaliser un circuit qui pourrait commander une sortie relais, en sortie du récepteur de son drone.
j'ai essayé de réaliser un un petit programme pour un PIC 12F615 (que j'ai en stock et qui est très léger).
Mais voilà, je ne maitrise pas et c'est le moins que l'on puisse dire, les interruptions.
En fait, je suis partie du signal de commande du servo (pulse qui varie de 1 à 2ms avec un rapport cyclique de 20ms) et j'ai tenté de gérer 2 interruptions TMR1 et TMR0 et de compter, dans un temps donné, le nombre d'état 1 appliqué à une entrée du PIC, mais cela ne fonctionne pas.
lorsque la pulse dépasse 1.5ms, je voudrais basculer la sortie à 1.
Je joins le Flowcode, afin que vous puissiez m'aider, je ne m'en sors pas et ce malgré mes multiples documentations.
Je pense que le principe est bon, mais je ne trouve pas le ou les erreurs.
Merci d'avance pour votre aide.
Corto
Mon fils m'a demandé de réaliser un circuit qui pourrait commander une sortie relais, en sortie du récepteur de son drone.
j'ai essayé de réaliser un un petit programme pour un PIC 12F615 (que j'ai en stock et qui est très léger).
Mais voilà, je ne maitrise pas et c'est le moins que l'on puisse dire, les interruptions.
En fait, je suis partie du signal de commande du servo (pulse qui varie de 1 à 2ms avec un rapport cyclique de 20ms) et j'ai tenté de gérer 2 interruptions TMR1 et TMR0 et de compter, dans un temps donné, le nombre d'état 1 appliqué à une entrée du PIC, mais cela ne fonctionne pas.
lorsque la pulse dépasse 1.5ms, je voudrais basculer la sortie à 1.
Je joins le Flowcode, afin que vous puissiez m'aider, je ne m'en sors pas et ce malgré mes multiples documentations.
Je pense que le principe est bon, mais je ne trouve pas le ou les erreurs.
Merci d'avance pour votre aide.
Corto
- Attachments
-
- PicoSwitch12F615.fcfx
- Cde avec PIC 12F615
- (6.11 KiB) Downloaded 334 times
-
- Matrix Staff
- Posts: 9521
- Joined: Sat May 05, 2007 2:27 pm
- Location: Northamptonshire, UK
- Has thanked: 2585 times
- Been thanked: 3815 times
Re: Cde Relais en Sortie Récepteur Modélisme
Salut Corto,
Est-ce que cela aide?
http://www.matrixtsl.com/mmforums/viewt ... 13&#p30748
Hi Corto,
Does this help?
http://www.matrixtsl.com/mmforums/viewt ... 13&#p30748
Martin
Est-ce que cela aide?
http://www.matrixtsl.com/mmforums/viewt ... 13&#p30748
Hi Corto,
Does this help?
http://www.matrixtsl.com/mmforums/viewt ... 13&#p30748
Martin
Martin
Re: Cde Relais en Sortie Récepteur Modélisme
Bonjour Medelec35,
Merci beaucoup pour ta réponse et du temps que tu as pu y consacrer pour trouver ce topic.
Je n'arrive pas à ouvrir le fichier joint, qui est dans une version antérieure à V6.
Cela étant, j'ai quand même avancé dans mon projet:
Je joins le nouveau fichier, qui simulé dans proteus, m'indique qu'il y a un problème avec le watchdog, malgrè le fait qu'il soit OF dans ma config!, par contre j'active bien la sortie A0 (qui n'est ici que pour visualiser que je vais bien dans ma macro)
Je vais ajouté un afficheur et voir le nombre de bit à 1 dans mon compteur (je suis parti de l'horloge à 4 MHz/4, soit 1MHz, pour le calcul de l'activation de ma sortie A1).
Merci encore et je tiendrai informé "la communauté" de l'avancement de ce projet.
Bien entendu, je suis preneur des commentaires et des expériences de tout le monde.
Luc
Merci beaucoup pour ta réponse et du temps que tu as pu y consacrer pour trouver ce topic.
Je n'arrive pas à ouvrir le fichier joint, qui est dans une version antérieure à V6.
Cela étant, j'ai quand même avancé dans mon projet:
Je joins le nouveau fichier, qui simulé dans proteus, m'indique qu'il y a un problème avec le watchdog, malgrè le fait qu'il soit OF dans ma config!, par contre j'active bien la sortie A0 (qui n'est ici que pour visualiser que je vais bien dans ma macro)
Je vais ajouté un afficheur et voir le nombre de bit à 1 dans mon compteur (je suis parti de l'horloge à 4 MHz/4, soit 1MHz, pour le calcul de l'activation de ma sortie A1).
Merci encore et je tiendrai informé "la communauté" de l'avancement de ce projet.
Bien entendu, je suis preneur des commentaires et des expériences de tout le monde.
Luc
- Attachments
-
- PicoSwitch12F615.fcfx
- Version 2
- (6.22 KiB) Downloaded 336 times
Re: Cde Relais en Sortie Récepteur Modélisme
that microcontroller to test with so I just used one I had. I have attached the program but, a logic analyzer or oscilloscope is needed to view the waveforms. If you don't have one, the synchronization does work just like the application note describes. ......................
-
- Matrix Staff
- Posts: 9521
- Joined: Sat May 05, 2007 2:27 pm
- Location: Northamptonshire, UK
- Has thanked: 2585 times
- Been thanked: 3815 times
Re: Cde Relais en Sortie Récepteur Modélisme
Salut Corto,
pour ouvrir V6 pré: Pour des raisons de surveillance, pouvez-vous envoyer votre fichier .hex s'il vous plaît.
On dirait qu'il pourrait être Proteus qui n'est pas correct.
Votre organigramme comporte des erreurs.
1) Aucun composant d'entrée attribuée à In_0 si variable GM restera à 0
2) la source de l'horloge de la minuterie sélectionner est faux: 3) minuterie 2 ne sera jamais activé.
C'est dans une macro qui n'est jamais appelé.
4) Si vous n'avez pas de résistance de pull-up relié à la broche 4 (MCLR), alors vous devez changer:
Comme je ne sais pas français sans un traducteur, je ne suis pas sûr pleinement ce your'e essayer de faire, donc je ne peux pas aider beaucoup plus.
Désolé.
hirondelle
Hi Corto,
to open pre V6: For watchdog issue, can you post your .hex file please.
Looks like it could be Proteus that is not correct.
Your flowchart has errors.
1) No input component assigned to In_0 so Compt variable will stay at 0
2) Timer clock source select is wrong: 3) Timer 2 will never be activated.
It is within a Macro that is never called.
4) If you have not got a pull-up resistor connected to pin 4 (MCLR) then you must change:
As I don't know french without a translator I'm not sure fully what your'e trying to achieve, so can't help much more.
Sorry.
Martin
pour ouvrir V6 pré: Pour des raisons de surveillance, pouvez-vous envoyer votre fichier .hex s'il vous plaît.
On dirait qu'il pourrait être Proteus qui n'est pas correct.
Votre organigramme comporte des erreurs.
1) Aucun composant d'entrée attribuée à In_0 si variable GM restera à 0
2) la source de l'horloge de la minuterie sélectionner est faux: 3) minuterie 2 ne sera jamais activé.
C'est dans une macro qui n'est jamais appelé.
4) Si vous n'avez pas de résistance de pull-up relié à la broche 4 (MCLR), alors vous devez changer
Code: Select all
Maître permettre clair
Désolé.
hirondelle
Hi Corto,
to open pre V6: For watchdog issue, can you post your .hex file please.
Looks like it could be Proteus that is not correct.
Your flowchart has errors.
1) No input component assigned to In_0 so Compt variable will stay at 0
2) Timer clock source select is wrong: 3) Timer 2 will never be activated.
It is within a Macro that is never called.
4) If you have not got a pull-up resistor connected to pin 4 (MCLR) then you must change
Code: Select all
Master clear enable
Sorry.
Martin
Martin
Re: Cde Relais en Sortie Récepteur Modélisme
Merci beaucoup Martin,
J'arrive, maintenant à ouvrir le lien, encore merci.
concernant les réponses que tu as eu la gentillesse de m'envoyer, voici les miennes:
1) j'ai vu cette erreur après avoir posté mon message. j'ai rectifié cette erreur mais cela ne fonctionne toujours pas.
2) j'ai règlé le TMR0 sur " Transition on T0CKI pin" car je voulais déclencher l'interruption sur le front montant du signal de sortie du récepteur.
3) Effectivement, cette macro faisait partie des différents essais que j'ai pu faire.
4) J'ai bien une résistance de 4.7K de pull-up sur la pin du Master Clear.
Je joins le dernier logigramme, qui ne fonctionne toujours pas et pour lequel je ne comprends pas pourquoi.
Luc
J'arrive, maintenant à ouvrir le lien, encore merci.
concernant les réponses que tu as eu la gentillesse de m'envoyer, voici les miennes:
1) j'ai vu cette erreur après avoir posté mon message. j'ai rectifié cette erreur mais cela ne fonctionne toujours pas.
2) j'ai règlé le TMR0 sur " Transition on T0CKI pin" car je voulais déclencher l'interruption sur le front montant du signal de sortie du récepteur.
3) Effectivement, cette macro faisait partie des différents essais que j'ai pu faire.
4) J'ai bien une résistance de 4.7K de pull-up sur la pin du Master Clear.
Je joins le dernier logigramme, qui ne fonctionne toujours pas et pour lequel je ne comprends pas pourquoi.
Luc
- Attachments
-
- PicoSwitch12F615.fcfx
- (6.05 KiB) Downloaded 328 times
Re: Cde Relais en Sortie Récepteur Modélisme
Je joins un fichier Excel montant le graph de la séquence du signal de sortie du récepteur et l'état de la sortie pour alimenter un relais.
Si quelqu'un peut m'aider à comprendre pourquoi le TMR0 ne déclenche pas sur le front montant du signal de sortie du récepteur et que le comptage lorsque le signal est à 1, à priori, ne se fait pas.
J'ai essayé plusieurs simulations et maintenant je suis complètement embrouillé.
Luc
Si quelqu'un peut m'aider à comprendre pourquoi le TMR0 ne déclenche pas sur le front montant du signal de sortie du récepteur et que le comptage lorsque le signal est à 1, à priori, ne se fait pas.
J'ai essayé plusieurs simulations et maintenant je suis complètement embrouillé.
Luc
- Attachments
-
- Classeur1.xlsx
- (11.31 KiB) Downloaded 347 times
-
- Matrix Staff
- Posts: 9521
- Joined: Sat May 05, 2007 2:27 pm
- Location: Northamptonshire, UK
- Has thanked: 2585 times
- Been thanked: 3815 times
Re: Cde Relais en Sortie Récepteur Modélisme
Salut Luc,
Minuterie 0 interrompre déclenche uniquement quand TMR0 débordements de registre 255-0.
chaque T0CKI de temps va de faible à élevé, TMR0 incréments de 1.
Depuis diviseur est fixé à 1: 1 et TMR0 commence à 0 alors T0CKI doit changer d'état 256 fois avant ISR macro est accessible.
La seule façon de forcer interruption pour déclencher chaque fois T0CKI va de bas en haut est d'inclure deux états C avec:
Un juste après que la minuterie 0 interrompre activer et l'autre au début de l'ISR Macro.
Cela précharger TMR0 s'inscrire auprès de 255 à chaque fois. Maintenant, chaque fois T0CKI changements de 0 à 1 interrompre la macro est accessible.
Hi Luc,
Timer 0 interrupt only triggers when TMR0 register overflows from 255 to 0.
each time T0CKI goes from low to high, TMR0 increments by 1.
Since prescaler is set to 1:1 and TMR0 starts at 0 then T0CKI has to change state 256 times before ISR macro is accessed.
The only way to force interrupt to trigger every time T0CKI goes from low to high is to include two C statements with:
One just after Timer 0 interrupt enable and the other at the start of ISR Macro.
This will preload tmr0 register with 255 every time. Now every time T0CKI changes from 0 to 1 then interrupt macro is accessed.
Minuterie 0 interrompre déclenche uniquement quand TMR0 débordements de registre 255-0.
chaque T0CKI de temps va de faible à élevé, TMR0 incréments de 1.
Depuis diviseur est fixé à 1: 1 et TMR0 commence à 0 alors T0CKI doit changer d'état 256 fois avant ISR macro est accessible.
La seule façon de forcer interruption pour déclencher chaque fois T0CKI va de bas en haut est d'inclure deux états C avec:
Code: Select all
tmr0 = 0xff;
Un juste après que la minuterie 0 interrompre activer et l'autre au début de l'ISR Macro.
Cela précharger TMR0 s'inscrire auprès de 255 à chaque fois. Maintenant, chaque fois T0CKI changements de 0 à 1 interrompre la macro est accessible.
Hi Luc,
Timer 0 interrupt only triggers when TMR0 register overflows from 255 to 0.
each time T0CKI goes from low to high, TMR0 increments by 1.
Since prescaler is set to 1:1 and TMR0 starts at 0 then T0CKI has to change state 256 times before ISR macro is accessed.
The only way to force interrupt to trigger every time T0CKI goes from low to high is to include two C statements with:
Code: Select all
tmr0 = 0xff;
This will preload tmr0 register with 255 every time. Now every time T0CKI changes from 0 to 1 then interrupt macro is accessed.
- Attachments
-
- PicoSwitch12F615 V2.fcfx
- (6.21 KiB) Downloaded 320 times
Martin
Re: Cde Relais en Sortie Récepteur Modélisme
Bonjour,
Je suis toujours sur mon projet et je ne m'en sors pas. Je n'arrive pas à "isoler" les 2 signaux lorsqu'ils sont à 1 (+5V), pous basculer ma sortie à 1.
Je joins 2 fichiers, le premier en format Word montrant une image des signaux issue de Proteus et le second fichier le Flowcode.
Si quelqu'un peut m'aider dans cette aventure, je serais très reconnaissant.
Luc
Je suis toujours sur mon projet et je ne m'en sors pas. Je n'arrive pas à "isoler" les 2 signaux lorsqu'ils sont à 1 (+5V), pous basculer ma sortie à 1.
Je joins 2 fichiers, le premier en format Word montrant une image des signaux issue de Proteus et le second fichier le Flowcode.
Si quelqu'un peut m'aider dans cette aventure, je serais très reconnaissant.
Luc
- Attachments
-
- Signals View.docx
- (382.35 KiB) Downloaded 264 times
-
- PicoSwitch12F615 V2.fcfx
- (6.36 KiB) Downloaded 247 times
-
- Matrix Staff
- Posts: 9521
- Joined: Sat May 05, 2007 2:27 pm
- Location: Northamptonshire, UK
- Has thanked: 2585 times
- Been thanked: 3815 times
Re: Cde Relais en Sortie Récepteur Modélisme
Translated by Google translator:
Salut Luc,
Pour détecter un changement dans l'entrée, vous devez d'abord lire l'entrée ..
Si vous ne lisez pas l'entrée, puis des changements dans l'entrée ne seront pas détectés.
Donc, vous ne pouvez pas avoir des entrées à que le début.
Vous devez avoir entrée quelque part dans la boucle principale.
Si possible lu entrée juste avant la décision branche qui implique l'entrée. Hi Luc,
To detect a change in input you must first read the input..
If you don't read the input then any changes in input will not be detected.
So you can't have the inputs at the start only.
You must have input somewhere within the main loop.
If possible read input just before decision branch that involves the input.
Salut Luc,
Pour détecter un changement dans l'entrée, vous devez d'abord lire l'entrée ..
Si vous ne lisez pas l'entrée, puis des changements dans l'entrée ne seront pas détectés.
Donc, vous ne pouvez pas avoir des entrées à que le début.
Vous devez avoir entrée quelque part dans la boucle principale.
Si possible lu entrée juste avant la décision branche qui implique l'entrée. Hi Luc,
To detect a change in input you must first read the input..
If you don't read the input then any changes in input will not be detected.
So you can't have the inputs at the start only.
You must have input somewhere within the main loop.
If possible read input just before decision branch that involves the input.
Martin
Re: Cde Relais en Sortie Récepteur Modélisme
Martin,
I have a very good news, the project work correctly.
My son will be very happy, me to.
Without your help, I don't think that I find the solution.
Many thanks really
Luc
I have a very good news, the project work correctly.
My son will be very happy, me to.
Without your help, I don't think that I find the solution.
Many thanks really
Luc