Aide Programmation compteur vis mère

Andoche
Andoche
Compagnon
Bonjour Speedjf37.
Tout fonctionne super bien.
J'ai voulu faire la modification du post #108.
Comme dit plus haut, j'ai échoué.
Je suis allé voir dans les Références, la signification de tous les termes du C++.
Mais maintenant je sature.
Si j'avais 10 ans de moins je me serais replonger à fond dedans, mais à 83 ans j'avoue que je n'ais plus le courage.
Alors si tu pouvais inclure ta modification dans mon programme ce serait super.
Sinon il restera dans son état actuel.
En te remerciant par avance, et si toute fois, cela ne te dérange pas trop.

//Programme pour retomber dans le pas après débrayage vis mère. AVEC BUTEE ARRIERE EN FONCTION
const int CONNECTION = 13; //prend la pin 13 pour la liaison série avec écran PC
const int codeur = A1; //Codeur affecté à la pin analogique "A1"
const int InterButee = 3; //le détecteur de butée arrière sur le banc du tour affectée à la pin analogique "A3"
int Trous = 0; //lecture de l'état de la pin analogique "A1" dans trous
int ButeeAR = 0; //lecture de l'état de la pin analogique "A3" dans "ButeeAR" Si ButeeAR=1
int VM; //Compteur Nombre de tours de la vis mère Evolu pendant la marche du tour
int CT = 11; //compte le nombre de trous sur le disque de la vis mère 10trous = 1 tour complet de vis mère
int VRCVM; //valeur référence compteur vis mère varie en fonction du pas à faire rentrée avec les boutons
//(résultat rapport pas à faire sur pas vis mère (pour Ramo T37 pas de 6mm))
int LastTrous = 0; //inverse de Trous pour faire un FRONT MONTANT
int Last_lcd_key;
const char* Afficheur[10] = {" ",
" 8",
" 88",
" 888",
" 8888",
" 88888",
" 888888",
" 8888888",
" 88888888",
" 888888888"};
//____________________________Fin pour liaison série et variable vis mère___________________________


//POUR LIQUIDE CRISTAL --Début-
#include <LiquidCrystal.h> //Elle est appelée en début de programme avec #include <LiquidCrystal.h>

// Sélection des pins utilisées par l'écran LCD
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

// Definit des valeurs utilisées par les 5 boutons
int lcd_key = 0;//JF memo lecture clavier (code touche) // défini la pin utilisée pour les touches du clavier (Je pense ? )
int adc_key_in = 0;//JF Variable lecture clavier (analogique ) // défini les pins utilisée pour les entrées sur arduino de l’écran (Je pense ? )
#define btnRIGHT 0
#define btnUP 1
#define btnDOWN 2
#define btnLEFT 3
#define btnSELECT 4
#define btnNONE 5

// Lecture des boutons (tous regroupés sur la Pin Analog A0 (de l'écran LCD ? ))
int read_LCD_buttons() //lecture du bouton avec Read Rien entre les parenthèses on attend le N° du bouton qui sera appuyer

{ //____________________ON OUVRE UNE BOUCLE LIQUIDCRISTAL
adc_key_in = analogRead(0); // Lit la valeur analogique depuis le sensor sur A0 (la pin A0)suivant voltage ça designe le bouton

// centré sur ces valeurs : 0, 144, 329, 504, 741
// on ajoute environ 50 à ces valeurs et on vérifie si on est proche

if (adc_key_in > 1000) return btnNONE; // On définit ça en première option pour raison de rapidité car c'est l'option la plus probable (il n'y a aucun bouton appuyé au début)

// For V1.1 us this threshold Pour V1.1 sous ce seuil (ce qui suit)
if (adc_key_in < 50) return btnRIGHT; //si c’est en dessous de 50 c’est le bouton RIGHT qui est pris en compte
if (adc_key_in < 250) return btnUP;
if (adc_key_in < 450) return btnDOWN;
if (adc_key_in < 650) return btnLEFT;
if (adc_key_in < 850) return btnSELECT; //Sinon, on n'a aucun bouton de sélectionné (par défaut)

// For V1.0 pour commenter (/**/) l’autre seuil et utiliser celui ci-dessous :
/*
if (adc_key_in < 50) return btnRIGHT;
if (adc_key_in < 195) return btnUP;
if (adc_key_in < 380) return btnDOWN;
if (adc_key_in < 555) return btnLEFT;
if (adc_key_in < 790) return btnSELECT;
*/
return btnNONE; // Lorsque tous les autres échouent, retourner ce... quand aucun bouton appuyé retourne -reset-
} //____________________ON FERME UNE BOUCLE LIQUIDCRISTAL
// PROGRAMME VIS MERE______RIEN_____
// SETUP______________________________________________________________________________________________________________________________________


