Commande progressive par PWM

Fermé
Pic83 Messages postés 13 Date d'inscription jeudi 28 mai 2015 Statut Membre Dernière intervention 5 novembre 2023 - 30 nov. 2016 à 16:05
Pic83 Messages postés 13 Date d'inscription jeudi 28 mai 2015 Statut Membre Dernière intervention 5 novembre 2023 - 2 déc. 2016 à 17:32
Bonjour,

bon, mon code n'est pas dans la liste ... c'est de l'assembleur Microchip pour Pic !
Mais je pose mon problème quand même :


j'ai réalisé un programme permettant de commander l'allumage et l'extinction progressive d'une lampe par le mode PWM d'un Pic 16f648a.
L'allumage et l'extinction se font par contact en tout ou rien (contact fermé -->allumage progressif , contact ouvert --> extinction progressive)
Jusque là les essais se montrent concluants.
Je voudrais maintenant commander cet allumage et extinction par impulsion par boutons poussoires.
J'ai modifié mon programme pour cela.
Lorsque je le test avec Protéus celui-ci fonctionne comme voulu (bon évolution du signal sur oscilloscope), par contre sur platine (en réel) la commande allumage ou extinction par impulsion ne fonctionne pas, si appuis sur allumage alors la progression se fait mais si j'arrête d'appuyer la lampe ne reste pas dans son état d'allumage ... elle s'allume en pleine puissance et vice versa pour l'extinction.
Si quelqu'un peut m'aider merci d'avance
Je peux envoyer en MP mon programme

Pic83
A voir également:

5 réponses

baladur13 Messages postés 46403 Date d'inscription mercredi 11 avril 2007 Statut Modérateur Dernière intervention 28 avril 2024 13 224
30 nov. 2016 à 16:34
Bonjour,
Il faut probablement avec votre bouton poussoir "seter" (mettre à 1) un bit interne qui activera la sortie "marche" un nouvel appui sur le même poussoir effectuant un clear (mise à zéro) de ce bit.
Autrement dit mémoriser l'ordre "marche"
lors de l'appui si marche n'est pas en service l'appui met marche à 1
si "marche" est a 1 et que l'on appui sur le bouton alors on remet à zéro l'ordre de marche
0
Pic83 Messages postés 13 Date d'inscription jeudi 28 mai 2015 Statut Membre Dernière intervention 5 novembre 2023
30 nov. 2016 à 17:26
merci pour votre réponse
je ne comprends pas trop votre explication ...
A l'oscilloscope la sortie reflète bien ce que je veux à savoir l'évolution progressive de l'alternance à fréquence constante (PWM) selon si on est en allumage ou en extinction progressive.
Par contre en essai sur table l'évolution s'arrête nette si on on appuie plus sur le poussoir et la lampe passe en plein éclat (si on est en allumage progressif) ou elle s'éteint si on est en extinction progressive.
0
baladur13 Messages postés 46403 Date d'inscription mercredi 11 avril 2007 Statut Modérateur Dernière intervention 28 avril 2024 13 224
30 nov. 2016 à 17:55
Je ne connais absolument pas votre microcontrôleur.
Allumage progressif dites vous... ok mais cela dure combien de temps pour passer de éteint à allumé plein pot ?
Si le temps d'allumage ou d'extinction progressive est trop court par rapport à un temps d'appui sur le boutons, il y a certainement un problème.
0
Pic83 Messages postés 13 Date d'inscription jeudi 28 mai 2015 Statut Membre Dernière intervention 5 novembre 2023
30 nov. 2016 à 19:31
il y en a effectivement un car le temps de la progression dans les 2 cas est de 3 secondes
0
baladur13 Messages postés 46403 Date d'inscription mercredi 11 avril 2007 Statut Modérateur Dernière intervention 28 avril 2024 13 224
30 nov. 2016 à 20:46
Je réitère donc ma proposition
il faut faire un traitement sur le bouton afin de mémoriser l'appui sur celui-ci.
soit A le signal du bouton et M le signal qui lance la mise en marche de l’éclairage progréssif
A = 1 et M = 0 = set M (mise à 1)
A = 1 et M = 1 = reset M (mise à 0)
Autrement dit une impulsion sur A démarre le processus en armant la mémoire M s'il n'est pas déjà en route, par contre une nouvelle impulsion sur A arrête le processus s'il est en marche en désarmant la mémoire M.
0
Pic83 Messages postés 13 Date d'inscription jeudi 28 mai 2015 Statut Membre Dernière intervention 5 novembre 2023
1 déc. 2016 à 10:59
bonjour

je comprends votre explication ... qui correspond au déroulement de mon programme, à savoir :
l'appui sur le BP (Bouton Poussoir) allumage entraine l'évolution progressive de l'état 1 à 0 et vice versa pour le BP extinction.
Comme je le disais, le fonctionnement théorique est valable puisqu'à l'aide du logiciel ISIS je constate bien l'évolution progressive de la MLI sur l'oscilloscope ; par contre sur table la progression "décroche" ...
Je déroulerai le programme directement sur MPLAB ...
Merci pour votre implication
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Pic83 Messages postés 13 Date d'inscription jeudi 28 mai 2015 Statut Membre Dernière intervention 5 novembre 2023
2 déc. 2016 à 17:32
bonjour,
je reviens aux nouvelles, cela servira peut-être à certains ...
le MLI avec le Pic est dépendant de 3 registres qui sont PR2, TMR2 et CCPR1L.
Pour ma part je stoppais le TMR2 dans mon code à la fin de la commande...
chose à ne pas faire
0