Problème programmation borne escamotable

pdevisme1

Senior Member
Bonjour tout le monde, voilà mon souci : je tente de réaliser une maquette de borne escamotable ( celle qui sort de terre/entre de terre pour vous empêcher de passer en voiture ) mais j'ai un petit souci au niveau de la programmation ( sous Programming Editor ) de cette dernière. J'ai essayé un tas de progammes et je n'arrive pas à faire fonctionner la maquette correctement. J'ai fait un programme pour la montée ( juste la montée ), ça fonctionne. J'ai fait un progamme pour la descente ( juste la descente ), ça fonctionne. Mais quand j'e tente de mixer les deux, le régulateur de tension se met en surchauffe.

Voilà la description de la maquette :

- Interface avec un 28X1 et un uln2803
- Un BP branché sur l'entrée 2 qui simule une télécommande
- Un capteur "Borne haute" branché sur l'entrée 1
- Un capteur "Borne basse" branché sur l'entrée 0

- Pour faire monter la borne je dois mettre à 1 la sortie 0 et mettre à 0 la sortie 1
- Pour faire descendre la borne, je dois mettre à 0 la sortie 0 et mettre à 1 la sortie 1

Ce que je souhaiterais : si j'appuis sur le BP et qu'aucun des capteurs ( Borne en position intermédiaire ) n'est activé, la borne monte jusqu'au capteur "Borne haute" puis s'arrête, si j'appuis sur le BP est que le capteur "Borne basse" est activé, la borne monte et vice et versa... bref, la borne monte ou descend en fonction de sa position initiale ( haute ou basse ) lors de l'appui sur le BP.

Quelqu'un aurait-il une idée de programme ( sous Programming Editor si possible ) pour ce cahier des charges ?

Merci d'avance.
 

pdevisme1

Senior Member
Bonjour, déjà merci de l'attention que vous portez à ma question. Ensuite, de quel schéma parlez-vous ? De l'interface ?

Je précise que j'ai testé tout individuellement : l'interface, elle fonctionne, les capteurs de fin de course aussi, le moteur aussi... bref tout fonctionne ( en montée, en descente avec stop en fin de course... mais pas quand je "mixe" les deux ).

"Seule" le programmation ne fonctionne pas...
 
Last edited:

PieM

Senior Member
Bonjour,

A priori, vous avez un problème si vous utilisez un ULN2803. Celui ci est un interface à collecteurs ouverts (comme des inters relié à GND). Donc il ne peut pas commander un moteur dans les deux sens.
Pour résoudre ce problème il vous faut un pont en H (L293D par exemple.)
 

PieM

Senior Member
Alors pour expliciter les choses, envoyez le schéma de votre montage parce que avec un ULN, je ne vois pas comment vous avez pu le faire fonctionner un moteur dans les deux sens !!
Donnez aussi le programme que vous avez fait et qui ne fonctionne pas. C'est mieux de corriger qqchose que vous avez fait que de vous donner un programme tout fait . :rolleyes:
 

pdevisme1

Senior Member
Bonjour et merci à tous pour votre rapidité. En ce qui concerne le montage j'ai un L298N en sortie d'uln. Ce montage marche très bien, je l'ai testé sur d'autres maquettes.

J'ai déjà posté à ce sujet il y a quelques semaines avec comme réponse uln + L298 = montage possible mais avec des résistances en "pull-up" ou truc comme cela mais je ne me souviens plus très bien...

Concernant le programme, je vais essayer de joindre une copie d'écran.

J'avais essayé de faire simple pour expliquer mon problème mais j'ai en fait, en lieu et place du bouton poussoir, une télécommande qui fonctionne elle aussi très bien, d'où le irin dans le début de programme.

Merci pour votre aide.
 

PieM

Senior Member
Avec un L298, je comprends mieux !
A priori je ne vois pas trop ce qui ne fonctionnerait pas ....
Ce qui m'inquiète un peu c'est votre phrase
Mais quand je tente de mixer les deux, le régulateur de tension se met en surchauffe.
Vous êtes sûr de votre câblage ? car si le régulateur chauffe, il doit y avoir autre chose qui chauffe ! pas le L298 par hasard ?

Simplifiez votre programme en considérant que:

Quand vous envoyez l'ordre,
si pin1 est =1 alors commande en descente jusqu'au fin de course
dans tous les autres cas commande en montée jusqu'au fin de course.
 

pdevisme1

Senior Member
Bonjour, quand je dis "mixer les deux", je parle des deux programmes indépendants : montée et descente. C'est à dire que j'ai fait un programme pour la montée ( et seulement la montée ), avec le capteur borne haute qui fonctionne bien et la même chose pour la descente. Seulement, quand je tente de réunir les deux dans un seul programme, là ça chauffe.

Par contre, j'ai changé de place les fins de course ( Borne haute et Borne basse ) parce qu'il y avait un dur mécanique en fin de course. Peut-être la raison de la surchauffe...