void setup()
{ //__________________________________DEBUT BOUCLE VOID SETUP //JF SETUP n'est pas une boucle on y passe qu'une fois au reset de l'arduino

//LIQUIDE CRISTAL --DEBUT-- DANS LE SETUP
{
lcd.begin(16, 2); // start the library définit un écran LCD de 16 caractères et 2 lignes. Lance la librarie (16 caractères et 2 lignes)
lcd.setCursor(0, 0); //positionne le curseur sur le 1er caracrère de la 1er ligne (haut)

lcd.clear(); //efface l'afficheur
lcd.print(""); // affiche 1 caractère vide
delay(30); // délai de 30/1000 seconde uniquement à la mise en route
}
//LIQUIDE CRISTAL --FIN-- DANS LE SETUP
{
Serial.begin(9600); //jf initialise la liaison série //on règle le débit de la connection Serie à 9600 bauds
Code:
#define TEXT_MAIN_MENU_TITLE "MON_LOGICIEL"

#define TEXT_AUTHOR_SOFT "Visrectif03"

#define TEXT_VERSION_SOFT "1.4.0"

Serial.print("TITRE : ");

Serial.println(TEXT_MAIN_MENU_TITLE);

Serial.print("Auteur : ");

Serial.println(TEXT_AUTHOR_SOFT);

Serial.print("Version : ");

Serial.println(TEXT_VERSION_SOFT);
pinMode(CONNECTION, OUTPUT); //on met la pin 13 (CONNECTION) en sortie
}
//if ((ButeeAR == 1)&&(Trous>1)) Si le trainard est en butée arrièr, que la butée arrière est actionnée (le contacte)
// que la vis mère est enclenchée et qu'un trou est en face de la fourche
//on peut renter la consigne du nombre de tours de vis mère
{
CT = 11; //Au départ mettre 1 trou en face de la fourche
// au 1er passage à vide du départ il met le CT égale à 10
}
}//______________________________FIN SETUP_
// LOOP____________________________________________________________________________________________________________________________________________

