Gestion d'un reseau train électrique

PieM

Senior Member
pouvez vous mitoner un chtie programme pour la limitation de courant car si je remplace ce module y'a des risque qu'il ne grille rapidement
j'ajoute que lors du 1er essais la loco s'est déplacé par petite courte saccade juste avant le constat ci dessus
ce qui me fait penser à une destruction de l298
evidemment les voies n'étant pas isolées y' a toujours de grand risque de cour-circuit sur un réseau
et je me demande si dans les 1er mesures de tension sur les voies une pince crocodile n'aurait pas touchée l'autre rails...
Ok pour le petit programme, mais mettez une R plus faible que 1.7. 1 ohm maxi...
Et pour les essais, en protection mettez un fusible sur l'alim de vos rails ...
 

zeltron

Senior Member
le mystére s'épaissit!
il va falloir un plus gros cierge patron!
j'ai placé les 2 résistances en // car je n'ai pas en dessous
et j'ai recâblé de maniere identique un autre module et bé c'est idem que ci dessus!!!!
tension de sortie sans presence loco vers 6v pour 10v en entrée
et avec presence loco 300mv! pas de courant de délivré par l'alim de labo!
cette fois ci j'ai placé un fusible de 2A en sortie qui est toujours ok!
le l298 ne chauffe pas!
 

PieM

Senior Member
:confused: Vous avez bien alimenté le 5V sur ce module, et coupé les bonnes pistes pour la résistance ?
 

zeltron

Senior Member
:confused: Vous avez bien alimenté le 5V sur ce module, et coupé les bonnes pistes pour la résistance ?
le 5 v est une sortie et j'ai coupe la bonne piste

mais je me suis pas mefié mon alim de labo est double mais les masses ne sont pas communes hors j'alimente les cartes relais en 12 v avec une 1er alim (la carte relais sort le 5v pour la carte uc)
et la seconde alim alimente la carte l298 et les masses étaient donc à relier....
le courant est revenu mais la loco avance maintenant toujours d'une maniere tres saccadéé (comme lors de mon 1er essais réalisé
sans cette seconde alimentation que javais justement mis en place à la suite de ce déplacement bizarre...)
je suis donc revenu au point de départ...
d'ou peut provenir se déplacement bizarre...
de la resistance place entre la masse....??? je ferai un test demain
 

PieM

Senior Member
le 5 v est une sortie et j'ai coupe la bonne piste

mais je me suis pas mefié mon alim de labo est double mais les masses ne sont pas communes hors j'alimente les cartes relais en 12 v avec une 1er alim (la carte relais sort le 5v pour la carte uc)
et la seconde alim alimente la carte l298 et les masses étaient donc à relier....
le courant est revenu mais la loco avance maintenant toujours d'une manière tres saccadéé (comme lors de mon 1er essais réalisé
sans cette seconde alimentation que javais justement mis en place à la suite de ce déplacement bizarre...)
je suis donc revenu au point de départ...
d'ou peut provenir se déplacement bizarre...
de la resistance place entre la masse....??? je ferai un test demain
Je pense à un problème de parasite
sur le CI du picaxe, mettez une led sur une sortie, et vous l'activez pendant 1s lors de l'initialisation du picaxe (avant le prog main.).
si elle s'allume pendant le fonctionnement, c'est que le picaxe fait un reset.
Vous avez mis des condos de découplage et de filtrage ?

Un peu dommage d'alimenter le µC avec la carte relais, car elle dispose d' opto-coupleurs en entrée, il me semble...
Et ces sources multiples en 5V m'inquiètent un peu !
 

zeltron

Senior Member
j'ai shunté la résistance de mesure courant c'est idem

par contre brillante idée big boss! la led s'allume à chaque pause loco!
non pas mis de condo mais je viens de tester aux bornes de sorties de l298 des valeurs de condos du pf au uf non polarisé et bé y'en à pas une qui calme le pb
pourtant je pense que d'origine les locos sont entiparasités mais de toutes façon il n'y aura pas la place à l'interieur...
et pour les multiples 5 v dommage de ne pas s'en servir mais ok j'utiliserai des alims séparées
 