J'ai également remarqué que le moteur arrivait assez vite sur le fin de course, d'où le dur mécanique quand il s'agit de repartir dans l'autre sens. Y aurait-il possibilité de ralentir la fréquence de rotation du moteur via la programmation ? J'ai déjà entendu parler de la fonction pulsout ( ou un truc du genre... ) mais je ne sais pas si avec un L298 on peut utiliser cette fonction ?

Merci pour votre aide.
 

PieM

Senior Member
Seulement, quand je tente de réunir les deux dans un seul programme, là ça chauffe.

Y aurait-il possibilité de ralentir la fréquence de rotation du moteur via la programmation ? J'ai déjà entendu parler de la fonction pulsout ( ou un truc du genre... ) mais je ne sais pas si avec un L298 on peut utiliser cette fonction ?
Oui, j'avais bien compris que c'est avec le programme montée + descente qu'il y a un problème.

Pour agir sur la vitesse avec un L298, il faut relier la broche EnA ou EnB (selon la sortie sur laquelle est branché le moteur) sur une sortie pwm du picaxe (sortie 1 ou 2), et programmer cette sortie par l'instruction pwm n°sortie, 199, 400 par exemple. (voir la doc concernant cette instruction http://www.picaxe.com/BASIC-Commands/Digital-InputOutput/pwmout/)

En faisant varier le 400 entre 0 et 800, la tension moyenne appliquée au moteur variera entre 0 et la tension nominale.
 

pdevisme1

Senior Member
Bonjour, pour le programme simplifié, j'avais le même, c'est déjà ça.

Par contre, j'ai quelques questions concernant la fonction pwmout :

- à quoi sert le 199 et est-ce une valeur à changer également ?

- Ensuite, quand vous dites " il faut relier la broche EnA ou EnB (selon la sortie sur laquelle est branché le moteur) sur une sortie pwm du picaxe (sortie 1 ou 2) ", je précise que je n'ai pas accès aux sorties du Picaxe puisque j'ai également un uln2803. Je précise également que j'ai besoin de deux sorties de l'uln pour faire tourner le moteur dans les deux sens.

J'ai essayé cette fonction mais sans succès. Est-ce dû au fait que j'ai un uln2803 ?

Merci d'avance.
 

jojojo

Senior Member
Voir dans les menus.

PICAXE
Wizards
Pwm

C'est super pratique (bon, une calculette et la doc le font aussi, mais ...)

Bye.
 

pdevisme1

Senior Member
Re-bonjour, je viens de regarder la doc concernant le 28X1 sur le manuel 1 page 34. Quand vous parlez des sorties pwm du picaxe : parlez-vous bien des broches 12 et 13 ou bien 22 et 23 ? Comme j'ai vu pwm sur les broches 12 et 13 et pas sur les broches 22 et 23 ( qui, elles, ont hpwm mais pas pwm ), maintenant j'ai un doute...

Désolé pour toutes ces questions, je débute...
 

PieM

Senior Member
Re-bonjour, je viens de regarder la doc concernant le 28X1 sur le manuel 1 page 34. Quand vous parlez des sorties pwm du picaxe : parlez-vous bien des broches 12 et 13 ou bien 22 et 23 ? Comme j'ai vu pwm sur les broches 12 et 13 et pas sur les broches 22 et 23 ( qui, elles, ont hpwm mais pas pwm ), maintenant j'ai un doute...
Désolé pour toutes ces questions, je débute...
Ne soyez pas désolé ! Un forum est fait pour ça ...

Les sorties dites pwm sont effectivement les broches 12 et 13. toutefois il est possible également d'utiliser la fonction hpwm sur13, 22 ,23 et 25 mais c'est un peu différent .
Votre carte est une carte standard ? si oui laquelle ?
Sinon envoyez un schéma de votre circuit, avec le L298 et la connexion moteur.
 

pdevisme1