void loop()
{ //1_____________________________BOUCLE LOOP

// réaction à l'appui des boutons écrit sur la ligne N°1 du bas
if (read_LCD_buttons)
{ //4
lcd.setCursor(0, 1); // Curseur en début de seconde ligne (N°1 bas) JE PENSE PAS UTIL A VOIR
lcd_key = read_LCD_buttons(); // Lire le bouton appuyé avec read

switch (lcd_key) // Selon le bouton choisi
//on ouvre un 2eme niveau de boucle dans la 1er boucle
{ //5
//JF on n'incorpore pas de code dans le switch , par contre on peut le placer dans le corps du case

{case btnRIGHT: //6 Bouton marqué RIGHT droite ( VRCVM valeur référence compteur vis mère varie en fonction du pas à faire)
//on ouvre un 3eme niveau de boucle dans la 1er boucle
{//7
VRCVM = VRCVM - 10; //on décrémente de 10 en 10 la valeur rentrée de la vis mère
lcd.setCursor(12, 1); // sur le 13eme digit de la ligne du bas pour mémoire on par du digit 0
lcd.print(VRCVM);// affiche la valeur du nombre de tour de vis mère DECREMENTE de 10 en 10
delay(1000);
VM = VRCVM;
break;
}//7
case btnLEFT: // Bouton marqué LEFT (gauche)
{//7
VRCVM = VRCVM + 10; //on incrémente de 10 en 10 la valeur rentrée de la vis mère
lcd.setCursor(12, 1);
lcd.print(VRCVM); // affiche la valeur du nombre de tour de vis mère INCREMENTE de 10 en 10
delay(1000);
VM = VRCVM;
break;
}//7
case btnUP: // Bouton marqué UP haut
{//7
VRCVM = VRCVM + 1; //on incrémente de 1 en 1 la valeur rentrée de la vis mère
lcd.setCursor(12, 1);
lcd.print(VRCVM); // affiche la valeur du nombre de tour de vis mère INCREMENTE de 1 en 1
delay(1000);
VM = VRCVM;
break;
}//7
case btnDOWN: // Bouton marqué DOWN bas
{//7
VRCVM = VRCVM - 1; //on décrémente de 1 en 1 la valeur rentrée de la vis mère
lcd.setCursor(12, 1);
lcd.print(VRCVM); // affiche la valeur du nombre de tour de vis mère DECREMENTE de 1 en 1
delay(1000);
VM = VRCVM;
break;
}//7
}//6
case btnSELECT: //Bouton marqué SELECT remet VRCVM à zéro et efface la ligne du bas de l'afficheur
{//7
VRCVM = 0; //remet VRCVM à zéro (la valeur rentrée de la vis mère)
lcd.setCursor(0, 1);
lcd.print(" "); // efface la ligne du bas de l'afficheur
//______________________________
lcd.setCursor(0, 1);
lcd.print(VRCVM);
//_____________________________
break;
}//7
case btnNONE: // Bouton marqué RST relance le programme
{//7
lcd.print(""); // écrit sur aucune ligne mais fait un reset général
break;
}//7 //on ferme les 3eme niveaux de boucles

} //5

} //4 on ferme le 2eme niveau de boucle
{
//____________________________ON RENTRE DANS PROGRAMME VIS MERE
ButeeAR = analogRead(InterButee); // ON RECUPERE LES INFOS DE LA BUTEE ARRIERE
if (ButeeAR > 500)
{
ButeeAR = 0;
}
else
{
ButeeAR = 1;
}
} // affichage de valeurs de controle sur l'écran du PC. Peut être effacé
Serial.println ("ButeeAR:"); //Début de ce qui peut-être effacé
Serial.println (ButeeAR);
Serial.println ("VM"); //nom de la variable
Serial.println (VM); //valeur de la variable (en décimale)
Serial.println ("VRCVM:");
Serial.println (VRCVM);
Serial.println ("Trous:");
Serial.println (Trous);
Serial.println ("CT:");
Serial.println (CT);
//Serial.println (" "); //Fin de ce qui peut-être effacé

lcd.setCursor(9, 1); // Curseur sur ligne N°1 (bas) et position 9 (0, 1, 2, 3, >>>>>> 15) de l'afficheur LiquidCrystal
lcd.print(CT) ; // affichage valeur compteur trous sur l'écran ARDUINO

if (ButeeAR == 1) // si le detecteur arrière de Ø8mm (ou contact d'un inter) est enclanché (idem butée aux repères)
{
lcd.setCursor(12, 1); // Curseur sur ligne N°1 (bas) et position 12 (0, 1, 2, 3, >>>>>> 15)
lcd.print(VM) ; //affichage valeur compteur vis mère VM sur ardunio
}
// _____________________________________
if (VM < 100) //efface le dernier zéro du 100 quand le décrément arrive à 99 sur ardunio
{
lcd.setCursor(14, 1);
lcd.print(" ") ;
}
if (VM < 10) //efface le zéro du 10 quand le décrément arrive à 9 sur arduino
{
lcd.setCursor(13, 1);
lcd.print(" ") ;
}

//____________________________________

if ((VM == 1) && ( ButeeAR == 1)) //SI compteur vis mère=1 et compteur trous=10 (donc on attaque le dernier tour de vis mère avant embrayage) on met en route le chenillard
{ //_______________________________OUVERTURE BOUCLE CHENILLARD__________
lcd.setCursor (1,0);
lcd.print(Afficheur[CT]);
// ____________SI VM=1 ET CT= 0_____ON LANCE LE DEBUT DU CHENILLARD_______________________________
// Dans le dernier tour de vis mère suivant la valeur du compteur trous on affiche le chenillard avec CT 9 et on efface 1 à 1 avec 9 8 7 6....
// Les espaces vides permettent d'effacer les digits de l'afficheur

}//_______________________________FERMETURE BOUCLE CHENILLARD__________
//JF __FIN CHENILLARD__________





//_____________________TRAITEMENT DE CAPTEUR TROUS______
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;
}
//_______________OUVERTURE BOUCLE DESSUS !=Last trous
if (Trous != LastTrous) //l'action se fera sur le front montant de Trous (capteur fourche)
{
if (CT < 10)
{
lcd.setCursor(10, 1); // Curseur sur ligne N°1 (bas) de l'ardunio et position 10 (0, 1, 2, 3, >>>>>> 15)
lcd.print (" "); // si CT inférieur à 10 on écrase le digit zéro de la valeur 10
delay (30);
}
if (Trous == HIGH)
{
CT = CT - 1;
}
// à chaque trou on fait moins 1 à CT (compteur trous)
if (CT == 0) //SI compteur trous arrive à zéro
{
VM = VM - 1; // donc si CT=0 (la vis a fait un tour complet) on fait -1 au compteur VM de la vis mère
}
if (VM == 0) //SI le compteur VM arrive à zéro
{
VM = VRCVM; //on réactualise la valeur référence compteur vis mère (varie en fonction du pas à faire)
//(résultat rapport pas à faire sur pas vis mère (pour Ramo T37 pas de 6mm)
}
if (CT == 0) //SI le compteur trous arrive à zéro
{
CT = 10; //on réactualise la valeur du compteur trous à 10 (CT=10)
}
} //jf fin if (Trous != LastTrous)

