On saute la pause ...

jojojo

Senior Member
Bonjour.

Pour le boulot de ma fille, j'ai du motoriser un petit manège, fait par ses élèves (handicapés).

Le CdC était simplement, "un bouton poussoir, on appuit, ça tourne, on relâche ça s'arrête, et un peu de lumière, si possible".

Bon, je vous passe la mécanique, pour faire tourner rond ce truc ... Mais bref...

Donc, j'ai fait, ça fonctionne, bien sûr. Sauf UN truc, qui me prend la tête.

Le code :

Code:
'Commande PWM
'manège Florence



#picaxe 08M2
Setfreq M4
Symbol SPWM=C.2			'Sortie PWM
Symbol AVAR=C.1			'avant arrière
Symbol Bout=pinC.3		'bouton enclenchement
Symbol OkLed=C.4			'allumage leds


Do

do
Loop while bout=0

	High OkLed
	pwmout pwmdiv4, SPWM,191,762	'99% 1300hz
	pause 1000				'pendant 1s
	pwmduty SPWM , 192		'puis 25%
	


do
Loop until bout=0 

'freinage

Toggle AVAR
pwmduty SPWM , 762
pause 700
pwmout SPWM,Off
Toggle AVAR	
Pause 5000
low OkLed

Loop
Le schéma:

manege.jpg

En analysant soigneusement le schéma, vous remarquerez, que, vu l'alim commune moteur-pic, j'ai soigné les découplages.
J'ai aussi testé, soigneusement, d'éventuel resets (rien ...).

Mais ! Rien n'y fait.

La "pause 5000" dans le code, fonctionne pour les led's (elles s'éteignent bien au bout de 5 sec), MAIS ET C'EST là qu'est l'os, si, on appuie sur le bouton, DURANT cette pause, le système redémarre ! IL NE DEVRAIT PAS ! Grrr ! En mode "pause", il ne devrait rien se passer, appuit ou pas sur le bouton.

Bouh !.. Suis triste.

Georges.
 

BESQUEUT

Senior Member
Vérifiez qu'il n'y a pas de court-circuit dans la zone du poussoir, du genre qui ferait tomber l'alim à ce moment là. Car sinon, je ne vois pas ce qui pourrait faire sortir le Picaxe de sa pause.
Pour debuger, vous pouvez aussi parsemer le programme de
sertxd("J'en suis là...",13,10)
pour savoir exactement où en est le programme.
 

Technoman

Senior Member
Bonsoir,

Quelle est la raison d'une inductance d'une valeur aussi importante (1 H) en série avec l'alim du Picaxe? Que se passe-t-il si elle est retirée?
 

PieM

Senior Member
Bonjour,

Le circuit série LC sur l'entrée C.2 ne m'inspire pas...
En outre il est déconseillé d'utiliser des pauses longues à l'intérieur d'une boucle qui teste des entrées.

Fais un essai avec une ou plusieurs pauses courtes. Sinon, utilise le timer.
 

jojojo

Senior Member
Merci pour vos réponses.

@Besqueut: Pas de court-circuit, tout à été vérifier. En mode débug, il reste correctement dans la pause