Senior Member
Non il ne s'agit pas d'une carte standard, c'est une fabrication maison en gavure l'anglaise sour Big CI. Je vous joins le schéma de l'interface et du module à L298 au format pdf. Comme connexion j'utilise des prises RJ9 et RJ11 ( sur lesquelles se trouvent : un +, un - et le signal d'entrée ou de sortie ) pour éviter les branchements "hasardeux" de mes élèves. Sur les deux circuits il y a également pas mal de straps pas forcément bien identifiés sur le pdf joint.

Merci d'avance.
 

Attachments

PieM

Senior Member
Non il ne s'agit pas d'une carte standard, c'est une fabrication maison en gavure l'anglaise sour Big CI. Je vous joins le schéma de l'interface et du module à L298 au format pdf. Comme connexion j'utilise des prises RJ9 et RJ11 ( sur lesquelles se trouvent : un +, un - et le signal d'entrée ou de sortie ) pour éviter les branchements "hasardeux" de mes élèves. Sur les deux circuits il y a également pas mal de straps pas forcément bien identifiés sur le pdf joint.

Merci d'avance.
J'aurais préféré un vrai schéma, car le circuit imprimé avec des straps partout sans indication et des numéros de broches qui ne correspondent à rien , c'est un jeu de piste (cas de le dire ) pour lequel je n"aurai pas assez de loisir ...

Comprenez bien que si je vous dis de supprimer la liaison entre 2 et 3 et de relier 2 avec 2 et 3 avec 5, vous allez avoir du mal !

Mais que ce soit la carte interface ou la carte moteur, elles sont bien figées malgré leurs nombreux straps ! Et quel dommage de figer autant un L298 avec une seule sortie, et sans laisser aucune possibilité d'utiliser ses nombreux avantages...

Je crois qu'il vaut mieux abandonner cette idée d'utiliser le pwm. :(

2 solutions:
Ralentissez le moteur en mettant une résistance de puissance en série.
Envoyez des pulsout sur vos sorties normalement à 1 en contrôlant entre chaque l'état du fin de course.
 

pdevisme1

Senior Member
Bonjour, je comprends vos remarques concernant mon interface. En fait, cette interface est destinée à des élèves de collège. J'ai donc volontairement essayé de faire "simple" avec les "entrées" d'un coté, les "sorties" de l'autre, des branchements rapides et efficaces par RJ9 et RJ11. Le but étant de pouvoir brancher et débrancher rapidement l'interface pour la mettre sur une autre maquette.

Etant débutant moi-meme en Picaxe, j'ai essayé de faire au mieux... donc pour un spécialiste, c'est vrai qu'il doit y avoir nettement mieux ! Je ferai certainement mieux plus tard en découvrant les ( trop ! ) nombreuses fonctions des Picaxe !

Concernant mon problème, j'ai essayé avec la fonction pulsout et là tout fonctionne très bien. Le régulateur de tension chauffe encore mais seulement au lancement du moteur puis refroidit ensuite lors de l'arret de ce dernier. Le L298 lui, par contre, ne chauffe pas du tout. Je n'ai pas mesuré le courant consommé par le moteur, peut-etre un peu trop important par rapport à l'interface ?

Concernant la fonction pulsout, quelle valeur maximale peut-on lui appliquer ? J'ai regardé dans les manuels mais j'avoue que je n'ai pas tout capté...

Et enfin, juste pour savoir : est-il possible que le picaxe "loupe", du fait de la rapidité, l'appui sur un des fins de course ? Je demande ça parce qu'avant la réduction de la vitesse, le moteur continuait de tourner meme après avoir touché le fin de course.

En tous cas, merci pour toutes vos réponses.
 

PieM

Senior Member
je comprends vos remarques concernant mon interface. En fait, cette interface est destinée à des élèves de collège. J'ai donc volontairement essayé de faire "simple" avec les "entrées" d'un coté, les "sorties" de l'autre, des branchements rapides et efficaces par RJ9 et RJ11. Le but étant de pouvoir brancher et débrancher rapidement l'interface pour la mettre sur une autre maquette.
Je ne critiquais absolument pas le fait d'utiliser des RJ en connexion, bien au contraire ! Non, je parlais de dessiner un circuit qui permette des évolutions de votre carte sans avoir à refaire un CI , et qui permette de contrôler deux moteurs, par exemple, avec ou sans réglage de vitesse, puisque le L298 le permet .

Concernant la fonction pulsout, quelle valeur maximale peut-on lui appliquer ? J'ai regardé dans les manuels mais j'avoue que je n'ai pas tout capté...

Et enfin, juste pour savoir : est-il possible que le picaxe "loupe", du fait de la rapidité, l'appui sur un des fins de course ? Je demande ça parce qu'avant la réduction de la vitesse, le moteur continuait de tourner meme après avoir touché le fin de course.
Pour le pulsout, son argument time est une variable type word. Donc la valeur maxi est de 65535 et si votre Picaxe est à 4 MHz de fréquence (de base) cela correspond à 65535 * 10µs soit 0.65s.

Si l'action sur votre contact est de courte durée, le fin de course peut effectivement ne pas être pris en compte, en fonction du programme. Il faut aussi tenir compte de l'inertie du moteur lors de l'arrêt.
Pour pallier ce problème, on met les fdc sur des entrées contrôlées par des interruptions.

En fait dans votre programme il vous faut boucler , dans l'attente du fin de course, sur un pulsout, puis sur l'entrée du test . Inutile de remonter sur la mise en marche du moteur, il l'est déjà ...
 

pdevisme1

Senior Member
Bonsoir, pas de souci, je n'ai pas pris vos commentaires pour des critiques mais plutôt pour des remarques constructives qui me serviront plus tard quand je me serai bien familiarisé avec le monde des Picaxe. Il faudrait également que je revois mes cours d'électronique mais je manque un peu de temps...

Concernant les fameuses "interruptions", j'en ai déjà entendu parler mais comme visiblement ça n'a pas l'air très simple ( ni claire pour moi d'ailleurs ) je verrai ça plus tard également...

Concernant la fonction pulsout, j'ai essayé avec succès, donc mon problème est résolu du moins jusqu'au prochain !

Dans tous les cas, merci pour votre aide ainsi que vos remarques qui m'ont bien aidées.
 
Top