LastTrous = Trous; // Fin programme FRONT MONTANT on vide Trous dans LastTrous pour mémoriser l'état pour le prochain tour
}//1_____________________________BOUCLE LOOP

Bonne journée, et merci encore pour ton aide.
 
Andoche
Andoche
Compagnon
Speedjf37, je joins à tout hasard le fichier en pièce jointe.
Merci et bonne journée.
 
Fichiers joints
  • VisRectif03.rar
    4.3 KB · Affichages: 6
mvt
mvt
Compagnon
Bonsoir Andoche,

Si tu n'as rien changé à la logique, cela me semble bon.
Ce que proposait Speedjf37, c'était, entre autre, de remplacer les "chiffres en dur" par des constantes définies en début de programme, pour la valeur 10 de Afficheur et 11 pour CT ce qui permet, en une seule modification en début de changer ces valeurs d'un coup. Cela vaut pour les programmes complexes, mais là, c'est un "embellissement" (pour moi.)
Comme ton programme fonctionne bien comme ça, laisse le en l'état. C'est suffisamment clair. Dans le pire des cas, tu peux supprimer les anciennes instructions que tu as laissées en commentaires, mais ce n'est pas une nécessité.
 
Andoche
Andoche
Compagnon
Merci mvt.
Ma vidéo, n'était pas trop nulle j'espère.
j'ais assez galéré pour la faire.
Bonne soirée, et le bonjour à ta fille qui m'avait bien dépanné :)
 
mvt
mvt
Compagnon
Bonsoir,

J'aime bien la vidéo "amateur" avec le bazar électronique. Au moins le langage est clair et didactique. J'ai compris de façon simple le chiffre à rentrer qui correspond certainement sur les machines qui en ont un au chiffre de l'appareil à retomber dans les pas. Le fonctionnement est nickel. L'arrêt auto en fin de filetage est intéressant aussi.
Ma fille est repartie hier à Vienne :)
Merci Andoche.
 
Andoche
Andoche
Compagnon
Bonjour mvt.
Dans mon entourage, même mes beaux frères, n'étaient pas capable de me donner un avis.
J'étais à 2 doigts de supprimer la vidéo.
Merci pour ton avis, cela me rassure.
Bonne soirée.
 
S
speedjf37
Compagnon
J'étais à 2 doigts de supprimer la vidéo.
Bonjour,

Ce serait dommage de la supprimer.

J'ai pris le temps de la regarder et j'ai retenu quelques trucs.
Il serait bien d'afficher sur l'écran ( il y a de la place ) l'état de tes entrées butée et comptage.

On pourrait aussi mémoriser en flash la valeur des paramètres.

JF
 
Andoche
Andoche
Compagnon
Il serait bien d'afficher sur l'écran ( il y a de la place ) l'état de tes entrées butée et comptage.
Bonsoir
Je ne sais pas si je réponds bien à la question.
Ce sont des copies d'écran, à des moments différents.
Dans le désordre:
La butée arrière AR qui est toujours à 1 (pontée dans mon montage manuel).
La mémoire dans laquelle je rentre le nombre de tours de la vis mère VRCVM, dans le cas présent réglée à 3.
Le compteur Nb tours de vis mère VM, va se resourcer avec cette valeur (mémorisée dans VRCVM) chaque fois qu'il arrive à zéro.

