PICAXE 28X2 : Entrée analogique en simulation

dbe8f

New Member
Bonjour,

J'ai développé un programme pour mon réseau de train.
Pour la gestion de la signalisation, j'ai un programme spécifique en développement qui fonctionne parfaitement en simulation (je ne sais pas encore en réel mais il n'y a pas de raison, pas encore essayé). Il y a juste un problème, avec l'entrée analogique A.1 (patte 3 CI).

Mes premières questions sont :
  • est-il possible en simulation de donner une valeur autre que 1 ou 0 à ce type d'entrée ?
  • si oui, est-ce juste en changeant la valeur de l'entrée dans la colonne ADC de variables ou faut-il faire différemment ?
  • si non, y'a-t-il une autre manière de tester ces entrées analogiques avec une valeur autre que ou 0 ?

Pour ma part, j'ai essayé de donner une valeur, 7 par exemple, et lorsque je vérifie la valeur, elle vaut toujours soit 1 soit 0 en fonction que j'ai cliqué ou pas sur la patte A.1 du 28X2 !

Code:
#PICAXE 28X2

;donnees en entree
symbol aiguille	=  pinA.1

; initialisation des donnees du programme
init:
   readadc A.1, aiguille
28X2.JPG28X2-Valeurs.JPG
Pourriez-vous s'il vous plaît m'expliquer la raison et éventuellement me donner une autre solution pour la simulation ?

Merci pour vos réponses et bon dimanche.

dbe8f.
 

jojojo

Senior Member
Bonsoir.

Je ne me sers pas du mode simulation, donc, je vais peut-être dire une ânerie. Mais ...

On fait normalement (dans la vraie vie) : Readadc A.1, variable.

Dans le code, ici, il semble que l'on transfère la valeur lue, sur une broche d'entrée.

J'en déduis (en étant surpris que cela fonctionne), que si la valeur lue est < à 127, la pin concernée sera forcée à 0, et >127, forcée à 1.

Dans ce cas, pourquoi utiliser la fonction Readadc ?
 

PieM

Senior Member
Comme dit Jojojo, la syntaxe est readadc PIN , VARIABLE

votre programme lui c'est readadc PIN , PIN ce qui n'a pas de sens.
tester:

Code:
[COLOR=Navy]#PICAXE [/COLOR][COLOR=Black]28X2[/COLOR]

[COLOR=Blue]symbol [/COLOR][COLOR=Purple]aiguille   [/COLOR][COLOR=DarkCyan]=  [/COLOR][COLOR=Purple]b1[/COLOR]

[COLOR=Blue]do
   readadc 1[/COLOR][COLOR=Black], [/COLOR][COLOR=Purple]aiguille[/COLOR]
[COLOR=Blue]loop[/COLOR]
Vous verrez que la valeur de b1 suit la position du curseur, modifiée en faisant un clic DROIT sur A.1
Avec les X2, on utilise le N° de canal et non le N° de pin.
 
Last edited:

dbe8f

New Member
Bonjour Messieurs,

Merci pour vos réponses et j'avoue avoir un peu honte !
En effet, je n'ai pas fait attention à ce que j'ai écrit dans le code...c'est juste, cela n'a pas de sens.

J'ai trouvé dans la documentation le fait de devoir utiliser le canal et non un numéro de pin.
J'ai donc essayé comme vous le suggérez PieM et en effet cela fonctionne mais en passant par une variable --> b1.
Est-il possible de tester directement la valeur de A.1 sans passer par une variable, j’imagine que non ?

Si je comprends bien, comme le dit jojojo, si l'on teste directement A.1, on obtient soit 0 soit 1 en fonction si j'ai cliqué ou pas la pin lors de l'exécution.

Plus loin dans le code je dois faire :
Code:
 maintenant        select case aiguille 
 [COLOR="#0000FF"]puis-je faire     select case A.1[/COLOR]
			[COLOR="#0000FF"]case 7[/COLOR]	;-----/---	0000 0111 = aiguille presente + prise par la pointe = 7 decimal
				if feuVertStatut = 1 and feuOrangeStatut = 0 then ; statut vert allume
					SN_L1_feublanc = 1
					SN_L2_feublanc = 1
				elseif feuVertStatut = 0 and feuOrangeStatut = 1 then
					SN_L1_feublanc = 1
					SN_L2_feublanc = 1
				elseif feuVertStatut = 1 and feuOrangeStatut = 1 then
					SN_L1_feublanc = 1
					SN_L3_feublanc = 1
				endif
                  ....
