PDA

View Full Version : besoin d'un petit conseil



vinss07
13-09-2010, 13:36
bonjour à tous,
j'ai 32 ans et suis assez nouveau dans le monde du picaxe. Je souhaiterai un petit coup de main pour m'aider à comprendre mon problème. Je vous expliques
1/ je travail sur un picaxe 20X2
2/ j'ai realisé un variateur (gradateur) de lumiere pour une LED.
ce gradateur utilise un pwm. Ce pwm est commandé par 4 boutons poussoir 1/led on ; 2/led off ; 3/ led++ ; 4/led--.
3/ Je souhaite maintenant évoluer en rajoutant à cette modelisation les mêmes info mais venant de l'infrarouge. Mais souhaite tout de même garder le controle aussi avec mes boutons poussoirs.
J'ai utilisé la commande 'irin' afin d'ajouter des conditions dansmon prog seulement quand la ligne comportant le 'irin' est lue, le prog attent forcement une autre info de la télécommande... que faire je souhaite qu'à tout moment la télécomande ainsi que les poussoirs puissent servir.
Une âme charitable pourrait elle m'aiguiller sur mes erreurs ??
voici mon prog:
[code]
init:
pwmout C.5, 99, 255

main:

irin b.2,b13

pwmduty c.5,b0

if b0 < 25 then gosub led

if pinc.1 = 1 or b13 = 18 and b0 < 255 then hausse

if pinc.3 = 1 or b13 = 19 and b0 > 0 then baisse

if pinb.7 = 1 then jour
if pinb.6 = 1 then nuit

goto main

hausse:
irout b.0,1,18
b0 = b0 + b1
b1 = 1
goto main

baisse:
irout b.0,1,19
b0 = b0 - b1
b1 = 1
goto main

jour:
b0 = 255
goto main
nuit:
b0 = 0
goto main


led:
pwm b.4, 20,1

return



Voila merci par avance et à bientôt
Vinss

Chavaquiah
13-09-2010, 14:18
Bonjour et bienvenu.

Vous pouvez utiliser IRIN avec un délai d'attente (timeout) de sorte que, si une commande IR n'est pas reçue, l'exécution du programme ne s'arrête pas.

Essayez de remplacer la ligne IRIN avec:

IRIN [100], b.2, b13

vinss07
13-09-2010, 15:17
Bonjour et bienvenu.

Vous pouvez utiliser IRIN avec un délai d'attente (timeout) de sorte que, si une commande IR n'est pas reçue, l'exécution du programme ne s'arrête pas.

Essayez de remplacer la ligne IRIN avec:

IRIN [100], b.2, b13

Merci pour cette rapide réponse.... alors le résultat est mieux maintenant c'est vrai en revanche je me retrouve certainement avec ma variable b13 qui reste dans la boucle, car la lumière augmente toute seule par exemple, ou si j'ai baissé la lumière avec la télécommande, mais que je remonte la lumière avec un des boutons poussoir, elle redescend de nouveau (dernière variable b13) en mémoire... je pense ??!!
merci de votre aide

Chavaquiah
13-09-2010, 15:30
(dernière variable b13) en mémoire... je pense ??!!

Oui, c'est bien ça.

Il serait préférable d'initialiser B13 avant IRIN:

b13 = 0
IRIN [100], b.2, b13

vinss07
13-09-2010, 15:40
SUPER merci Chavaquiah votre aide m'à été précieuse. Maintenat tout fonctionne comme je le souhaite
A trés bientot certainement, car j'ai plein de projet en tête, et l'aide et avis de personnes avisée me seront nécessaire
bonne soirée