Aide Programmation compteur vis mère

M

mvt

Compagnon
Bonsoir Andoche,

Comme je n'ai pas la partie matériel, je ne peux faire de tests. Il me semble avoir vu un système permettant les simulations, je regarderai, le boulot a repris... et je n'ai pas fini la Sydéric :(
Il me semblait que String était plus conforme. Si char* fonctionne, c'est très bien comme ça. Le mieux...
Me concernant, tant pour la vidéo que l'impression 3D, je ne compte pas dessus pour gagner ma vie (et financer ma retraite)
Comme le font certains, tu peux aussi faire une vidéo sans parler. Si les images sont explicites
A moins que tu souhaites partager ta douce voix de stentor avec nous :)

Pour le montage vidéo, il me semble qu'il existe un truc par défaut dans windows. Je regarderai à l'occasion.

Bonne fin de soirée
 
A

Andoche

Compagnon
Bonjour
Je viens après plusieurs tentatives, à réaliser une vidéo, qui je pense explique le pourquoi de la programmation, que vous m'avez aidé à finaliser.
Problème, il pèse 2 332 324 Ko.
Usinage ne peut pas le traiter.
Que faire ??? SVP pour publier cette vidéo.
Quel est le poids maximum d'un fichier qui peut être chargé dans Usinage SVP.
Merci et bonne journée

PS: C'est un fichier .mp4
 
Dernière édition:
A

Andoche

Compagnon
Bonjour.
J'ai réussi à publier la vidéo sur YouTube.
Par contre:
Après plusieurs vidéos qui ne m'ont pas satisfait, et à bout de nerf devant mes échecs, à 1 ou 2 endroits il y a quelques jurons, qui m'ont échappé.
C'est vraiment pas très correcte ni élégant, je vous prie de bien vouloir excuser ces 2 grossièretés.
Alors vous êtes prévenu, ne regardez pas cette vidéo si vous ne pouvez pas supporter ces 2 écarts de langage que je regrette sincèrement.
Mais honnêtement, je ne me vois pas me lancer dans une autre vidéo.
En espérant que la vidéo sera suffisamment explicite.
Le site YouTube ci dessous.

Jai ajouté une photo de mon système de débrayage en fin de course, dans son état complètement replié.
Plus une photo du détecteur de bossage pendant et après le filetage et le filetage au pas M8x1,25.
Bonne soirée.

IMG_20210903_103931.jpg


IMG_20210903_154802.jpg


IMG_20210903_154854.jpg


IMG_20210830_185941_1.jpg
 
M

mvt

Compagnon
Merci Andoche,

Je regarde tout ça dans la soirée ou demain.

Chouette, une vidéo avec des jurons :)
 
S

speedjf37

Compagnon
Bonsoir,


@Andoche

bravo pour ta persévérance !
Pas évident de se mettre à écrire du code à un certain age ni de filmer une vidéo et la mettre en ligne.


J'ai fait quelques corrections surtout pour éclaircir le code !

Le tableau d'affichage est enfin utilisable mais Il y aura un peu de nettoyage à faire !!!!!!!

repérable par //jf

Le code compile mais n'est pas testé !!!!!

N'hésite pas à poser des questions.






Cordialement JF
 
A

Andoche

Compagnon
N'hésite pas à poser des questions.
Bonsoir
Tout d'abord merci pour ce travail, c'est super sympa.
Je viens de voir le programme que tu as modifié.
Il est tard, je n'ais pas le temps ce soir de l'étudier.
Mais j'ai essayé de le téléverser:
En 1er, avec le nom légèrement modifié "VisMereSeule50mvt-" au lieu de "VisMereSeule50mvt", la 2eme photo.
En 2eme, strictement identique à ce que tu m'as envoyé, la 1er photo.
Dans les 2 cas, j'ai un message d'erreur .
Voir copies écran.
Demain j'espère avoir les idées plus claires.
Merci et bonne soirée

Capture d’écran (1236).png


Capture d’écran (1235).png
 
P

pascalp

Compagnon
Je ne pense pas que cela vienne du code, j'ai compilé et téléversé sans problème sur un arduino nano.

Le message "carte non disponible sur com3" correspond plus à une carte non branchée ou un mauvais port com sélectionné.
 
A

Andoche