Le compteur trous VT, et le compteur nombre tours vis mère VM flashé à 3 instants différents.
CT=7, VM=2, VRCVM=3 , ButéeAR=1
CT=8, VM=1, VRCVM=3, ButéeAR=1
CT=5, VM=3, VRCVM=3, ButéeAR=1

Sur le tour quand le trainard quitte la ButéeAR (arrière) le compteur VM se fige.
Pour indiquer en fin de passe de filetage, au moment du retour, que l'on est bien revenu contre la ButéeAR.
Si le compteur VM, ne s'est pas remis à défiler, on n'est pas contre la butée AR.

Je ne me suis pas trop penché sur la questions, des Trous avec une valeur de 866.

Je précise que j'ai appliqué l'étude de PUSSY, aussi fidèlement que possible, que j'ai simplement reproduit sur Arduino.
J'ai mis un sacré moment avant d'intégrer tout le cheminement de son étude.
Et à mon avis c'était assez coton, je parle de son étude.

Bonne soirée à vous tous.

Capture d’écran (1245).png


Capture d’écran (1244).png


Capture d’écran (1243).png
 
Andoche
Andoche
Compagnon
Il serait bien d'afficher sur l'écran ( il y a de la place ) l'état de tes entrées butée et comptage.
Zut de zut.
J'ai encore mal interprété ce qui est écrit ci-dessus.
L'affichage, c'est sur l'écran de l'Arduino.
Mais, nous avons, déjà la valeur de CT et la valeur de VM qui sont affichées, donc aussi la valeur du nombre de tours de la vis mère de référence, c'est la valeur maximum du compteur VM.
C'est vrai que l'affichage de l'état de la butée AR serait vraiment un plus.

Comme j'ai énormément galéré pour avoir quelque chose qui fonctionne, j'hésite un peu à me lancer pour le moment.
Je crois que je vais faire un grosse pose.
Ma version épurée qui fonctionne bien actuellement est sauvegardée sous 3 noms différents et sur 2 disques dans mon PC et sur 2 disques de sauvegarde.
On n'est jamais trop prudent. :lol::lol::lol:
Bonne soirée.
 
Andoche
Andoche
Compagnon
On pourrait aussi mémoriser en flash la valeur des paramètres.
Là, je ne vois pas comment ça se passe.
Quels paramètres?
Même si je ne le fais pas, c'est toujours très instructif, de connaître toutes ces possibilités.
Je pense que ce serait un affichage très court entre 2 autres instructions?

Ou alors l'affichage des paramètres pendant un court laps de temps à l'initialisation du programme sur l'Arduino.
Cette dernière ligne c'est le résultat de la réflexion de cette nuit. :smt015 =:7dance: que je viens de rajouter.
Bonne journée.
 
Dernière édition:
Andoche
Andoche
Compagnon
Bonjour.
La nuit porte conseil.
L'idée de Speedjf37 prend toute son importance dans le cas suivant.
PUSSY, avait dit:

{ Andoche à eu à exécuter un filetage de 14 TPI, soit pour son tour une fraction de 400/1323.
A raison de 50 tours/min à la broche, l’occurrence pour embrayer ne se produit que toutes les 26,46 minutes !
Midody à été interpelé par le problème car il peut réaliser le filetage sur son tour avec la fraction 127/280.
C'est déjà mieux, mais ça reste long ! }

Dans ce cas là, mieux vaut avoir la valeur de VRCVM sous les yeux pour ne pas manquer le coche, et être bien préparé au mois 10 tours avant le top d'embrayage.
C'est surement pas le moment de chercher dans ses notes, la valeur de VRCVM. :smt017:smt017:smt017==:smt013:smt013:smt013:smt013
Jusque là, je voyais uniquement mes pas métriques, sans aller plus loin.
C'est la réunion de toutes les idées qui permettent de faire avancer les choses.
Bonne journée.
 
Dernière édition:
S
speedjf37
Compagnon
Bonjour,

J'ai craqué !

J'ai une collection de shields et d'afficheurs mais pas celui la !

j'ai commandé un shield LCD 1602 + keypad pour faire les essais d'affichage.



Cordialement JF
 
Andoche
Andoche
Compagnon
Une petite explication pour les chaines de caractère et les tableaux.
Bonsoir mvt
Merci pour l'info.
Je regarde dans 2/3 jours.
En ce moment, j'ai abandonné provisoirement ce post.
J'ai un ami qui m'a demandé de lui faire des pièces, pour adapter des roulettes de récupération pour sa table d'atelier.
J'ai attaqué les 4 pièces, plus un cylindre prolongé d'un cône, pour reformer les tubes, qui vont recevoir les pièces.
Tout est tordu.
Evidement, ça presse. :-D
Pour ce soir je suis fatigué je vais tout de suite aller au lit.
Bonne soirée.
 
S
speedjf37
Compagnon
Bonjour,

Shield reçu aujourd’hui !
1er test OK

Création d'un écran d'accueil:

1) Version etc