Last edited:

PieM

Senior Member
j'ai shunté la résistance de mesure courant c'est idem

par contre brillante idée big boss! la led s'allume à chaque pause loco!
non pas mis de condo mais je viens de tester aux bornes de sorties de l298 des valeurs de condos du pf au uf non polarisé et bé y'en à pas une qui calme le pb
pourtant je pense que d'origine les locos sont entiparasités mais de toutes façon il n'y aura pas la place à l'interieur...
et pour les multiples 5 v dommage de ne pas s'en servir mais ok j'utiliserai des alims séparées
C'est aux bornes du picaxe qu'il faut mettre un 100nF au plus près de Vcc Vss (il m'arrive de le souder sous le ci, sur les soudures de l'embase...)
 

zeltron

Senior Member
ça résiste patron!
j'ai placé sous le circuit imprimé un 100nf aux bornes 11 et 31 du 40x2 et bien c'est idem
des que la loco est sur la voie la led s'allume...
 

PieM

Senior Member
ça résiste patron!
j'ai placé sous le circuit imprimé un 100nf aux bornes 11 et 31 du 40x2 et bien c'est idem
des que la loco est sur la voie la led s'allume...
Ben oui, mais c'est ça un pb électronique... il faut filtrer partout.
voir l'alim du µC et toute la chaîne.
 

zeltron

Senior Member
c'est bon problème résolu à 99%
c'était effectivement une mauvaise idée de récupéré le 5v de la carte sainsmart pour alimenter le 5v uc
les resets proviennent de la!
 

PieM

Senior Member
c'est bon problème résolu à 99%
c'était effectivement une mauvaise idée de récupéré le 5v de la carte sainsmart pour alimenter le 5v uc
les resets proviennent de la!
OK, et le 1% restant c'est quoi ?
 

zeltron

Senior Member
je ne sais pas trop ça n'a pas l'air d'être dû à la loco ou pas seulement
ça arrive rarement que la led s'allume maintenant et parfois sans loco sur les voies...
alors il va me falloir plus de temps pour voir
je me demande si ce n'est pas pendant que le fer à souder se déclanche...
 

zeltron

Senior Member
j'ai placé une embase secteur filtré
mais le pb est bien la carte l298 relier à l'uc

j'ai tout essayé déjà c'est moins que 99%
j'ai placé des condos ou des filtres LC en entrée ou en sortie l298 , alim 5v uc, idem rien ne tranquilise plus le pb
il faudrait certainement filtrer directement sur les moteurs locos
car certaine engendre moins de pb que d'autres surtout les plus vieilles...
mais vu l'echelle c'est impossible un 100nf est presque aussi gros que le moteur....
je suis un peu déçu
 

PieM

Senior Member
j'ai placé une embase secteur filtré
mais le pb est bien la carte l298 relier à l'uc
Il faut une alim propre qui alimente le picaxe et la partie signal du L298. Il ne faut pas utiliser le 5V du module L298 qui est généré à partir de l'alim puissance du module. Il y a un strap ou un cavalier qui permet de l'isoler en principe.
 

MGU

Senior Member
j'ai placé une embase secteur filtré
mais le pb est bien la carte l298 relier à l'uc

j'ai tout essayé déjà c'est moins que 99%
j'ai placé des condos ou des filtres LC en entrée ou en sortie l298 , alim 5v uc, idem rien ne tranquilise plus le pb
il faudrait certainement filtrer directement sur les moteurs locos
car certaine engendre moins de pb que d'autres surtout les plus vieilles...
mais vu l'echelle c'est impossible un 100nf est presque aussi gros que le moteur....
je suis un peu déçu
Bonjour,

Et ça, c'est trop gros?
http://www.gotronic.fr/art-5-condensateurs-cms-470-nf-9126.htm


MM
 

jojojo

Senior Member
Coucou.

Commande de moteur, et reset intempestif, c'est assez classique ...
Je connais bien le L298, mais pas la "carte toute faite", qui est utilisée ici.