Compagnon
Le message "carte non disponible sur com3" correspond plus à une carte non branchée ou un mauvais port com sélectionné.
Bonjour et merci.
Franchement, je doit être maudit des Dieux.
Il me manquait plus que ça.
Sous Arduino quand je vais dans outils: "port >" est grisé et inaccessible.
Je suis allé dans gestio
nnaire de périphériques.
Ports (com et LP) Arduino Uno (com3) est précédé d'un triangle jaune.
J'ai demandé une mise à jour du pilote, Windows me dit que le meilleur pilote est déjà installé.
Avant j'avais essayé un autre câble de liaison au PC, ça ne fonctionnait pas non plus.
Je travaille des mois et des mois tout fonctionne, et maintenant c'est le port qui tombe en panne.
Il y a de quoi se tirer des plombs dans la cafetière. :grilled:
Il va être 4h du matin, je retourne essayer de dormir.
je trouverai peut-être une solution dans la journée?
Heureusement dans l'Arduino il y a le programme "VisMèreSeule51mvt" de mvt qui fonctionne.
Bonne journée à vous tous.

Capture d’écran (1237).png
 
Dernière édition par un modérateur:
S

speedjf37

Compagnon
Bonjour Andoche ,

1) Une bonne nuit de repos , un arrêt complet du PC !

2) Un bon petit déjeuner puis on relance tout (PC + IDE Arduino)

3) On vérifie la version du code et on compile (seulement) avec la première icône.
Si la compilation se termine sans erreur on peut continuer

4) On branche le "UNO" éventuellement sur un autre port USB.
après détection et vérification dans Outils Port
on peut lancer une compilation avec téléchargement !!!!

PS 1 ) Vu le prix d'une carte Arduino UNO , avoir une carte en réserve pour faire les essais .

PS 2) Parfois le fait d'avoir le terminal série ouvert bloque le port et le téléchargement.

Cordialement JF
 
Dernière édition:
A

Andoche

Compagnon
1) Une bonne nuit de repos , un arrêt complet du PC !

2) Un bon petit déjeuner puis on relance tout (PC + IDE Arduino)
Bonjour
Nuit un peu perturbée, si l'Arduino tourne mal, dans le tête là, ça tourne fort.
J'ai lancé le PC puis l'Arduino, ensuite les 2 à la fois.
J'ai vérifié que le moniteur série n'était pas en marche.
J'ai changé de port USB.
Dans outil le port com3 est toujours grisé.
j'ai bien regardé la liaison PC Arduino se fait sur la carte de base.
Donc, j'ai tout enlevé et gardé uniquement la carte de base.
Le com3 est toujours grisé.
Le message d'erreur est: "La carte sur com3 n'est pas disponible"
Je pense que c'est cette carte qui pose problème???
Si je change cette carte, cela me permet de garder la carte des boutons (que je ne trouve pas sur le web pour le moment) et de l'écran.
Sur Amazon il y a une carte pour 25€.
Mon raisonnement est il valable SVP?
Bonne journée et merci.

PS: quand l'Arduino est débranché, il ni a plus d'alerte dans le gestionnaire de périphériques.
 
Dernière édition:
M

mvt

Compagnon
Bonjour Andoche,

Quel port est indiqué dans le gestionnaire de périphériques une fois que l'arduino est branché. Il m'est déjà arrivé qu'il change de port en fonction de la prise USB sur laquelle il est branché.

Sinon, il existe un outil de simulation permettant de faire des schémas d'implémentation d'arduino et de composants et de tester le programme associé. C'est : https://www.tinkercad.com/join
 
Dernière édition:
A

Andoche

