Aide Programmation compteur vis mère

A

Andoche

Compagnon
correction de LOOP
Bonsoir "speedj37" (speed ça correspond bien à la réactivité)
Merci pour ce travail.
Je viens juste de rentrer de chez un ami, à qui je suis en train de modifier ses tuyauteries de salle de bain, il change et modifie tout.
Sa salle de bain, ça presse le carreleur vient plus tôt que prévue.
Aussitôt terminer, je m'attaque à décortiquer votre programme, d'abord pour voir si je comprends tout ce que vous avez écrit.
Ensuite voir la différence avec le mien pour comprendre mes erreurs.
En tout cas, un grand merci pour ce travail.
Bonne soirée.
 
A

albatros_del_sur

Compagnon
Bonjour

Non, pas du tout, USB et Jack d'alimentation (7-12V) en même temps c'est possible,
Voir la pièce jointe 723841

C'est le couple U5A et T1 qui font l'aiguillage.
Le jack d'alimentation et Vin, c'est la même chose.
Il faut éviter d'alimenter en 5V sur la broche et Vin, en même temps.

Cordialement
jpbbrucole
Bonjour,
Je n’ai pas vérifié sur mes cartes, c’est ce que j’ai vu sur les documents qui les accompagnaient. Donc j’ai suivi sans tenter le diable ! Il y a assez d’occasions de faire de la fumée.
 
S

speedjf37

Compagnon
Aussitôt terminer, je m'attaque à décortiquer votre programme, d'abord pour voir si je comprends tout ce que vous avez écrit.
Ensuite voir la différence avec le mien

Bonjour,
Pour comparer des fichiers/dossiers
J'utilise Winmerge

Jf
 
A

Andoche