Quelques questions de mise en forme des messages dans le post :
  • Comment faites-vous pour avoir entre les balises "code" les couleurs, comme vous PieM ?
  • Faut-il les mettre personnellement ?
J'ai copié le code du programme et collé entre les balises mais les couleurs disparaissent !

  • Comment faire pour enlever de l'indentation toujours dans la balise "code" si le code dans le programme est indenté ?
Exemple d'indentation :
Code:
[COLOR="#0000FF"];j'ai ceci, code indenté collé du programme :[/COLOR]
                   select case aiguille 
			case 7	;-----/---	0000 0111 = aiguille presente + prise par la pointe = 7 decimal
				if feuVertStatut = 1 and feuOrangeStatut = 0 then ; statut vert allume
					SN_L1_feublanc = 1
					SN_L2_feublanc = 1
				elseif feuVertStatut = 0 and feuOrangeStatut = 1 then
					SN_L1_feublanc = 1
					SN_L2_feublanc = 1
				elseif feuVertStatut = 1 and feuOrangeStatut = 1 then
					SN_L1_feublanc = 1
					SN_L3_feublanc = 1
				endif
                  ....

[COLOR="#0000FF"];j'aimerais ceci, retirer l'indentation lorsque je le colle :[/COLOR]
select case aiguille 
	case 7	;-----/---	0000 0111 = aiguille presente + prise par la pointe = 7 decimal
		if feuVertStatut = 1 and feuOrangeStatut = 0 then ; statut vert allume
		        SN_L1_feublanc = 1
  		        SN_L2_feublanc = 1
		elseif feuVertStatut = 0 and feuOrangeStatut = 1 then
			SN_L1_feublanc = 1
			SN_L2_feublanc = 1
		elseif feuVertStatut = 1 and feuOrangeStatut = 1 then
			SN_L1_feublanc = 1
			SN_L3_feublanc = 1
		endif
          ....
Encore merci pour vos réponses et toute belle fin d'après-midi.
dbe8f
 

BESQUEUT

Senior Member
Si je comprends bien, comme le dit jojojo, si l'on teste directement A.1, on obtient soit 0 soit 1 en fonction si j'ai cliqué ou pas la pin lors de l'exécution.
Vous avez bien compris, et c'est confirmé par PieM.
Donc, si vous souhaitez tester une valeur analogique, il faut passer par READADC ou READADC10.
A noter qu'il y a une logique technique à ça : lire une valeur analogique prends un certain temps. Donc il est plus performant de mémoriser la valeur que de lire une valeur analogique à chaque CASE...
Comment faites-vous pour avoir entre les balises "code" les couleurs, comme vous PieM ?
Dans PE6, clic-droit / copier pour le forum...

A noter qu'il y a une limite à la taille du code que l'on peut poster sur le forum. Si vous souhaitez publier un programme un peu long, faites le en N&B... (La couleur, c'est beau et bien lisible, mais très volumineux...)
Comment faire pour enlever de l'indentation toujours dans la balise "code" si le code dans le programme est indenté ?
Pas possible à ma connaissance au moment du copié/collé.
Mais dans PE6, vous pouvez copier le code dans un nouvel onglet, puis utiliser la fonction "remove indent"="enlever les indentations"
 
Last edited:

dbe8f

New Member
Bonjour BESQUEUT,

Merci pour vos réponses très claires.
Vous avez répondu à toutes mes questions.

Encore une question dans l'utilisation des posts. Lorsqu'un post comme celui-ci que je considère comme résolu et terminé, je désire le mettre en évidence dans la liste des posts, comment peut-on faire ou comment le fait-on ici afin que les autres en soient informés et qu'ils n'aient plus besoin d'y répondre ?

Encore merci et bonne soirée.
dbe8f
 

jojojo

Senior Member
Bonsoir.

Dans ce forum, je ne pense pas qu'il y ai la possibilité de modifier un sujet, avec le tag "Résolu".
Pas grave. On a lu, on sait.

Bonne soirée.
 

dbe8f

New Member
[RESOLU] PICAXE 28X2 : Entrée analogique en simulation

Bonsoir jojojo,

Merci pour votre réponse et bonne soirée.
J'ai ajouté dans l'intitulé [RESOLU] au moins si quelqu&#8217;un voit le dernier post, il le saura.

Dans les autres posts, je ferai pareil.

dbe8f
 
Last edited:
Top