temporisation sous programming editor

pierrotg01

New Member
Bonjour,
Qui pourrait m'aider à faire un truc sûrement tout simple mais que je ne trouve pas?
Je voudrais avec programming editor en mode "diagramme" mettre une temporisation à 0 et si cette temporisation arrive à échéance (10 secondes), il se passe l'événement A mais tant que ce n'est pas le cas, il est possible d'agir sur une entrée 1 (par exemple) pour faire arriver l'événement B.

Exemple concret: on ouvre une porte, un capteur le détecte. Si au bout de 10 secondes on a pas appuyé sur un bouton, une sirène se déclenche.

Merci d'avance pour le coup de main
 

westaust55

Moderator
Veuillez conseiller quel morceau de PICAXE vous employez. Cela le facilitera pour fournir un exemple spécifique.


Si c'est le 18M2 puis il y a un nouveau « TEMPS » variable qui compte des secondes écoulées. Avec cette variable vous pouvez dans un contrôle par écho pour le temps écoulé et également pour un bouton appuyé sur.


S'il est pour n'importe quel autre PICAXE puis nous devons considérer une boucle avec une pause courte dans la boucle et après que chaque contrôle de pause l'entrée pour une presse de bouton. Certain code aiment ceci :

Code:
Main:
     For counter = 1 to 40
     IF input pin = 1 THEN goto Noalarm
     PAUSE 250 ; wait 0.25 seconds
     NEXT counter ; 40 x 0.25 = 10 seconds
Alarm:
    Ici si 10 secondes expiraient et aucun bouton a été pressé
     Alarme saine
     GOTO MAIN
Noalarm:
    Faites autre chose
     GOTO MAIN
 

pierrotg01

New Member
temporisation

Mon picaxe est le 28X1

Donc, si je comprend bien, il faut faire une boucle avec une temporisation de 1 seconde au milieu et compter le nombre de passage.
Avec le mode "diagramme" de programming editor, est-ce que quelqu'un sait faire çà à coup sur?
Merci d'avance
 

buldo

New Member
pour simuler, le convertir et mettre un point d'arrêt sur l'incrément de b0

modif avec un appui mini de 50ms pour détecter le bouton
 

Attachments

Last edited:

PieM

Senior Member
Ce programme ne marchera pas.

Relisez ce que vous a écrit Westauss:

For counter = 1 to 40
IF input pin = 1 THEN goto Noalarm
PAUSE 250 ; wait 0.25 seconds
NEXT counter ; 40 x 0.25 = 10 seconds

Si la pause est de 1 seconde, il y a de forte chances pour que vous ne puissiez pas prendre en compte l'appui sur le BP qui lui, risque de durer moins de 1 seconde !!
 

westaust55

Moderator
La méthode d'organigramme de programmation n'inclut pas FOR… NEXT la structure.

Vous devrez incrémenter une variable et puis examiner si elle a eu lieu autour des temps suffisants de boucle. Je n'emploie pas la méthode d'organigramme mais l'image jointe des convertis de méthode d'organigramme au BASIC comme prévu.
 

Attachments

buldo

New Member
le basic de westaust55 doit pouvoir détecter l'appui de la touche si elle est superieur à 0.25s, par contre son logigrame ne détecte qu'un appui superieur à 1s ...
 
Last edited:

PieM

Senior Member
Apparemment, c'est pierrotg01 (#3) qui voulait des pauses de 1 seconde ... il suffit de remplacer le pause 1000 par pause 250 et le test b0=10 par b0=40.
 
Top