menu_1.png


tempo 2s

2) Paramètres

menu_2.png

Tempo 2s

puis affichage normal !

le petit bout de code modifé:

Au passage j'ai essayé de comprendre a quoi servait "CONNECTION"

const int CONNECTION= 13; //prend la pin 13 pour la liaison série avec écran PC
pinMode(lCONNECTION, OUTPUT); //on met la pin 13 (CONNECTION) en sortie

la pin 13 sur Arduino UNO correspond à la led implantée sur la carte principale.
Il existe une définition pour cette sortie
pinMode(LED_BUILTIN, OUTPUT);

Cela ne sert à rien puisque cette LED est cachée par le shield !!!!!


Cordialement JF
 
Dernière édition:
Andoche
Andoche
Compagnon
Bonjour
De très graves problèmes de santé, dans mon entourage, qui se sont brutalement aggravés, me paralysent la tête actuellement.
Dans les courts moments où je peux venir me vider la tête ici.
Je ne suis plus en état, malgrés mes efforts, de comprendre et d'appliquer les bouts de programme.
A moins d'avoir les modifications incluses dans le programme en entier, impossible, pour moi, d'intégrer comme il faut les modifications.
Avec toutes mes excuses.
Bonne journée et merci à vous tous.
 
Andoche
Andoche
Compagnon
Bonjour.
Problème levier bloqué résolu.
En fin de page #59
Bonne journée.
 
Dernière édition:
5
59JAG
Apprenti
bonjour,
j ai remis un peu d ordre dans ton programme car difficile a comprendre.
 
Fichiers joints
  • VisRectif03__59jag.txt
    17.2 KB · Affichages: 14
