programmation 8M2

Je suis débutant dans la programmation des picaxes. j'aimerais faire ceci :

si entrée C3 est au niveau 1 alors sortie C1 est au niveau 1
si l'entrée C3 est au niveau 0 la sortie C1 reste au niveau 1 tant que l'entrée C4 n'est pas au niveau 0.
IL me semble que c'est simple mais désolé j'y arrive pas.
L'objet du programme est le suivant :
faire en sorte qu'un moteur s'arrête toujours au même endroit après la coupure de son alimentation.
merci pour votre aide
 
Bonjour et bienvenue/
A priori, voici un truc qui fonctionne:
Code:
#picaxe 08M2
    dirs=%10        ;pin C.1 en sortie
    do
        if pinC.3=1 then
                pinC.1=1
        endif
        if pinC.3=0 and pinC.4=0 then
                pinC.1=0
        endif
    loop

Pour que pinC.1 fonctionne, C.1 doit être déclaré en sortie par dirs=%10..
Sinon, ça marche pas ...fais l'essai pour voir.
Et la conversion de picbasic 3b, abandonné ?
MM
 
Last edited:
Bonjour et bienvenue/
A priori, voici un truc qui fonctionne:
Code:
#picaxe 08M2
    dirs=%10        ;pin C.1 en sortie
    do
        if pinC.3=1 then
                pinC.1=1
        endif
        if pinC.3=0 and pinC.4=0 then
                pinC.1=0
        endif
    loop

Pour que pinC.1 fonctionne, C.1 doit être déclaré en sortie par dirs=%10..
Sinon, ça marche pas ...fais l'essai pour voir.
Et la conversion de picbasic 3b, abandonné ?
MM
merci pour votre aide je vais essayer cela. La conversion picbasic est tj d actualité...je peux vous envoyer le programme si vous voulez ...vous verrez l'empleur de la conversion
 
Ok, pour info, peux tu me dire ce que fait ce programme.
Il est question de compteur et d'afficheur. Que compte t on ? Qu'affiche t on ? Quel est le type d'afficheur?
MM
 
Pour revenir à la question 08M2 en #1, je ne vois pas où est le pb

Ce que fait le programme
Données initiales:
C.3=0 et C.4=0 => sortie C.2 =0
si C.4=0 alors C.2=C.3
si C.3 et C.4=1 => C.2 reste à1 tant que C.4=1, si C.3 est repassé à 0, parce que si C.3=1 => C.4=1, de toute façon...

As tu essayé le programme ? en réel ? en simulation ?
Si oui, où est le pb exactement ?
MM
 
Last edited:
Une version alternative:
Code:
#picaxe 08M2
#no_data        ;EEPROM non utilisée
    dirs=%10        ;pin C.1 en sortie
    pullup %1010    ;pullup sur C.3 et C.1
    do
        if pinC.3=1 then
               pinC.1=1
        elseif  pinC.3=0 and pinC.4=0 then
               pinC.1=0
        endif
    loop
Le no_data supprime la phase d'effacement de l'EEPROM au chargement du programme....on gagne 2 s
MM
 
le programme initiale fonctionne.....je continue mon apprentisage des picaxes. J'avais oublier la resistance pullup sur l'ntrée C3.
Merci pour votre aide tres precieuse, ca me permet de commencer a apprécier les picaxes...lol
 
le programme initiale fonctionne.....je continue mon apprentisage des picaxes. J'avais oublier la resistance pullup sur l'ntrée C3.
Merci pour votre aide tres precieuse, ca me permet de commencer a apprécier les picaxes...lol
Bonjour,
Très bien, pour continuer, enlève la R externe et ajoute la ligne:
pullup %1000
cette ligne active une R interne entre l'entrée C.3 et le +Vcc
Dans la ligne pullup de %8, on activait 2 R sur C.1 et C.3
Maintenant, pour l'apprentissage sur le basic picaxe, il y a ces pages de mon site:
Je passe sur l'autre discussion pour le compteur..
MM
 
Back
Top