Compagnon
Bonjour
Cet après-midi, j'ai travaillé sur le programme en partant des remarques de speedjf37.
Je viens d'arrêter.
Je ne sais pas si c'est le cerveau, qui était en surchauffe ou s'il fumait trop, mais ça a déclenché l'alarme incendie.
Plus sérieusement, j'ai téléversé le programme de speedjf37, les valeurs s'affichent bien sur le moniteur série (l'écran du PC).
Sauf "ButéeAR" qui affiche 1, tous les autre compteurs sont à zéro, après le 1er cycle Arduino.
De plus avant le programme de speedjf37, j'avais déjà passé tous les incréments/décréments des compteurs, dans la boucle du front montant pour essayer de stabiliser les valeurs qui défilent sans que le disque à trous bouge.
Mais depuis, le programme perd la valeur référence VRCVM.
Demain matin, je vais faire un tour à vélo pour prendre un peu du recul.
Ensuite je vais essayer de régler ce problème de mémoire.
Pardonnez-moi si je ne suis pas aussi réactif que vous, mais je fais mon possible pour faire avancer le programme.
De toutes façons je vous remercie tous pour l'aide que vous m'apportez.
Même si je patine, je progresse quand même.
Cela me conforte dans ce que j'avais déjà fait, en même temps je me souviens de certaines commandes que j'avais oublié avec le temps.
Le programme de speedjf37, m'a permis de supprimer et simplifier pleins d'écritures.
Je suis d'un autre coté un peu satisfait, puisque dans les grandes lignes j'étais pas loin de son programme.
speedjf37 merci pour Winmerge, c'est super.
J'ai affiché Winmerge sur un écran avec les 2 programmes et les corrections.
Sur mon 2eme écran, j'ai corrigé manuellement le programme, que j'avais écrit précédemment, sans le faire exécuter par Winmerge, pour bien intégrer toutes les corrections.
J'essaye de régler les problèmes les uns après les autres.
En vous remerciant tous, je vous souhaite une bonne soirée.
 
A

Andoche

Compagnon
Bonjour
2 jours que je galère.
Je viens juste de trouver ce qui empêchait de fonctionner.
Je vais pouvoir passer aux autres problèmes.
Demain, aujourd'hui j'ai ma dose.
Bonne soirée

2CapteursTrous.jpg
 
A

Andoche

Compagnon
Bonjour
Bon le programme fonctionne bien, quand ça marche, mais de temps en temps de façon complétement aléatoire, le compteur CT (compteur des trous) s'incrémente tout seul.
Alors que le disque à trous est à l'arrêt.
Quand tout fonctionne, le programme se déroule parfaitement (voir les 3 photos).
A moins qu'une chose échappe à ma compréhension?
Une chose que j'ai constaté, quand le programme déraille, et que le compteur s'emballe, le compteur VM de la vis mère ne se recharge pas et il décompte avec -1 -2 -3 etc.. et encore pas à chaque fois.
Je pense, mais ce n'est qu'une hippothèse, que les impulsions sont donnée par une autre source que le disque à trous?
Puisque apparemment tout le programme, qui est dans le front montant de Trous (incrément/décrément des compteurs), n'est pas exécuté????
Ce qui est sûr, c'est que je dois maintenant trouver l'origine de ce parasite.
Ici un l'oscilloscope de mon collègue serait bien utile.
Il est venu une fois avec il y a 3 ans, il est reparti avec, une fonction mémoire, était en panne sur son appareil.
Depuis il a réparé la panne et moi j'attends toujours.
Il m'a embrayé dans un truc pas possible, que je ne connaissais pas du tout, et il me laisse tomber.
Je vais relire les conseilles que vous m'avez si gentiment donnés.
Il doit y avoir des renseignements que je n'ais surement pas intégré (du fait de mon ignorance dans ce domaine) à la 1er et 2eme lecture.
Hier, j'étais à 2 doigts de tout abandonner cette fois définitivement.
Ce matin je me suis refusé encore une fois à un échec.
Je refais une tentative.
C'est évident que pour vous qui êtes la dedans, la solution serait facile à trouver.
Bref au boulot.
Bonne soirée

CompteursVisMere01.jpg


CompteursVisMere02.jpg


CompteursVisMere03.jpg
 
A

Andoche

Compagnon
Toutes mes excuses.
J'avais bien modifié le 1 en A1 tout de suite dés que j'ai lu ton post.
Mais comme j'ai fait plein d'essais, en créant de nouveaux noms pour les fichiers, j'ai sûrement perdu la modification à un moment.
En plus à un moment, comme plus rien ne fonctionnait, je suis allé chercher d'anciennes versions du programme pour repartir d'un fichier qui marchait à peu près, j'ai dû oublier de faire la modification.
Je viens de rectifier le tir.
Merci encore tu es sympa, il faut que je teste, et avec la panne aléatoire, c'est pas du gâteau.
Si ça pouvait être la solution, ce serait le rêve pour moi, pour le moment je ne vois pas d'autres solutions.
Bonne soirée.
 
J

jpbbricole

Compagnon
Bonsoir Andoche
J'avais bien modifié le 1 en A1 tout de suite dés que j'ai lu ton post
Le 1 en A1, c'était surtout pour la forme et pour éviter la confusion entre les pin digitales et les analogiques.
La remarque principale concernait surtout le câblage, qui pour moi, n'est pas optimal.
1629480421340.png
c'est mieux que ça
1629480450818.png


Cordialement
jpbbricole
 
A

Andoche

Compagnon
La remarque principale concernait surtout le câblage, qui pour moi, n'est pas optimal.
Donc, je rajoute une résistance de 50Homs entre le lecteur optique et la masse et je remplace la résistance de 100homs par une de 10Khoms.
Si c'est bien ça, je fais la modification demain, il faut que je reste un peu avec mon épouse qui et très fatiguée.
Merci encore, j'apprécie beaucoup l'aide que je reçois pour ce problème. :) :)
Bonne soirée
 
J

jpbbricole

Compagnon
Bonsoir Andoche

La 50 Ohm (47 Ohm)est déjà en place, côté émetteur, ça c'est bon.
Côté récepteur,
je remplace la résistance de 100homs par une de 10Khoms
oui, surtout tu supprimes la 10K qui "entre" sur A1.

ça doit donner ça:
1629485922214.png