Andoche
Andoche
Compagnon
j ai remis un peu d ordre dans ton programme car difficile a comprendre
Bonjour et merci pour tout ce travail.
C'est beaucoup plus clair.
Bon, je n'ais pas tout étudier.
J'ai copié le fichier .txt et je l'ais collé dans un nouveau croquis.
Après avoir rentré la valeur de VRCVM, je n'arrivais plus à avancer tout était figé.
J'ai actionné effacer l'écran lcd, ce qui a permis au codeur de décompter les bosses.
Après avoir décompté la 1er série de VM, il ne se recharge pas avec la valeur de VRCVM.
Pour mes essais au bureau je charge la valeur VRCVM à 3 (tours de vis mère, c'est plus rapide pour observer ce qui se passe).
Après la série de 3> 2> >1 il charge 0> -1> -2> -3> -4 etc dans VM, (toutes les 10 bosses).
En plus quand j'appelle le moniteur série, maintenant il ne défile plus.
Je ne sais pas ce qui le bloque?
De plus quand je rentre le croquis qui fonctionnait tout part en brioche, j'ai même des bosses qui se comptabilisent quand je passe le doigt sur l'écran LCD.
Pour remettre un peu tout en ordre, je suis obligé d'arrêter le PC, tout débrancher pour vider les condensateurs.
Et repartir sur le croquis qui fonctionnait avant.
Mais le moniteur série n'est plus comme avant.
Il faut que je reface des vidages de PC et voir si ce qui se passe exactement, et si je peux retrouver tout comme avant.

J'avais 2 messages privés, avec mes problèmes actuels, je n'ais pas pu les ouvrir tout de suite.
Résultats quand je suis revenu sur ce post ils avaient disparu.
Toutes mes excuses pour ne pas avoir répondu à ces messages.

Bonne soirée à vous tous.
 
Andoche
Andoche
Compagnon
Bonsoir.
Je pense que tout rentre dans l'ordre, après un arrêt et redémarrage du PC, avec le croquis qui fonctionnait avant.
il faudra que j'essaye de voir ce qui empêche, le VM (compte tour vis mère), de se recharger avec la valeur entrée dans VRCVM.
Bonne soirée.
 
5
59JAG
Apprenti
bonjour,
j ai regardé le programme que je t ai envoyé vers la ligne 133 faut supprimer l instruction vrcvm=0;
Le programme fonctionne en 2 étapes, la 1er faut définir vrcvm puis valider avec touche sélect.
puis le programme et prêt à compter les trous, les touches ne sont plus prises en compte sauf reset pour relancer le programme.
 
Andoche
Andoche
Compagnon
j ai regardé le programme que je t ai envoyé vers la ligne 133 faut supprimer l instruction vrcvm=0;
Bonjour 59JAG.
Tout d'abord, un grand merci pour ce travail.
J'ai fait la suppression, momentanément avec //vrcvm=0;
J'ai ouvert un nouveau croquis, j'ai tout effacé et j'ais collé tout le programme que tu as écrit.
Tout fonctionne.
Mais, si je relance le programme après avoir ouvert le "moniteur série", celui ci ne défile pas.
Mais le reste du programme, fonctionne normalement.
Il y a juste les titres qui s'affichent dans le "moniteur série".
Pour le moment, je n'ais pas cherché à solutionner le problème (à condition que ce soit dans mes capacités??:smt017:smt017).
Je pense, qu'il est essentiel de te remercier en premier, pour tout ton travail, et de te tenir au courant du résultat de ta modification.
C'est super d'avoir en permanence la valeur de VRCVM dans l' afficheur.
Il ne faut pas m'en vouloir si je tarde à répondre aux sujétions qui me sont faites, mais en ce moment je suis dans de très gros soucis.
Pour moi, c'est un moment de détente, quand je peux me changer les idées ici.
Merci à vous tous, et bonne soirées.

Photos du déroulement des opérations au début et en 2/3 points du déroulements des opérations.

IMG_01.jpg


IMG_02.jpg


IMG_03.jpg


IMG_04.jpg


IMG_05.jpg


IMG_06.jpg


IMG_07.jpg


IMG_08.jpg
 
5
59JAG
Apprenti
faut rajouter ça dans la boucle loop

// affichage de valeurs de controle sur l'écran du PC. Peut être effacé
Serial.println ("ButeeAR:"); //Début de ce qui peut-être effacé
Serial.println (ButeeAR);
Serial.println ("VM"); //nom de la variable
Serial.println (VM); //valeur de la variable (en décimale)
Serial.println ("VRCVM:");
Serial.println (VRCVM);
Serial.println ("Trous:");
Serial.println (Trous);
Serial.println ("CT:");
Serial.println (CT);
//Serial.println (" "); //Fin de ce qui peut-être effacé
 
Andoche
Andoche
Compagnon
Bonsoir.
Merci pour cette correction.
Après avoir testé le programme, en ayant écrit //vrcvm=0;
Comme tout fonctionnait bien, j'avais déjà supprimé la ligne //vrcvm=0; avant de tout sauvegarder.
Aujourd'hui, J'ais ajouté les 12 lignes que tu m'as indiqué, dans la boucle loupe, juste avant le "traitement de capteur trous".
C'est cool tout fonctionne bien.
Le "moniteur série" affiche bien toutes les valeurs des compteurs.
Par contre, maintenant que tout est bien rangé, je visualise et je comprends mieux le mécanisme des affichages.
Je ne remercierai jamais assez tous ceux qui m'ont aidé dans la mise au point de ce programme.
Plus tous les petits programmes ou trucs qui facilitent la vie, pour se retrouver, comprendre ou aider à se dépanner.
Bonne soirée à vous tous et merci encore.
 
Dernière édition par un modérateur:
Andoche
Andoche
Compagnon
Bonsoir.
Vous m'avez tous amené plein de choses qui m'ont fait progresser dans la compréhension, et la lisibilité, du programme.
Avec en plus les simplifications qui rendent le programme beaucoup plus compréhensible.
Plus les améliorations qui rendent les croquis facilement identifiables.
Je ne peux pas tout citer ici, je passerai la soirée :lol: .
Plus les sites que je dois encore aller voir à tête reposer, si mes soucis pouvaient pencher du bon coté, mais là?????
speedjf37, m'avait donné un petit bout de programme (post #47), qui devait m'aider à détecter mes pannes éventuelles.
Malheureusement je n'ais pas pu l'exploiter à causes de mon ignorance, c'est vraiment dommage.
Bref, je ne peux que tous vous remercier, en espèrent, peut être un jour, dépanner l'un d'entre vous.
Bonne soirée, et un grand merci à vous tous.
 
5
59JAG
Apprenti
Les commentaires toujours la , mais pas mélanger avec le code
 
Andoche
Andoche
Compagnon
Bonsoir
Encore une question après je ne vous embête plus (enfin j'espère :-D ).

//__________________________________________________________________TRAITEMENT DE CAPTEUR TROUS_________________________________________________________________________________________________________



Trous = analogRead(codeur); //lit la pin Analogique A1 pour récupérer les impulsions des trous (capteur fourche)
if (Trous <10) //valeur référence élevée car les retour de la fourche varien
{
Trous = 1;
}
if (Trous != LastTrous) //l'action se fera sur le front montant de Trous (capteur fourche)
{
if (Trous == HIGH)
{
CT = CT - 1; // à chaque trou on fait moins 1 à CT (compteur trous)
}
if (CT == 0) //SI compteur trous arrive à zéro
{
VM = VM - 1;
CT = 10; // donc si CT=0 (la vis a fait un tour complet) on fait -1 au compteur VM de la vis mère
}
if (VM == 0) //SI le compteur VM arrive à zéro
{
VM = VRCVM; //on réactualise la valeur référence compteur vis mère (varie en fonction du pas à faire)
} //(résultat rapport pas à faire sur pas vis mère (pour Ramo T37 pas de 6mm)
} //jf fin if (Trous != LastTrous)

LastTrous = Trous; // Fin programme FRONT MONTANT on vide Trous dans LastTrous pour mémoriser l'état pour le prochain tour
} //1___________________________________________________________________________________________BOUCLE LOOP____________________________________________________________________________________________

__________________________________________________________________________________________________________________________________________________
En haut, j'ai écris "" if (Trous <10) "" environ 5eme ligne.
Pensez vous qu'il serait bon d'augmenter la valeur 10 pour plus de sécurité.
Au départ j'avais mis ""if (trous >=300)" c'est ce qui provoquait le défilement incontrôlé de la valeur des trous (ou bossages) CT alors que la vis mère était à l'arrêt. ( ( if (trous >=) ou quelque chose d'approchant, j'ai mis tous mes anciens programmes à la poubelle).
Hier un ami ma installé Windows11 et dans la foulée il m'a vidé la poubelle, alors je ne peux plus rien récupérer.
09/10/2021 je viens de corriger, j'ai trouvé un vieux programme qui avait échappé à la poubelle. (if (trous >=300))
En vous remerciant par avance, bonne soirée.
 
Dernière édition:
Andoche
Andoche
Compagnon
Bonsoir
Dans le post #147 je me suis trompé c'est "jbbricole" qui m'avais écrit ce bout de programme du post #47, que je n'ais pas réussi à faire fonctionner.
Et c'est bien dommage.
je le prie de bien vouloir m'excuser.
Bonne soirée.
 

Sujets similaires

DA l'Auvergnat
Réponses
6
Affichages
4 081
DA l'Auvergnat
DA l'Auvergnat
S
Réponses
2
Affichages
612
Shaft
S
S
Réponses
11
Affichages
794
Speedy70
S
L
Réponses
24
Affichages
1 860
labor29
L
M
Réponses
10
Affichages
735
Moi37
M
Plastik
Réponses
12
Affichages
2 391
Plastik
Plastik
Samail
Réponses
14
Affichages
693
Samail
Samail
G
Restauration Hobbymat MD65
Réponses
5
Affichages
879
G
Pervenche
Réponses
7
Affichages
682
Pervenche
Pervenche
Madman
Réponses
6
Affichages
913
Madman
Madman
Haut