entrée analogique télérupteur

Ritour

New Member
Bonjour

éteindre ou allumer une led ou incrémenter une variable avec un bouton

poussoir avec une entrée analogique

le code qui fonctionne

do while pinC.4=0 : loop
toggle C.2
do while pinC.=1 : loop
goto princ

do while pinC.4=0 : loop
inc b0
do while pinC.4=1 : loop
goto princ

quand j'utilise une entrée analogique

readadc B.3,b8
pour une valeur de 79 régler par un pont diviseur

b9=0
if b8>=76 and b8<=82 then :b9=1

b9 passe de 0 à 1 mais, après je ne sais pas intégrer ce code pour faire

la même chose qu'avec le code qui fonctionne
merci pour vos réponses
 

jojojo

Senior Member
Bienvenu.

Code:
Do
Readadc B.3,b8
If b8 >76 and b8<=82 Then
b9=1
Else
b9=0
Loop
 
Last edited:

Ritour

New Member
Merci jojojo mais ça ne marche pas?
il manque quelque chose, les états 1 ou 0 doivent être stable j'ai placé
endif derrière loop j'affiche 1 et il reste figé, car il devrait sur une autre impulsion passée à 0

setfreq m4
serout B.0,N2400,(254,1) 'raz LCD
pause 200

phase1:
serout B.0,N2400,(254,128,"pouss1 ",#b9)
pause 200

Do
readadc B.3,b8
b9=0
If b8 >76 and b8<=82 Then
b9=1
Else
b9=0
Loop
endif

'endif il manque un endif

goto phase1
 

jojojo

Senior Member
J'oublie souvent les End If (hé hé ...)

Code:
setfreq m4
serout B.0,N2400,(254,1) 'raz LCD
pause 200
Do
readadc B.3,b8
If b8 >76 and b8<=82 Then
b9=1
Else
b9=0
End If
serout B.0,N2400,(254,128,"pouss1 ",#b9)
pause 200       'C'est long, mais bon ...
Loop
 

Ritour

New Member
jojojo ça marche un peu, les états 1 ou 0 doivent être stable
quand on appuie ça passe à 1 ça reste à 1 ça ne doit pas revenir à 0
ça revient à 0 à la prochaine impulsion et la ça revient 0 en relâchent le poussoir
 

PieM

Senior Member
quand on appuie ça passe à 1 ça reste à 1 ça ne doit pas revenir à 0
ça revient à 0 à la prochaine impulsion et la ça revient 0 en relâchent le poussoir
Pas clair du tout!
C'est un poussoir qui déclenche la lecture ana ?
Expliquez un peu votre circuit.
 

Ritour

New Member
Bonjour Piem

en fait
je voudrais l''équivalence de de ce fonctionnement
télérupteur

symbol BP= pinB.7 ' bouton poussoir
symbol sortie = C.5'led

princ:

do while BP=0 :loop
toggle sortie
do while BP=1 :loop
goto princ

au lieu d'utiliser pinB.7, j'aimerai utiliser utiliser sur des entrées analogique les même fonction que ce code, car le code donne une fonction télérupteur
une préssion la sortie et high le bouton retombe
la sortie reste high
une autre pression la sortie et low et le bouton retombe
la sortie reste low
ect....
 

PieM

Senior Member
Mais quelle est l'action extérieure si il n'y a pas de BP !!!
je suis désolé mais je ne comprends vraiment pas...
 

Ritour

New Member
BP est:

readadc B.3,b8
If b8 >76 and b8<=82

pour une valeur de 79 régler par un pont diviseur

Do
readadc B.3,b8
If b8 >76 and b8<=82 Then
b9=1
Else
b9=0
End If
serout B.0,N2400,(254,128,"pouss1 ",#b9)
pause 200 'C'est long, mais bon ...
Loop
 

PieM

Senior Member
BP est:

readadc B.3,b8
If b8 >76 and b8<=82

pour une valeur de 79 régler par un pont diviseur

Do
readadc B.3,b8
If b8 >76 and b8<=82 Then
b9=1
Else
b9=0
End If
serout B.0,N2400,(254,128,"pouss1 ",#b9)
pause 200 'C'est long, mais bon ...
Loop
Je crois qu'on ne va pas y arriver!
BP c'est un bouton poussoir. Si il n'y en a pas, s'il n'y a pas d'évènement extérieur au picaxe, comment voulez vous décider si il faut passer une valeur à 1 ou à 0 et y rester !

Lire l'état de C.4 c'est lire un évènement externe.
lire une valeur ana c'est une instruction INTERNE.
 

Ritour

New Member
l'action extérieure et faite sur un bouton poussoir qui agit a la fermeture sur un pont diviseur donnant 79 dans la plage de 0 à 255 qu'offre readadc quand j'appuis sur le bouton poussoir
(readadc B.3,b8) la valeur 79 est chargé dans b8
avec b8 je veux commander un led
une préssion la led et allumé et le bouton retombe
la led reste allumé
une autre pression la led et éteinte et le bouton retombe
la led reste éteinte
ect....
 

BESQUEUT

Senior Member
Code:
#picaxe 20m2
do
	do
		readadc B.3,b8
	loop while b8<=76 or b8>82
	
	toggle C.2
	
	do
		readadc B.3,b8
	loop while b8>76 and b8<=82
	
loop
----------------------------------------------------------------------------
 

Ritour

New Member
Bravo BESQUEUT
la fonction télérupteur est bien la

je crois que Piem à voulu me mettre à l'épreuve
Merci à tous
 

PieM

Senior Member
l'action extérieure et faite sur un bouton poussoir qui agit a la fermeture sur un pont diviseur donnant 79
Désolé, mais ce programme n'a rien à voir avec un appui sur un BP
Il lit en permanence l'état de B.3 et active ou non une sortie en fonction de la valeur.
 
Top