Cordialement
jpbbricole
 
A

Andoche

Compagnon
oui, surtout tu supprimes la 10K qui "entre" sur A1.
Bonjour
Pour ne pas faire de bêtise.
J'avais déjà changé la valeur des 2 résistances.
Je pense que celle de 220homs peut aller????
Dois-je modifier quand même celle de 1KHoms en10 Khoms?
La modification du schéma ci-dessous sera t'elle valable?
Merci par avance et pardon pour mon ignorance dans ce domaine.

CompteursVis Mere04.jpg
 
J

jpbbricole

Compagnon
Bonjour Andoche
Je pense que celle de 220homs peut aller????
Non, le schéma originel a 47 ohms donc à garder.
Avec 220 ohms, "l'illumination" risque d'être trop faible.
Dois-je modifier quand même celle de 1KHoms en10 Khoms?
Non, il faut essayer avec ça, si le comptage se fait mal on peut l'augmenter.

La modification du schéma ci-dessous sera t'elle valable?

1629526378576.png

Oui, à ponter


A+
Cordialement
jpbbricole
 
A

Andoche

Compagnon
Oui, à ponter
Bonjour
J'espère ne pas trop abuser.
Cette nuit ça tournait dans ma tête, alors j'ai passé une partie de la nuit à chercher des résistances.
Ensuite essayer de comprendre comme était fait mon circuit électronique.
J'ai un peu oublié ce que j'avais fait et je m'embrouille un peu.
Je vais passer la résistance de 220 Homs, à 47 Homs pour "l'illumination".
Je pensais mettre une résistance de 10Khoms en parallèle sur la 1Khoms.
Ce qui donne 909,09 Homs, (sil y a encore des problèmes après la modification de "l'illumination" ).
La résistance de 1Khoms est facile à repérer, et surtout c'est plus facile à modifier le circuit électronique sans erreur.
Si tu confirmes j'attaque cet après midi.
Je te remercie encore, pour ta patience et ta disponibilité.
Bonne journée
 
J

jpbbricole

Compagnon
Bonjour Andoche
Je pensais mettre une résistance de 10Khoms en parallèle sur la 1Khoms
La résistance de 10k en parallèle ne sert pas à grand chose, voire même est inutile, laisses uniquement 1K ça doit fonctionner.
L'essentiel est la 47 Ohms pour l'illumination et surtout
1629540284355.png

supprimer ou ponter cette résistance.

Après ça tu peut attaquer!

Bonne après-midi
jpbbricole
 
A

Andoche

Compagnon
Bonjour
Je viens de monter la 47 Homs, et ponter la 10Khoms (de A1).
Le comptage marche en permanence sans que je touche le disque à trous, dés la mise en route du programme.
La résistance de 10Khoms pontée ou non.
En fonction de ta remarque un peu plus haut et en fonction de ma dernière modification, ne faut-il pas au contraire augmenter la résistance pour affaiblir encore le signale de "l'illumination" avec le risque d'avoir un signal trop faible?
J'ai mis une résistance de 330 homs pour le moment le comptage ne défile pas tout seul.
A voir dans le temps.
Par contre VRCVM perd de nouveau sa valeur référence.
Je commence sérieusement à me poser la question de savoir si je vais réussir sur ce projet.
Pourtant il ne manque pas grand chose.
Pour aujourd'hui j'arrête.
Merci à vous tous et bonne soirée.
 
J

jpbbricole

Compagnon
Bonsoir Andoche

Ca "sent" l'entrée "en l'air"! ou le GND pas connecté!
1629568341221.png

Contrôle la connexion entre le point 1 et l'entrée A1, tu dois avoir 0 ohms.

Contrôle que tout tes GND soient connectés au GND de l'Arduino.
Pour éviter la confusion, corriges cette ligne:

const int codeur = 1; //Codeur affecté à la pin analogique "A1"
en
const int codeur = A1; //Codeur affecté à la pin analogique "A1"

Charges ce petit bout de programme
Avec la console à 115200, si tu tournes la roue du codeur tu dois "voire" passer les trous par l'augmentation de la valeur affichée.