Trois choses :
- Ne pas hésiter, à mettre un 1000 µ (si, si ...) au plus près du +alim de la carte.
- Relever la référence des quatre diodes du pont. Suivant le DS, il sera peut-être nécessaire de les changer, pour des plus rapides.
- Toujours sur l'alim carte moteur, mettre une diode rapide (Genre FE6D, ou assimilée), câblée en inverse, entre + et masse (suppression d'éventuels pics négatifs, généré par le moteur).

Pour le point N° 1 (le 1000µ), ne jamais oublier qu'un moteur brush se comporte comme un générateur, en phase ralentissement/arrêt.
Donc, l'énergie générée, doit être absorbée, ailleurs que dans le pont. Cette capa sert à ça. On l'oublie, et le L298 lâchera à un moment ou un autre ...

Le filtrage LC, je veux bien, mais ... Utile uniquement s'il est câblé directement aux bornes du moteur. Ce qui me semble irréalisable (encombrement). A mon sens, on oublie ça. (sauf, si liaison HF quelconque, ce qui n'est pas le cas).

Hop ! Au boulot !
 

zeltron

Senior Member
Il faut une alim propre qui alimente le picaxe et la partie signal du L298. Il ne faut pas utiliser le 5V du module L298 qui est généré à partir de l'alim puissance du module. Il y a un strap ou un cavalier qui permet de l'isoler en principe.
c'est une alim propre je n'utilise aucun module pour le 5v
juste une petite carte de régulation avec voltmetre intégré comme vous m'aviez donné le lien

est il possible d'utiliser des optos comme interfaces et pour le pwm?
 

zeltron

Senior Member
Coucou.

Commande de moteur, et reset intempestif, c'est assez classique ...
Je connais bien le L298, mais pas la "carte toute faite", qui est utilisée ici.

Trois choses :
- Ne pas hésiter, à mettre un 1000 µ (si, si ...) au plus près du +alim de la carte.
- Relever la référence des quatre diodes du pont. Suivant le DS, il sera peut-être nécessaire de les changer, pour des plus rapides.
- Toujours sur l'alim carte moteur, mettre une diode rapide (Genre FE6D, ou assimilée), câblée en inverse, entre + et masse (suppression d'éventuels pics négatifs, généré par le moteur).

Pour le point N° 1 (le 1000µ), ne jamais oublier qu'un moteur brush se comporte comme un générateur, en phase ralentissement/arrêt.
Donc, l'énergie générée, doit être absorbée, ailleurs que dans le pont. Cette capa sert à ça. On l'oublie, et le L298 lâchera à un moment ou un autre ...

Le filtrage LC, je veux bien, mais ... Utile uniquement s'il est câblé directement aux bornes du moteur. Ce qui me semble irréalisable (encombrement). A mon sens, on oublie ça. (sauf, si liaison HF quelconque, ce qui n'est pas le cas).

Hop ! Au boulot !
ok vais voir ça
 

zeltron

Senior Member
Coucou.

Commande de moteur, et reset intempestif, c'est assez classique ...
Je connais bien le L298, mais pas la "carte toute faite", qui est utilisée ici.

Trois choses :
- Ne pas hésiter, à mettre un 1000 µ (si, si ...) au plus près du +alim de la carte.
- Relever la référence des quatre diodes du pont. Suivant le DS, il sera peut-être nécessaire de les changer, pour des plus rapides.
- Toujours sur l'alim carte moteur, mettre une diode rapide (Genre FE6D, ou assimilée), câblée en inverse, entre + et masse (suppression d'éventuels pics négatifs, généré par le moteur).

Pour le point N° 1 (le 1000µ), ne jamais oublier qu'un moteur brush se comporte comme un générateur, en phase ralentissement/arrêt.
Donc, l'énergie générée, doit être absorbée, ailleurs que dans le pont. Cette capa sert à ça. On l'oublie, et le L298 lâchera à un moment ou un autre ...