@Technoman: La self est là pour protéger et filtrer l'alim du Picaxe. Elle est OBLIGATOIRE, à cause du balai, qui draine l'alim de la base fixe, au plateau tournant (pas loin d'un ampère de véhiculé, donc, sans la self, reset quasi permanent).

@Piem: Heu... Pas de LC sur C.2, c'est la sortie pwm. Et, pas de timer, à ma connaissance (pas sûr, mais ...) sur un 08M2. Pourquoi une pause longue est-elle a déconseiller, dans une boucle ?


Dernière nouvelle: J'ai compris (du moins trouvé, parce que pas vraiment compris).
Si, au lieu de commander le bazar, avec l'inter au bout de 3 mètres de câble, je commande directement au bornier, ça marche !

Donc, c'est cette fichue longueur de câble, qui gène ! Grrrr!!!!
Vais tenter avec un blindé, pour voir.

En attendant, je ne perçois pas le "fond du problème ".

Georges.
 

PieM

Senior Member
@Piem: Heu... Pas de LC sur C.2, c'est la sortie pwm. Et, pas de timer, à ma connaissance (pas sûr, mais ...) sur un 08M2. Pourquoi une pause longue est-elle a déconseiller, dans une boucle ?


Dernière nouvelle: J'ai compris (du moins trouvé, parce que pas vraiment compris).
Si, au lieu de commander le bazar, avec l'inter au bout de 3 mètres de câble, je commande directement au bornier, ça marche !
Oui me suis trompé. c'est sur C.3 que tu as un circuit oscillant LC. Si en plus tu as des longueur de cables...
sur un M2 tu as une variable Time !

Pourquoi une pause longue est-elle a déconseiller, dans une boucle ?
Parce que c'est écrit quelque part ! (sais plus où )
 

PieM

Senior Member
Donc, un simple relais, en bout de ligne, et tout fonctionne à la perfection.
Simplicité relative !
Dommage car on ne sait toujours pas quelle est l'origine du pb, et si c'est dû à ce pb de pause longue dans une boucle ...

"Do not put long pauses within loops that are scanning for changing input conditions. When using time delays longer than 5 seconds it may be necessary to perform a
hard reset to download a new program to the microcontroller."
 

jojojo

Senior Member
Merci, Piem.

Ils charrient, tout de même.

En pause, on est en pause.

Donc, théoriquement, on ne scrute pas les entrées. (sauf interupt, pas le cas, ici).

Et, on peux dire aussi que la boucle principale est inactive, puisque l'on "boucle", sur la pause ...

Et, surtout, POURQUOI ces 3 mètres de câble posent problème ? Après vérif à l'oscillo, le 50hz reste très modéré, en bout de ligne (très inférieur à 2.5v, en fait, autour de 1v, suivant le positionnement de mes mains).
Au capacimètre, le câble me donne moins de 200pf.

Pas pigé, là.

Bon, le relais est en fait un patch, d'accord, mais, ça résout le problème. Et, si jamais il fallait rallonger le câble ...

Bonne fin de dimanche.
Georges.
 

BESQUEUT

Senior Member
Bon, le relais est en fait un patch, d'accord, mais, ça résout le problème. Et, si jamais il fallait rallonger le câble ...
En général, j'utilise un opto-coupleur pour le même usage. C'est également une rustine, mais peut-être un peu moins "hard"...
 

jojojo

Senior Member
En général, j'utilise un opto-coupleur pour le même usage. C'est également une rustine, mais peut-être un peu moins "hard"...
Oui, mais non.
Un opto m'aurait obligé a mettre une deuxième alim, pour être efficace. Avec le contact sec du relais, pas besoin.
 

alainav1

Senior Member
Bonjour,
un truc sympa pour commander ton montage un petit tsop en entrée de ton pc et un petit sous programme qui teste le niveau bas de l'entrée du TSOP et inverse la commande de ton montage à chaque reception infrarouge puisque la sortie du tsop est toujours à 1 (5V) et passe à 0 (0V) quand une trame infrarouge est reçue.
ainsi le montage est commandé par n'importe quel télécommande infrarouge (tele ...)
le programme est tres simple( tu peux t'inspirer de ce montage qui lui gère un servo moteur pour déclencher un APN )
https://www.youtube.com/watch?v=W5ftrZ-v_A8
(le code est en commentaire sous la video )
cordialement
alain
 

BESQUEUT

Senior Member
Oui, mais non.
Un opto m'aurait obligé a mettre une deuxième alim, pour être efficace. Avec le contact sec du relais, pas besoin.
??? je ne vois pas la différence ? Masse commune si même alim, ou bien alim séparée, c'est pareil dans les deux cas non ?
Avez-vous essayé ?
 

PieM

Senior Member
En pause, on est en pause.
Donc, théoriquement, on ne scrute pas les entrées. (sauf interupt, pas le cas, ici).
Et, on peux dire aussi que la boucle principale est inactive, puisque l'on "boucle", sur la pause ...

Et, surtout, POURQUOI ces 3 mètres de câble posent problème ? Après vérif à l'oscillo, le 50hz reste très modéré, en bout de ligne (très inférieur à 2.5v, en fait, autour de 1v, suivant le positionnement de mes mains).
Ben en pause le pic travaille! la pause n'est que du soft au niveau du PIC.
Il y a des évènements qui se passent ne serait-ce que le watchdog.
Je pense que si Rev Ed a écrit cette remarque, c'est qu'il y a une bonne raison.

Le niveau 1 de l'entrée C.3 qui est TTL est de 2V. (si Vdd est de 5V).

Après, mettre un emplâtre ne résout effectivement pas le problème de fond qui est un éventuel déclenchement durant une pause longue, puisqu'il ne s'agirait pas d'un reset....
 
Top