A+
Cordialement
jpbbricole
 
A

Andoche

Compagnon
Contrôle la connexion entre le point 1 et l'entrée A1, tu dois avoir 0 ohms.
Bonsoir
Entre ce point et le A1 de l'Arduino = 0 Homs
Idem pour le A3 d'Arduino .
const int codeur = A1; c'était déjà fait.
Par contre quand j'insère le petit programme, Arduino devient tout rouge de colère
J'ai essayé en plusieurs endroits du programme, il ne veut pas.
A tout hasards j'ai joints le programme.
Pour mettre tout au GND de Arduino :smt017:smt017:smt017 ça va être autre chose.
Si j'ai tenté de passer la 47 Homs en 330 Homs, c'est grâce à tes explications.
Puisque maintenant je connais les effets, suivant la résistance installée.
Avant ont me disaient change la valeur de la résistance, je le faisais sans savoir ce que cela allait faire.
Bon pour ce soir je vais rejoindre ma femme et demain matin j'espère un tour de vélo .
à condition, que le programme ne m'empêche pas de dormir à force de tourner dans ma tête comme la nuit dernière :lol::lol: .
Bonne soirée.
 
A

Andoche

Compagnon
Bonjour
J'avais oublié de joindre le programme.
Il est indispensable que le GND du montage du codeur (fourche optique) soit relié au GND de l'Arduino.
Je vais voir tout ça dans la journée.
je retourne finir ma nuit.
bonne journée.
 

Fichiers joints

  • VisMereSeuleS38.rar
    4.3 KB · Affichages: 38
A

Andoche

Compagnon
Il est indispensable que le GND du montage du codeur (fourche optique) soit relié au GND de l'Arduino
Bonjour
Il y a des moments où je suis désespéré.
Je pense avoir tout dit avec les photos, pour les modifications concernant la masse.
Côté compteur, ça marche bien, ça part en brioche, ça remarche........ et surtout ça décompte tout seule.
Ce matin ou hier soir, je me souviens même plus tellement je fais des choses différentes pour solutionner tous ces problèmes.
Je me suis aperçu que lorsqu'un trou, du disque à trous, était devant le lecteur optique, ça ne décomptait pas tout seul.
Par contre quand une bosse du disque à trous s'arrête devant le lecteur optique, le compteur débite tout seul tout le temps (mais ça n'a pas toujours été le cas) .
Bon, ça c'est dans la configuration actuelle, programme et circuit électronique.
Je pense que ce n'était pas toujours le cas.
Mais il y avait d'autres problèmes.
Depuis le début c'est toujours ce compteur qui s'emballe tout seul de manière aléatoire qui est le gros point noir.
J'ai mis du temps à te répondre, mais il y a des fois je ne sais même plus quoi publier pour faire avancer les choses.
Je ne sais pas comment interpréter le résultat de ton petit programme?
Un petit point positif, en rentrant 2 fois de suite la valeur Référence dans VRCVM, il conserve sa valeur tout le temps.
Tous les compteurs décomptent bien et le compteur VM se recharge avec la bonne valeur quand il arrive à zéro.
je peux suivre la valeur de tous ces compteurs dans le moniteur série (écran PC).
Je me répète, mais merci encore pour ton aide.
Bonne journée à vous tous.

Masse01.jpg


Masse02.jpg


Masse03.jpg


Masse04.jpg
 
Z

zed

Compagnon
Bonjour,
Alors moi, pour mettre en évidence si le problème vient de l'électronique ou du logiciel, je ferais déjà un petit programme qui ne fait que compter les changements d'état de la roue. Et tant que ce programme/montage électronique restreint ne donnent pas entièrement satisfaction, ce n'est pas la peine d'aller plus loin. Ca te permettra de ne pas "embarquer" tout le reste de ton programme et modules électroniques qui peuvent produire des effets de bord...
Simplifier au maximum les tâches à effectuer et l'électronique associée. Une fois que cette "tâche élémentaire" est validée, tu la figes, et tu la testes dans l'environnement complet. Et là, si ça déconne encore tu sauras que c'est un effet de bord. Il faudra alors trouver d'où il vient en isolant un à un les autres éléments.
L'idée est de cloisonner chaque tâche/module électronique pour ensuite les faire dialoguer entre eux.
Le développement et la maintenance du code en seront grandement simplifiés