Le filtrage LC, je veux bien, mais ... Utile uniquement s'il est câblé directement aux bornes du moteur. Ce qui me semble irréalisable (encombrement). A mon sens, on oublie ça. (sauf, si liaison HF quelconque, ce qui n'est pas le cas).

Hop ! Au boulot !
pour l'instant je ne dipose pas sous le coude de ces diodes rapides je vais en commander
j'ai placé le condo et la diode de roue libre (mais c'est une 4007) ça ne change rien pour l'instant

les diodes d'origines sur la carte sont des M7 je vais aussi les remplacer par des fe6d

en attendant j'ai bien envie de virer les relais sur cette carte dont je dispose
http://www.ebay.fr/itm/310574401892?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649
pour m'en servir comme interface entre le l298
vous en pensez quoi?
 

PieM

Senior Member
c'est une alim propre je n'utilise aucun module pour le 5v
si la borne 5V du module est une sortie (#84), c'est que la partie logique du L298 est alimentée à partir du circuit puissance. Ce qui n'est pas favorable.

Je suis tout de même surpris ; j'utilise des L298 sans diodes rapides sur des moteurs 12V consommant plus de 1A, sans pb de RAZ sur les picaxes.
 

zeltron

Senior Member
VUPN7162-1.jpg
si la borne 5V du module est une sortie (#84), c'est que la partie logique du L298 est alimentée à partir du circuit puissance. Ce qui n'est pas favorable
oui en encadré jaune c'est un régulateur de tension 7805
si je retire le strap fleche jaune la led du module s'éteint c'est peut être pour mettre une alimentation 5v extérieur??
pour l'instant je n'ai pas utilisé cette borne 5v
c'est une alim propre je n'utilise aucun module pour le 5v
par cette phrase je parle du 5v microcontroleur qui est sur une alim à part mais evidemment je suis obligé de mettre une masse commune pour ce module qu'il soit avec 5v interne ou externe...
d'ou l'idée qui me tente de plus en plus de passer par les optos mais ça va inverser encore les commandes
et quid du PWM? ça va encore compliquer le soft?
 
Last edited:

PieM

Senior Member
View attachment 18009

oui en encadré jaune c'est un régulateur de tension 7805
si je retire le strap fleche jaune la led du module s'éteint c'est peut être pour mettre une alimentation 5v extérieur??
pour l'instant je n'ai pas utilisé cette borne 5v
Oui, en principe le cavalier strap sert à ça.
Il vaut mieux alimenter la partie logique avec l'alim du picaxe, et se déconnecter ainsi du circuit puissance du L298.

et éviter les optos !!
 

zeltron

Senior Member
si la borne 5V du module est une sortie (#84), c'est que la partie logique du L298 est alimentée à partir du circuit puissance. Ce qui n'est pas favorable.
pas favorable... je dirais même plus c'est à interdire dans la convention de genéve
c'est de la torture de picaxe!
j'ai teste avec alim 5 v a part, puis 5 v du picaxe le mieux c'est le 5v du picaxe mes 2 locos les plus réscentes passent à 100%
J'ai démonté la plus vieille les balais sont hs....le condo fait 3 nf il est pris en sandwich entre 2 lames souples il n'y a qu'a tirer dessus pour le remplacer
apres rénovation il n'y aura plus de soucis donc next step!
 

PieM

Senior Member
pas favorable... je dirais même plus c'est à interdire dans la convention de genéve
c'est de la torture de picaxe!
j'ai teste avec alim 5 v a part, puis 5 v du picaxe le mieux c'est le 5v du picaxe mes 2 locos les plus réscentes passent à 100%
J'ai démonté la plus vieille les balais sont hs....le condo fait 3 nf il est pris en sandwich entre 2 lames souples il n'y a qu'a tirer dessus pour le remplacer
apres rénovation il n'y aura plus de soucis donc next step!
Ben voilà ça avance ....
 

zeltron

Senior Member
apres quelques tests de pwm il en résulte que les chtites locos ne veulent pas tourner à de hautes fréquences
alors je me suis dit pas grave afin de ne pas entendre les fréquences de découpages au lieu de tourner en hf je vais tourner en bf
en dessous de 50 hertzs
oui mais voila il semble que ce ne soit pas possible avec une fréquence d'horloge à 16mhz
la plus basse est de 977 hertz...
y'a t'il une astuce?
 

alainav1

Senior Member
en dessous de 50HZ ?
ça va faire du bruit et ça me parait trop bas le moteur va avoir des hocquets :( .
perso je commande autour de 200 HZ avec un pic 16f et un mos en commande

si tu as un circuit sprecifique pour géré la vitesse (un 08m2 par exemple ) tu peux créer ton pwm avec des pulses .
bien sur ton circuit ne peut faire que ça .
( personnellement je préfère réaliser plusieurs circuits que tout mettre dans le même circuit mais ce n'est que mon avis ! .)

cordialement
Alain
 

zeltron

Senior Member
vi mais j'utilise les picaxes parce que c'est un peu plus simple...
si je fais une boucle genre ça
for boucle = 306 to 1023

pwmout pwmdiv16, C.2, 255,boucle '977Hz de 30% à 100% @ 16MHz
next boucle
pour démarrage avec accelerération progressive ça ne marche pas
c'est parce que je ne peux pas utiliser une boucle en tache de fond?
 

MGU

Senior Member
vi mais j'utilise les picaxes parce que c'est un peu plus simple...
si je fais une boucle genre ça

pour démarrage avec accelerération progressive ça ne marche pas
c'est parce que je ne peux pas utiliser une boucle en tache de fond?
Le mieux est d'initialiser par PWMOUT qui reste actif en tâche de fond

Et pour faire varier le rapport cyclique PWMDUTY en boucle.

Mais une boucle en tâche de fond... à part le multitâches ?

MM
 

PieM

Senior Member
pour démarrage avec accelerération progressive ça ne marche pas
c'est parce que je ne peux pas utiliser une boucle en tache de fond?
Si, ça doit marcher, mais à 16 MHz, les 700 boucles se font très rapidement ! il faut introduire une petite pause dans la boucle.
Comme le fait remarquer Michel, il faut utiliser pwmduty dans la boucle, après avoir initialisé avec pwout:
Code:
pwmout pwmdiv16, C.2, 255,306
  for boucle = 306 to 1023
  pwmduty C.2, boucle '977Hz de 30% à 100% @ 16MHz
next
La seconde chose est de savoir ce que doit faire le programme en même temps que cette phase d'accélération. Car hormis les fonctions hardware, telle le pwm, un picaxe (comme la majorité des µC) ne fait qu'une chose à la fois.
Une façon détournée est d'utiliser un timer (voir settimer) générant une interruption, et à chaque interruption, on incrémente le pwmduty.
 

alainav1

Senior Member
pour faire du multitache de façon simple (etant donné le prix d'un µP)
la solution la plus simple me semble donc d'envoyer un code vers un 08m2 par exemple et il se debrouille avec le code reçu en //
mais bien sur ce n'est que mon approche car comme je suis pas un pro je reste simple
cordialement
Alain
 

BESQUEUT

Senior Member
pour faire du multitache de façon simple (etant donné le prix d'un µP)
la solution la plus simple me semble donc d'envoyer un code vers un 08m2 par exemple et il se debrouille avec le code reçu en //
Soyons précis : ce que vous proposez n'est pas du multitâche, mais du multiprocesseurs.
Multitâche= plusieurs actions simultanées sur un même processeur,
Multi-processeurs = plusieurs processeurs et donc moyens de communiquer entre eux...
Multi-core= multi-processeurs sur une seule puce.

On peut faire exécuter plusieurs tâches sur un même processeur (de façon collaborative ou pas...) et/ou une même tâche sur plusieurs processeurs...

Certains Picaxes permettent une forme de multitâches (avec quelques limitations sur les commandes qui demandent un timing précis)
Sinon, comme indiqué par PieM, on peut utiliser les interruptions.
Et sinon, la seule méthode qui reste est le multitâche collaboratif.

En ce qui concerne le multi-processing, la question essentielle est de savoir comment les Picaxes communiquent entre eux :
- combien de Picaxes concernés en tout ?
- dans quel sens ?
- pour dire quoi ? (quel volume de données)
- avec quelle "réactivité" ?
- avec quelle fiabilité ? (paquets perdus admis ou pas ?)

Compte tenu des limitations des Picaxes (un seul bus I2C, un seul maître par BUS) incompatibilité de certaines commandes "background" entre elles, multiplier les Picaxes n'est pas toujours plus facile que de synchroniser plusieurs actions sur un même Picaxe rapide. (en tout cas c'est mon avis).
 

alainav1

Senior Member
Comme le plus souvent l'essentiel est d’établir un cahier des charges précis (ce n'est toujours le plus facile et c'est souvent négligé !)

Personnellement je gère mon réseau miniature par infrarouge
le code émis dans la nature est réceptionné par qui en à besoin ? par exemple à la réception du bon code un servo moteur déplace l'aiguillage lentement pendant qu'un relais met hors tension un canton)
mais c'est un système simple ou les temps de réponse n'ont pas d'urgence don c'est adapté à mon besoin et ça marche pour mon application.(je ne communique que dans un sens .
mais je suis bien sur attentif à vos remarques dont je tiens compte .
cordialement
Alain
 

zeltron

Senior Member
il faut une sacré patience avec ces trucs :mad:
je commence à craquer avec un simple ne 555 et quelques composants j'aurai déjà une bonne alim
alors que ce truc refuse obstinémént de fonctionner :)
y'a longtemps que je ne regarde plus la loco qui n'avance pas
je place l'oscillo en sortie, (sur les voies ou en sortie picaxe) la fréquence est bonne mais le rapport cyclique est au minimum et n'évolue pas danscette boucle
j'allume une led en sortie de boucle pour verifier que le temps de cycle soit réalisable pour un démarrage
je joue avec les valeurs de pauses et bien ça ne change rien
parcontre avec cette commande
pwmout pwmdiv16, C.2, 255,511
la seconde valeur fait bien évoluer le rapport cyclique
doit y'avoir encore un autre bug :D
Code:
#picaxe 40X2
#no_data'permet de ne pas ecraser la memoire pendant une reprogrammation

setfreq m16 


high c.7 'led control reset
pause 1000
low c.7

main:
high d.0' marche avant loco
low d.1 

 
pwmout pwmdiv16, C.2, 255,511
  for b0 = 511 to 1023
	  pause 1000
pwmduty C.2,b0 '977Hz de 50% à 100% @ 16MHz

next b0

high c.7
pause 7000
low c.7
return
je pense que je vais passer à 4mhz ça permettra de tourner en 244 hz déjà...
 
Last edited:

PieM

Senior Member
c'est sûr qu'avec des pauses de 1000 ça ne doit pas bouger vite ! il faut plus de 4 minutes pour passer de 511 à 1023 ....

C'est pas sorcier! si on veut un démarrage sur 3 secondes et qu'il y a 700 boucles, ça fait une pause de 3000/700 soit 4 ms environ, donc pause 8 puisqu'on est en 16Mhz

Et comme en plus b0 est une variable byte donc limitée à 0 -255, ça ne doit pas aider !!

il faut une sacré patience avec ces trucs
je commence à craquer avec un simple ne 555 et quelques composants j'aurai déjà une bonne alim
Y a un truc qui est assez pratique, c'est le manuel....
 
Last edited:

zeltron

Senior Member
ah vi merci c'est ça c'est un pb avec bo
car pour des temps de pauses rapide j'avais déjà tester
ouf ça redonne le moral
c'est fou comme un petit truc peu beugger
oui c'est vrai que j'ai tendance à lire le manuel que quand ça ne marche pas
mais même avec le manuel ce n'est pas evident de penser à tout enfin pour moi....
 

PieM

Senior Member
mais même avec le manuel ce n'est pas evident de penser à tout enfin pour moi....
Bienvenue au club... on est nombreux!

Si le programme du 40X2 tourne assez vite sans instruction bloquante ou pause durant les phase d'accélération, on est pas obligé d'utiliser une boucle qui bloque tout le programme; le programme en lui même est une boucle.

Donc s'il met 50 ms et que le démarrage doit se faire sur 3s cela fait 60 boucles de démarrage.
et s'il faut passer de 300 à 1023, il suffit d'incrémenter duty de 12 à chaque scrutation de programme.
 

BESQUEUT

Senior Member
Si le programme du 40X2 tourne assez vite sans instruction bloquante ou pause durant les phase d'accélération, on est pas obligé d'utiliser une boucle qui bloque tout le programme; le programme en lui même est une boucle.
C'est le principe de base du multitâche collaboratif...
Suffit que chaque sous-programme appelé depuis la boucle principale "collabore" en renvoyant la main aussi vite que possible.
Evidemment, ça exclut qu'un sous-programme (ou un sous-ensemble de la boucle principale, c'est pareil) fasse perdre du temps à tout le monde en ouvrant une pause ou toute forme de boucle locale.
Si un sous programme doit faire une opération en plusieurs étapes, il note à quelle étape il en est puis rends la main et attends son tour pour continuer.
C'est souvent suffisant pour temporiser des opérations successives (si c'est un peu trop rapide, on peut agir une fois sur deux par exemple)
Sinon, if faut faire référence à une "horloge" et attendre que ce soit l'heure pour réaliser la tâche suivante...
 

zeltron

Senior Member
Bonjour les zamis!
aprés moulte essais et avec ce code ci dessous j'obtiens de bon résultat de pilotage
j'ai un bouton poussoir pour les départs/arret au ralenti
et inverseur pour le sens de marche
potie pour vitesse
c'est conforme à mes désirs
mais la souplesse de fonctionnement est bien meilleur avec un picaxe à 4mhz et donc de 244 hertz
au lieu de 16 mhz et ses 977 hz
est il préférable de faire tourner mon programme principale à 4mhz et alors quid du pilotage de la plaque tournante ??
ou à 16mhz et d'utiliser un petit picaxe à part avec une frequence à 4mhz qui va s'occuper des pwm
ce code est t'il ameliorable?
il doit bien y avoir un moyen d'afficher le % du rapport cyclique sur le display?
peut être avec select case?
Code:
#picaxe 40X2
#no_data'permet de ne pas ecraser la memoire pendant une reprogrammation
setfreq m16

symbol potie= w0
symbol val =  w1

high c.7 'led controle reset
pause 1000
low c.7

init:
b6=1' bit etat pour faire une bascule acceleration/deceleration
b7=1'bit etat pour interdire l'inversion de sens en pleine marche

main:
do
 if pinD.3 = 1 and b7=1 then'test de l'inter inversion marche et son interdiction en pleine vitesse
high d.1 ' marche arriere
low d.0
end if

if pinD.3 = 0 and b7=1 then
high d.0' marche avant loco
low d.1
end if

readadc10 A.6, potie	'lecture potie consigne vitesse
pwmduty c.2, potie	' rapport cycle = valeur potie 
 	if b6=1 and pinD.2 = 1 then	'test bascule acceleration/deceleration et poussoir depart/arret
		b6=0				'modification pour valeur bascule
		pwmout pwmdiv16, c.2, 255,1023' init pwm et demarrage 
		pauseus 900'accoup pour un meilleure démarrage 
		for val = 204 to potie 	'boucle acceleration jusqu'a valeur potie
		pause 10	
		pwmduty C.2,val
		b7=0
		if val=potie then exit
		next
	end if
	
	if b6=0 and pinD.2 = 1 then
		b6=1
		for  val = potie to 160 step -1' deceleration
		pause 3
		pwmduty C.2,val
		b7=0'interdiction d'inversion de sens
		if val=160 then exit ' si 20% de rapport cyclique
		next
		b7=1'autorisation a l'inversion de sens car loco arrete
		pwmout c.2,OFF
	end if
loop	
return
 
Last edited:
Top