Compagnon
Bonsoir
Après une après midi à installer une baignoire chez un ami et un soupé, je reviens à mes problèmes.
Speedjf37: j'avais bien vue c'est passages inutiles.
C'est suite à des suppressions d'anciennes écritures devenues inutiles, j'ai souvent laissé les accolades pour éviter de galérer un bon moment avant de supprimer ou ajouter les ouvertures et fermetures au bons endroits.
Et puis puisque ça fonctionne alors, je ni touche plus , ou même j'oublie.
Ou bien quand je change une chose qui a marché, je le mets entre // // au cas ou, et puis j'oublie je suis pris par le fonctionnement.
C'est évident qu'il va falloir que je face un nettoyage de toutes ces parties inutiles.
Ha, une chose encore, comme j'ai de la peine à trouver la bonne écriture (position d'un ; ou autre écritures) je garde entre // // pour me souvenir de la façon d'écrire certaines choses qui ont fonctionnaient et que je risque de réutiliser.
A la fin c'est plein de choses inutiles.
Malgré tout il y a beaucoup de choses qui sont passaient à la poubelle.
Quand tout fonctionnera parfaitement, ce qui est le cas actuellement, j'en ferai une copie que j'allègerai des parties inutiles.
J'ai comparé ce que tu as écrit de la 1er à la dernière ligne.
Je ne saisis pas la différence entre const char* Afficheur[10] = {" ", et char Afficheur[10][17] = {" ", le * qui disparait et la fonction du [17].
Pour le reste je pense avoir tout compris.

mvt bonjour,
Il me désigne le port com3.
Je vais essayer le logiciel de simulation que tu m'as indiqué.
C'était ma 1er vidéo publié sur le web.
Ce qui m'a permis de comprendre le fonctionnement de plein de choses que je consultais, sans voir le travail et le fonctionnement en amont.
A ton avis, j'ais fait beaucoup d'erreurs ou ça pouvait aller?
Cela était il assez clair et compréhensible?
Merci de me dire ce qui n'allait pas, pour l'éventualité d'une autre vidéo dans le future pour un autre sujet.
Bonne soirée et merci à vous tous.
 
Dernière édition:
P

pascalp

Compagnon
Il est possible que le driver du port com est "sauté". Si c'est un arduino chinois la puce de communication ftdi-usb est vraisemblablement une ch340g. Si tu ne vois pas "CH340" au niveau du driver, c'est qu'il y a potentiellement un loup à ce niveau, en admettant que la carte ne soit pas grillée et que le câble soit bon ...
Tu peux dans un premier temps désinstaller le port com, débrancher l'arduino puis le rebrancher pour voir ce qui ce passe.
Si le port est toujours grisé et si le port com n'apparait pas comme "USB-SERIAL CH340 (COMx)", tu peux essayer une mise à jour du pilote, option "rechercher des pilotes sur votre ordinateur" puis "choisir parmi une liste de pilotes disponibles sur mon ordinateur", en toute logique si ta carte a déjà fonctionné c'est que le bon pilote doit (devait) être présent. Dans la fenêtre suivante, avec la case "afficher les matériels compatibles" cochée tu devrais voir apparaitre le pilote USB-SERIAL CH340, reste à le sélectionner et à valider.

Si ta carte était une "vraie" arduino, le pilote serait disponible dans l'arborescence "drivers" du dossier où s'éxecute le programme arduino.

NB: Quand l'arduino n'est pas branché, le port com et son driver ne sont pas directement visible. Pour les voir, il faut cocher "affichage", "affichage des périphériques cachés". Tu pourras avoir accès à toutes les infos.
 
M

mvt

Compagnon
Bonsoir Andoche,

Je ne saisis pas la différence entre const char* Afficheur[10] = {" ", et char Afficheur[10][17] = {" ", le * qui disparait et la fonction du [17].
const char* Afficheur[10] = {" ", correspond à l'écriture "canonique" issue du C. En théorie, cette écriture est remplacée par String, mais apparemment, cela n'a pas fonctionné. Pour faire simple, la petite * signifie que l'on travaille avec un pointeur dur des chaînes de caractères dans un tableau.

char Afficheur[10][17]
signifie que tu réserve en mémoire 10 positions de 17 caractères chacune. C'est une autre façon, moins canonique, de s'en sortir.

La mise à jour proposée par windows n'améliore pas les chose ?
Si le panneau "danger" reste affiché, il suffit de supprimer le port et le driver associé. Normalement, en rebranchant l'arduino, il doit proposer le téléchargement du driver. Sur mon PC, je l'avais installé à la main auparavant.
 
A

Andoche

Compagnon
Si le panneau "danger" reste affiché, il suffit de supprimer le port et le driver associé. Normalement, en rebranchant l'arduino, il doit proposer le téléchargement du driver. Sur mon PC, je l'avais installé à la main auparavant.
Bonjour
Ho! MIRACLE, le port est revenu.
Tu m'as encore dépanné.
D'abord, je vois que tu es bon dans plein de domaines.
Ensuite, je ne peux, que te remercier sans rien en retour.
Maintenant, je vais pourvoir téléverser la modification de speedjf37.
Si tout est bon, je pourrai supprimer les parties du programme qui ne servent plus, sous un autre nom.
Tu peux dans un premier temps désinstaller le port com, débrancher l'Arduino puis le rebrancher pour voir ce qui ce passe.
Voila ce que j'expliquais un peu plus haut.
Dans une 1er lecture, ma tête n'avait pas bien saisie ce qu'il fallait faire, où aller pour situer tout ça.
Ce matin après avoir fait la modification, de mvt, j'ai relus ce passage de ton message qui disait la même chose.
Cette fois ça m'a parut d'une évidence aveuglante.
C'est les inconvénients de mon ignorance dans ce domaine.
Peut-être aussi l'âge, qui m'oblige à relire plusieurs fois, pour que mon cerveaux déchiffre ce qui est écrit.
Je faire une 3eme lecture pour décortiquer les autres points du message.
D'abord je vais téléverser la version de speedjf37, et voir si tout fonctionne.
Je vous suis infiniment reconnaissant à tous, pour l'aide que vous m'avez amené.
Bonne nuit.

Capture d’écran (1238).png
 
A

Andoche

Compagnon
N'hésite pas à poser des questions.
Bonjour
J'ai téléversé le programme, sans l'avoir nettoyé.
Pour dans un 1er temps voir si tout est bon.
2 remarques qui n'ont aucune influence sur le fonctionnement.
Sur l'image jointe, il apparaît 4 lignes avec des points sur le 2eme digit du haut en partant de la gauche (qui disparaissent au passage de la bosse suivante), juste avant l'affichage du chenillard.
Quand j'initialise le programme, que je sois sur une bosse ou un trou, le logiciel affiche 10 trous au lieu de 11 trous.
ça n'a aucune importance, mais dans la journée je vais regarder le pourquoi de la chose.
Mais tout fonctionne parfaitement.
Maintenant il faudra que je nettoie le programme.
je ne pense pas rencontrer de difficulté.
Mercie speedjf37 pour ton aide.

Il est 5h du matin je retourne finir ma nuit :smt015:smt015

Capture d’écran (1239).png
 
S

speedjf37

Compagnon
Bonjour,

Absent hier , je constate l'avancée !
Super pour le port com si ce n'était qu'un problème de driver.

@mvt
Je suis d'accord pour la forme d'écriture du tableau.
le char Afficheur[10][17] permet de visualiser la taille du tableau.

Cependant ma démarche consiste à aider le plus simplement possible @Andoche par rapport à ce qu'il a écrit.

Il est évident qu'il y a des formes +- standard/officielle/personnelle d'écriture d'un code logiciel , on y retrouve un style pour chaque programmeur/entreprise.

Si l'on devait écrire chacun une version perso correspondant à un cahier des charges précis , on aurait surement des versions totalement différentes.

Le code version Arduino est un pseudo C++ (les ressources matérielles étant limitées).
Pour avoir observé (professionnellement) de très nombreux programmes de différentes origines on y trouve souvent un style qui dépend du niveau de celui qui l'écrit au point d'avoir du code concentré , illisible et difficilement modifiable .

Cordialement JF
 
Dernière édition:
S

speedjf37

Compagnon
Quand j'initialise le programme, que je sois sur une bosse ou un trou, le logiciel affiche 10 trous au lieu de 11 trous.
Dans Setup:
int CT = 11; //compte le nombre de trous sur le disque de la vis mère 10trous = 1 tour complet de vis mère

Dans le traitement:
if (CT == 0) //SI le compteur trous arrive à zéro
{
CT = 10; //on réactualise la valeur du compteur trous à 10 (CT=10)
}


lcd.print(Afficheur[CT]) ; avec CT = 11 ou 10 affiche une ligne hors du tableau (0 à 9)

Pour évider le débordement
if ( CT < 10 )
lcd.print(Afficheur[CT]) ;

Pour éviter d'avoir des valeurs éventuellement différentes partout dans le code , il vaudrait mieux utiliser une définition.
#define C_MAX_TROUS 10

char Afficheur[C_MAX_TROUS][17] =

Dans Setup:
int CT = C_MAX_TROUS ;

Dans le traitement:
if (CT == 0) //SI le compteur trous arrive à zéro
{
CT = C_MAX_TROUS; //on réactualise la valeur du compteur trous à MAX
}


if ( CT < C_MAX_TROUS)
lcd.print(Afficheur[CT]) ;



JF


Sur l'image jointe, il apparaît 4 lignes avec des points sur le 2eme digit du haut en partant de la gauche (qui disparaissent au passage de la bosse suivante), juste avant l'affichage du chenillard.

Surement lié au problème précédent !!!

JF
 
A

Andoche

Compagnon
char Afficheur[10][17]
Bonjour.
Depuis cette nuit le [17] a, je pense trouvé le chemin de mon cerveau.
Je vois la chose comme ça, en schématisant au maxi.
Je dis au logiciel, il me faut une case plus longue que la courte pour que " 888888888"}; puisse entrer dans la case, mais surtout pas plus.
Mais dans la grande case je veux utiliser que 17 caractères.
Ce qui permet de limiter l'espace utiliser dans la mémoire du programme.
#define C_MAX_TROUS 10
Bon je pense aussi, avoir compris le but de cette écriture.
Mais il faudra que relise pour bien digérer tous les détails de cette programmation.
Quand j'aurai mis à jour toutes le contraintes de la vie courante (courses, aider mon épouse etc).
Je pense commander une réserve de chaque composants.
Ce qui me permettra d'avoir un 2eme Arduino, que je pourrai éventuellement utiliser, tout en gardant l'Arduino actuel uniquement pour le filetage.
Merci aussi pour toutes les adresses.
Je vois que, dans ce domaine, je suis complètement hors course.
Un grand merci et bonne journée à vous tous.
 
S

speedjf37

Compagnon
Les 17 c'est pour :
16 caractères le max de l'afficheur
+1 pour le 0x00 qui termine toute chaîne de caractères en 'C'
Si tu saisie une chaîne trop longue cela génère un erreur de compilation
Jf
 
M

mvt

Compagnon
Bonjour,

Il est évident qu'il y a des formes +- standard/officielle/personnelle d'écriture d'un code logiciel , on y retrouve un style pour chaque programmeur/entreprise.

Cela reste à relativiser. D'expérience professionnelle, il existe des formes et des standards à respecter. Et sur les projets, les revues de code ne sont pas faites pour les chiens... Si un particulier se moque de la maintenabilité et de la documentation, ce n'est pas le cas dans les entreprises dont c'est le métier. Maintenant, cela dépend de la "rigueur" des équipes en question.
Me concernant, mieux vaut avoir un "code élégant" avec un algorithme bien calibré qu'un code merdique utilisant des instructions que seuls 0,01% des programmeurs connaissent, un algo merdique et une programmation où il n'y a pas un bit en trop.

Avec l'avènement de la micro informatique, c'est fou le nombre de gens qui se considèrent comme étant des programmeurs hors pair. Des artistes du code (dire programmation aujourd'hui est un gros mot, il faut apprendre le code... C'est les même qui disent qu'il y pénurie de programmateurs sur le marché).

Pour ce qui est des ressources limités je connais, l'ordinateur de ma première boite avait 16 k de mémoire, on avait des cartes 80 colonnes, des disquettes 8" (256, 512 et 1024k) et des disques amovibles de 32 Mo. Pour autant, on faisait toutes la gestion des boites clientes, des télétransmissions et même des traitements interactifs (minitel compris)... Bon, ça ne rentrait pas dans la poche !
 
A

Andoche

Compagnon
Le code compile mais n'est pas testé !!!!!
Bonjour.
Tout fonctionne parfaitement.
Par contre quand je fais le nettoyage le compteur vis mère "CM' ne tourne plus.
Il faut que je trouve le petit détail que j'efface en trop.
Après 3 essais en échecs, je vais changer de sujet un certain temps.
Ensuite, je reviendrais sur le nettoyage du programme, avec du recule, souvent on a les idées plus claires.
De toutes façons j'ai la version, VisMereSeule51mvt, qui fonctionne malgré les lourdeurs d'écriture.
Excuse moi si je fais un break, après tout le travail que tu as fais, mais là je sature un peu.
C'est certain, je vais revenir dessus un peu plus tard, je suis même impatient de trouver pourquoi ce compteur ne tourne pas.
Je pense même que la solution doit être assez facile, mais là, je patine.
Je vous remercie tous pour l'aide que vous m'avez tous si généreusement et aimablement fournit.
J'ai enfin mon programme qui tourne correctement.
Je ne lâcherai pas le morceau, pour mémoire, je suis dessus depuis 2019.
Bonne journée à vous tous.
 
M

mvt

Compagnon
Bonjour Andoche,

Le mieux est l'ennemi du bien et j'aime bien la méthode anglaise : si ça marche, on ne démonte rien (en dehors de l'entretien bien entendu)
Laisse poser un peu. Ce qui est obscur aujourd'hui s'illuminera demain :)
Bonne journée aussi
 
A

Andoche

Compagnon
Ce qui est obscur aujourd'hui s'illuminera demain
C'est pour ça que je fais une pose.
Mais depuis mon message, ça a déjà cheminé dans ma tête.
La prochaine fois que je vais nettoyer, au lieu de tout nettoyer d'un coup, je vais faire par petites touches.
Quand ça marche plus, c'est dans ce que je viens d'effacer que se trouve le problème.
Quand il est situé, c'est la moitié du travail de fait. :-D:-D
Bonne journée à vous tous.
 
A

Andoche

Compagnon
Bonsoir.
Avec le programme à nettoyer de Speedjf37.
Chaque fois que je faisais un nettoyage du programme, la valeur 'VM" de la vis mère ne décomptait plus.
Alors que le compteur trous "CT" fonctionnait normalement.
Je pensais que mon nettoyage provoquait ce problème.
A un moment j'ai rechargé le programme de "Speedjf37", une fois téléversé, sans modification , je me suis aperçu que j'avais le même problème que ci-dessus.
Et idem avec le programme "VisMereSeule50mvt-.ino" ou encore "VisMereSeule51mvt-.ino" qui fonctionnaient très bien au paravent.
Bref je passe sur la suite.
Une des pines de l'afficheur, de prise d'infos sur l'Arduino que mon ami avait soudé, était dé-soudé.
Après réparation et vérification que tout fonctionnait bien.
J'ai fait le nettoyage comme indiqué par Speedjf37.
Comme tout fonctionnait très bien. :smt041 :smt041 :smt041
Je me suis attelé à la modification du post #108.
J'ais surement mal incorporé les modifications de Speedjf37, puisque ça n'a pas fonctionné.
Provisoirement, j'ais remis const char* Afficheur[10] = {" ",
Tout étant OK.
Je reviendrai dessus à tête reposée.
Dommage la démarche me paraissait tout à fait logique.
Malheureusement, je n'ais pas pu la reproduire correctement dans le programme.
Mais enfin, c'est quand même pas de chance :smt017:smt017:smt017:smt017:smt017 d'avoir en plus une panne de soudure, qui provoquait des pannes aléatoires.
J'arrête de vous saouler .
Bonne soirée.
 
Dernière édition:
M

mvt

Compagnon
Bonsoir Andoche,

Content que tu ai pu résoudre ton souci.
Il me reste maintenant de tenter de faire l'équivalent... quand j'aurai un peu de temps. Les projets s'empilent !
 

Sujets similaires

C
Réponses
14
Affichages
1 005
chabercha
chabercha
M
Réponses
6
Affichages
483
speedjf37
S
Pascal-Bob
Réponses
44
Affichages
1 552
Pascal-Bob
Pascal-Bob
S
Réponses
12
Affichages
909
Pascal25
Pascal25
B
Réponses
8
Affichages
882
ben57
B
N
Réponses
3
Affichages
1 344
jpbbricole
jpbbricole
V
Réponses
5
Affichages
8 517
E
thierry hugou
Réponses
16
Affichages
5 638
thierry hugou
thierry hugou
J
Réponses
4
Affichages
1 639
Simon67
Simon67
B
Réponses
10
Affichages
2 329
blondin21
B
G
Réponses
6
Affichages
1 579
gatchou
G
C
Réponses
1
Affichages
4 108
MIC_83
MIC_83
D
Réponses
72
Affichages
1 512
D
Haut