Bon courage et bonne continuation.

Zed.
 
S

speedjf37

Compagnon
la gestion du capteur:
Trous = analogRead(codeur);//lit la pin Analogique A1 pour récupérer les impulsions des trous (capteur fourche)
avec un analogRead n'est pas une bonne idée cette instruction est lente.
Il faudrait utiliser un compteur intégré pour ne rien louper pendant les temps d'affichage LCD et serial port.

Cordialement JF
JF
Bonjour,

Je remet cette info qui n'as pas servi !!!!!!

Il faut utiliser une lib avec un compteur Hardware qui utilise des fronts du signal et si possible 2 capteurs pour avoir le sens .

edit: C'est ce que j'utilise et @pailpoe aussi pour Minithread.

JF
 
A

Andoche

Compagnon
Bonjour.
Je n'ai pas encore lu les 2 posts ci-dessus.
Mais pendant que je tiens l'info au bout de ma souris.
J'ai changé la condition de validation de "Trous" comme ci-dessous.
Je touche du bois, c'est à confirmer, mais pour le moment ça fonctionne.

Trous = analogRead(codeur); //lit la pin Analogique A1 pour récupérer les impulsions des trous (capteur fourche)
// Serial.println (Trous);
if (Trous >= 300) //valeur référence élevée car les retour de la fourche varien
{
Trous = 1;
}
Devient
Trous = analogRead(codeur); //lit la pin Analogique A1 pour récupérer les impulsions des trous (capteur fourche)
// Serial.println (Trous);
if (Trous <10) //valeur référence élevée car les retour de la fourche varien
{
Trous = 1;
}
Je peux encore faire varier un peu le <10 à voir.
Je quitte pour lire ce qui est plus haut.
Merci à vous tous.
Sans vous j'aurais tout abandonné depuis longtemps.
Bonne soirée
 
A

Andoche

Compagnon
je ferais déjà un petit programme qui ne fait que compter les changements d'état de la roue.
Je peux me tromper, mais je pense que le petit programme de "jpbbricole" sert à ça.
Par contre je ne sais pas interpréter le résultat du programme.
1er je pense que je ne vais pas tarder à avoir une explication suite à ma copie d'écran.
2eme avec la modification que je viens de faire je vais de nouveau lancer le petit programme de "jpbbricole".
Ce que tu développes par la suite est plein de bon sens, c'est ce que je fais en mécanique.
Mais pour l'électronique j'hésite à m'écarter de ce que mon ami m'avez fait, ne connaissant pas les conséquences d'une éventuelle modification.
C'est sur les explications de "jpbbricole" que j'ai tenté en changeant la résistance de récupérer l'info que sur un courant un peu plus fort.
Que je pourrais par la suite repasser à son ancienne valeur si m'a modification du programme amène une solution au problème.
Merci pour ces conseilles.
 
A

Andoche

Compagnon
Je remet cette info qui n'as pas servi !!!!!!
Bonjour
J'avais bien enregistré cette info mais:
Pour moi ça devient très compliqué je ne connais pas assez Arduino.
J'ai bien commencé à lire "le blog d'Esquimon" qui m'a été conseillé plus haut.
Dans l'urgence de ce post je ne peux pas tout lire actuellement.
"avec un analogRead n'est pas une bonne idée cette instruction est lente.
Il faudrait utiliser un compteur intégré pour ne rien louper pendant les temps d'affichage LCD et serial port."
Quand j'ai commencé à écrire le programme, j'avais essayé d'utiliser "sérial port", mais je n'ais pas réussi à transformer l'analogique en série.
En plus je n'ai pas encore réussi à installer la dernière version de Arduino.
Idem pour les librairies qu'il me propose régulièrement.
Je viens juste de penser, le compteur intégré se trouve peut êtres dans les librairies?
Merci d'avoir persisté dans tes conseilles, mais à 83 ans, j'ai commencé par ce qui me paraît d'abord le plus facile face à mon incompétence en électronique et programmation Arduino.
Merci à vous tous, c'est super d'être soutenue comme ça.
Bonne soirée.
 
A

Andoche

Compagnon
Il faut utiliser une lib avec un compteur Hardware qui utilise des fronts du signal et si possible 2 capteurs pour avoir le sens .
j'avais monté 2 capteurs, comme on peut le voir sur la 1er photo en début de ma publication en page 1.
le 2eme capteur se trouvait sous la tôle blanche fixée avec 5 vis au dessus du capteur principal à 1/2 pas du disque à trous.
Mais l'infos venant de ce capteur fonctionnait très mal.
J'avais demandé à mon ami électronicien, qui m'a embarqué dans cette galère, de voir ce qui clochait (probablement dans mes soudures?), avec son oscilloscope et surtout ses compétences dans ce domaine:
ça fait 3 ans que je l'attends.
Du coup j'ai supprimé ce capteur la semaine dernière, pour supprimer une cause possible du disfonctionnement de mon système.
Bonne soirée.
 
J

JMe87

Apprenti
Bonjour a tous,
il n'y a aucune (bonne) raison d'utiliser une pin analogique pour un signal qui ne sait prendre que 2 valeurs (switch ouvert ou fermé, faisceau lumineux interrompu ou pas dans un capteur à fourche). Si vous le faites quand même, ce qui est parfaitement autorisé, la pin analogique se comporte alors comme une pin digitale en entrée et en sortie. Il faut alors utiliser digitalread ou digitalwrite. C'est beaucoup plus rapide et pas besoin de faire des comparaisons.
Bonne journée.
Jacques
 
J

jpbbricole

Compagnon
Bonjour JMe87
il n'y a aucune (bonne) raison d'utiliser une pin analogique pour un signal qui ne sait prendre que 2 valeurs (switch ouvert ou fermé, faisceau lumineux interrompu ou pas dans un capteur à fourche).
Le problème est qu'une "fourche" ne se comporte pas comme une porte logique elle peut prendre des états intermédiaires qui ne respectent pas les seuils qui disent qu'un 0 va jusqu'à 0.3*VCC et un 1 débute à 0.6*VCC.
Pour avoir une "fourche" logique il faudrait lui adjoindre un trigger de Schmitt.
D'où l'utilité d'utiliser une entrée analogique.

Cordialement
jpbbricole
 
A

albatros_del_sur

Compagnon
Bonjour
Voilà qui nous ramène au #7
La mise en forme du signal. Comme je l’ai dit sans oscilloscope ce n’est pas facile. Il faut que le signal soit “propre ” donc de niveau constant et exempt de rebonds.
ces capteurs n’ont pas forcément un bon niveau quand la vitesse augmente et peuvent être influencés par la lumière ambiante.
 

Sujets similaires

B
Réponses
8
Affichages
656
ben57
B
N
Réponses
3
Affichages
703
jpbbricole
J
J
Réponses
0
Affichages
382
joshuan76
J
E
Réponses
5
Affichages
833
chabercha
chabercha
Tom_Franche_Comté
Réponses
25
Affichages
729
Nolandu45340
Nolandu45340
lolo
Réponses
0
Affichages
373
lolo
P
Réponses
5
Affichages
745
desmo-phil
desmo-phil
marsouin84
Réponses
36
Affichages
2 327
lacier
L
dany68
Réponses
25
Affichages
1 673
guy34
G
M
Réponses
77
Affichages
5 868
Montgomery
M
wika58
Réponses
261
Affichages
17 578
midodiy
midodiy
DDMIL
Réponses
3
Affichages
2 189
tournele
tournele
M4vrick
Réponses
13
Affichages
777
M4vrick
M4vrick
L
Réponses
10
Affichages
760
copeaudacier
C
Haut