position moteur pas a pas

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

bonjour a tous, je suis ici car j'ai besoin de conseils, je possede un moteur pas a pas NEMA 42 et un driver DQ2722MA. je souhaite realiser un guidage lineaire, par exemple dire au moteur d'avancer de 200pas et le moteur se deplace de 200pas, sur ce point je n'ai pas de probleme mon probleme est que je n'arrive pas a trouver le code pour que le moteur prenne en compte sa position actuelle par exemple je dit d'avancer de 400 pas, ensuite je dit 600pas etant donné qu'il as deja avancer de 400 pas avant il ne devrais avancer a nouveau de 200 pas.je ne sais pas si c'est tres clair, si ce n'est pas le cas n'hesitez pas.

concernant le programe que j'utilise vous le trouverez ci joint. comme je dit il fonctionne bien si je tape 200 et A pour valider il avance bien de 200 pas et si je tape *(-) 200 et A pour valider il recule bien vous verrez aussi dans le code que j'ai essayer d'attribuer le touche B pour revenir a une position "home" mais la non plus ca ne marche pas tres bien car quand j'appuis sur B le moteur revient bien du nombre de pas que j'ai demander precedament mais ne quitte ne revient pas au debut de la boucle (B reste affiché sur l'ecran) la solution "home etais une solution de secour, je prefere que le moteur prenne en compte sa position actuelle je precise que je ne peut pas utiliser de laser ou autre capteur de position etant donné que la longueur est de 6ml pour une precision au mm. merci d'avance pour votre aide. bonne journée

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
#include <LiquidCrystal.h> // Inclusion de la librairie pour afficheur LCD 

#include <Keypad.h> // inclusion de la librairie pour clavier matriciel 

#include <Stepper.h> // librairie pour moteurs pas à pas

// --- Déclaration des constantes ---

//--- Constantes utilisées avec le clavier 4x4

const byte LIGNES = 4; // 4 lignes
const byte COLONNES = 4; //4 colonnes

const int NombrePas=200; // Nombre de pas du servomoteur 

// --- constantes des broches ---

const int C4=44; //declaration constante de broche 
const int C3=42; //declaration constante de broche 
const int C2=40; //declaration constante de broche 
const int C1=32; //declaration constante de broche 

const int RS=43; //declaration constante de broche 
const int E=51; //declaration constante de broche 

const int D4=45; //declaration constante de broche 
const int D5=47; //declaration constante de broche 
const int D6=49; //declaration constante de broche 
const int D7=53; //declaration constante de broche 



const int L4=52; //declaration constante de broche 
const int L3=50; //declaration constante de broche 
const int L2=48; //declaration constante de broche 
const int L1=46; //declaration constante de broche 

// --- Déclaration des variables globales ---

//--- Définition des touches 

char touches[LIGNES][COLONNES] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
};

// tableaux de lignes et colonnes
byte BrochesLignes[LIGNES] = {L1, L2, L3, L4}; //connexions utilisées pour les broches de lignes du clavier
byte BrochesColonnes[COLONNES] = {C1, C2, C3, C4}; //connexions utilisées pour les broches de colonnes du clavier

char touche; // variable de stockage valeur touche appuyée

long valeur; 

// --- Déclaration des objets utiles pour les fonctionnalités utilisées ---

LiquidCrystal Lcd(RS, E, D4, D5, D6, D7);// Création d'un objet LiquidCrystal = initialisation LCD en mode 4 bits 


// création d'un objet keypad = initialisation clavier 
Keypad clavier = Keypad( makeKeymap(touches), BrochesLignes, BrochesColonnes, LIGNES, COLONNES );
// les broches de lignes sont automatiquement configurées en ENTREE avec pullup interne activé 
// les broches de colonnes sont automatiquement configurées en SORTIE

Stepper stepper(NombrePas, 12,13);  // crée un objet Stepper pour contrôler le moteur pas à pas
// Pas_1 et Pas_3 commandent la 1ère phase, Pas_2 et Pas_4 la 2ème phase 


//**************** FONCTION SETUP = Code d'initialisation *****
// La fonction setup() est exécutée en premier et 1 seule fois, au démarrage du programme

void setup()   { // debut de la fonction setup()

// --- ici instructions à exécuter au démarrage --- 

Lcd.begin(20,4); // Initialise le LCD avec 20 colonnes x 4 lignes 

delay(10); // pause rapide pour laisser temps initialisation

// Test du LCD

Lcd.print("LCD OK") ; // affiche la chaîne texte - message de test
delay(2000); // pause de 2 secondes

Lcd.clear(); // // efface écran et met le curseur en haut à gauche
delay(10); // pour laisser temps effacer écran

// initialise la vitesse de rotation du moteur pas à pas en tour par minute
stepper.setSpeed(400);  


// les broches de lignes et d'entrée sont configurées automatiquement lors de l'initialisation du clavier 

// ------- Broches en sortie -------  


// ------- Broches en entrée -------  


// ------- Activation du rappel au + interne des broches en entrée si nécessaire -------  


} // fin de la fonction setup()
// ********************************************************************************

//*************** FONCTION LOOP = Boucle sans fin = coeur du programme *************
// la fonction loop() s'exécute sans fin en boucle aussi longtemps que l'Arduino est sous tension

void loop(){ // debut de la fonction loop()

// --- ici instructions à exécuter par le programme principal --- 

valeur=SAISIE_LONG(); 
Lcd.setCursor(0,1);// positionne curseur 2ème ligne, 1ère colonne
Lcd.print(valeur); 

stepper.step(valeur); // fait tourner le moteur du nombre pas indiqués - sens + et - 

Lcd.clear(); // // efface écran et met le curseur en haut à gauche
delay(1000); // pour laisser temps effacer écran





// touche = clavier.getKey(); // lecture de la touche appuyée
//if (touche != NO_KEY){ // si une touche a été frappée -- gestion de la touche appuyée 

//} // fin gestion de la touche appuyée 

} // fin de la fonction loop() - le programme recommence au début de la fonction loop sans fin
// ********************************************************************************

//*************** Autres Fonctions du programme *************

long SAISIE_LONG (){ // fonction qui renvoie une valeur long signé (32bits)

//---- variables locales utilisées dans la fonction
long saisie_long[11]={0,0,0,0,0,0,0,0,0,0,0}; // crée un tableau de variables pour saisir valeur - long maxi = 10 chiffres + signe
char compt_touche; // variable de comptage du nombre de touches saisies
long nombre_saisi; // variable de calcul du nombre saisi
//float valeurf; // variable de caclul de la valeur convertie    
char touche_long; // variable locale pour valeur touche appuyée de 0 à 15

//---- initialisation des variables utilisées ----
compt_touche=0; // aucune touche saisie au démarrage
nombre_saisi=0; // initialise la variable


//-------- initialisation curseur --------
//// mode clignotant

//------ gestion appui touche sur clavier

 while (compt_touche<11) { // tant que pas appuis maxi = 11 touches pour long + signe (valeur maxi=+2 147 483 647)

       touche_long= clavier.getKey(); // lecture de la touche appuyée

       if (touche_long!= NO_KEY){ // si une touche a été frappée -- gestion de la touche appuyée 

          Lcd.print(touche_long); // debug

           if (compt_touche==0) { // au premier passage 
              if (touche_long=='*') { // si appui signe - 
                saisie_long[10]=-1; // mémorise -1 dans le 11ème caractère 
                continue; // poursuit while comme si pas de premier passage
              }
             else {
               if (saisie_long[10]==0)saisie_long[10]=1; // mémorise le signe + dans le 11ème caractère si pas déjà à -1
             }
           } // fin if compt_touche==0


           if (touche_long=='A') break; // sort du while si appui sur A

           //---- calcul valeur numérique touches 0 à 9  (3ères lignes x 3ères colonnes)
           //--- à partir lignes colonnes ---
           for (byte i=0;i<3;i++) {
             for (byte j=0; j<3;j++){
               if (touche_long==touches[i][j]) touche_long=(j+1)+(i*3);//calcul de la valeur numérique
             }
           }

           //---- à patir valeur ascii --- 

           // touche 0
           if (touche_long=='0') touche_long=0;

           //---- calcul valeur numériques autres touches 
           if (touche_long=='A') touche_long=10;
           if (touche_long=='B')stepper.step(-valeur);
           if (touche_long=='C') touche_long=12;
           if (touche_long=='D') touche_long=13;

           saisie_long[compt_touche]=touche_long; //enregistre le caractère dans tableau code_saisi


           compt_touche=compt_touche+1; // on incrémente la variable compt qui mémorise le nombre de caractères saisis

           //delay () 


         } //---- fin gestion appui clavier

}// fin du While = fin de la lecture du clavier

//--------- calcul valeur saisie en fonction du nombre de chiffres saisis et x signe (saisie_long[10]) ---------
if (compt_touche==0)nombre_saisi=0;   // si aucun chiffre saisi
if (compt_touche==1)nombre_saisi=(saisie_long[0]);   // si 1 seul chiffre saisi
if (compt_touche==2)nombre_saisi=(saisie_long[0]*10)+(saisie_long[1]*1);   // si 2 chiffres saisi
if (compt_touche==3)nombre_saisi=(saisie_long[0]*100)+(saisie_long[1]*10)+(saisie_long[2]*1);   // si 3 chiffres saisi
if (compt_touche==4)nombre_saisi=(saisie_long[0]*1000)+(saisie_long[1]*100)+(saisie_long[2]*10)+(saisie_long[3]*1);   // si 4 chiffres saisi
if (compt_touche==5)nombre_saisi=(saisie_long[0]*10000)+(saisie_long[1]*1000)+(saisie_long[2]*100)+(saisie_long[3]*10)+(saisie_long[4]*1);   // si 5 chiffres saisi
if (compt_touche==6)nombre_saisi=(saisie_long[0]*100000)+(saisie_long[1]*10000)+(saisie_long[2]*1000)+(saisie_long[3]*100)+(saisie_long[4]*10)+(saisie_long[5]*1);   // si 6 chiffres saisi
if (compt_touche==7)nombre_saisi=(saisie_long[0]*1000000)+(saisie_long[1]*100000)+(saisie_long[2]*10000)+(saisie_long[3]*1000)+(saisie_long[4]*100)+(saisie_long[4]*10)+(saisie_long[5]*1);   // si 6 chiffres saisi
if (compt_touche==8)nombre_saisi=(saisie_long[0]*10000000)+(saisie_long[1]*1000000)+(saisie_long[2]*100000)+(saisie_long[3]*10000)+(saisie_long[4]*1000)+(saisie_long[5]*100)+(saisie_long[6]*10)+(saisie_long[7]*1);   // si 7 chiffres saisi
if (compt_touche==9)nombre_saisi=(saisie_long[0]*100000000)+(saisie_long[1]*10000000)+(saisie_long[2]*1000000)+(saisie_long[3]*100000)+(saisie_long[4]*10000)+(saisie_long[5]*1000)+(saisie_long[6]*100)+(saisie_long[7]*10)+(saisie_long[8]*1);   // si 8 chiffres saisi
if (compt_touche==10)nombre_saisi=(saisie_long[0]*1000000000)+(saisie_long[1]*100000000)+(saisie_long[2]*10000000)+(saisie_long[3]*1000000)+(saisie_long[4]*100000)+(saisie_long[5]*10000)+(saisie_long[6]*1000)+(saisie_long[7]*100)+(saisie_long[8]*10)+(saisie_long[9]*1);   // si 9 chiffres saisi

//Serial.println(int(saisie_long[10])); // debug - affiche signe

nombre_saisi=nombre_saisi*long(saisie_long[10]); // prise en compte du signe 

//------ à réaliser en sortie de lecture du clavier ----

compt_touche=0; // réinitialise le nombre de touche saisies

//-------- initialisation curseur --------
//// désactive mode clignotant

//----- renvoi de la valeur saisie ----

return (nombre_saisi); // renvoie la valeur - sortie de la fonction 

}

// --- Fin programme ---
+0 -0

Plusieurs solutions :

  • Soit tu refais une classe qui hérite de "Stepper" et qui rajoute une variable permettant de suivre le nombre de pas.
  • Soit tu fais ca directement dans ton programme principal (une variable que tu incrémentes/décrémentes à chaque fois que tu agis sur le moteur)

ZdS, le best du Zeste ! Tuto Arduino, blog, etc

+3 -0
Auteur du sujet

rebonjour a tous en fin de compte j'ai trouver et ce grace a vos conseils, je vous remecit, je me permet de vous mettre le nouveau code, si vous voulez bien jeter un oeil, ca fonctionne mais peut etre verrez vous quelque chose qui ne va pas. merci encore.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
#include <Keypad.h> // inclusion de la librairie pour clavier matriciel 

#include <Stepper.h> // librairie pour moteurs pas à pas



int positionactuelle=0;



// --- Déclaration des constantes ---

//--- Constantes utilisées avec le clavier 4x4

const byte LIGNES = 4; // 4 lignes
const byte COLONNES = 4; //4 colonnes

const int NombrePas=200; // Nombre de pas du servomoteur 

// --- constantes des broches ---

const int C4=44; //declaration constante de broche 
const int C3=42; //declaration constante de broche 
const int C2=40; //declaration constante de broche 
const int C1=32; //declaration constante de broche 

const int RS=43; //declaration constante de broche 
const int E=51; //declaration constante de broche 

const int D4=45; //declaration constante de broche 
const int D5=47; //declaration constante de broche 
const int D6=49; //declaration constante de broche 
const int D7=53; //declaration constante de broche 



const int L4=52; //declaration constante de broche 
const int L3=50; //declaration constante de broche 
const int L2=48; //declaration constante de broche 
const int L1=46; //declaration constante de broche 

// --- Déclaration des variables globales ---

//--- Définition des touches 

char touches[LIGNES][COLONNES] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
};

// tableaux de lignes et colonnes
byte BrochesLignes[LIGNES] = {L1, L2, L3, L4}; //connexions utilisées pour les broches de lignes du clavier
byte BrochesColonnes[COLONNES] = {C1, C2, C3, C4}; //connexions utilisées pour les broches de colonnes du clavier

char touche; // variable de stockage valeur touche appuyée

long valeur; 

// --- Déclaration des objets utiles pour les fonctionnalités utilisées ---

LiquidCrystal Lcd(RS, E, D4, D5, D6, D7);// Création d'un objet LiquidCrystal = initialisation LCD en mode 4 bits 


// création d'un objet keypad = initialisation clavier 
Keypad clavier = Keypad( makeKeymap(touches), BrochesLignes, BrochesColonnes, LIGNES, COLONNES );
// les broches de lignes sont automatiquement configurées en ENTREE avec pullup interne activé 
// les broches de colonnes sont automatiquement configurées en SORTIE

Stepper stepper(NombrePas, 12,13);  // crée un objet Stepper pour contrôler le moteur pas à pas
// Pas_1 et Pas_3 commandent la 1ère phase, Pas_2 et Pas_4 la 2ème phase 


//**************** FONCTION SETUP = Code d'initialisation *****
// La fonction setup() est exécutée en premier et 1 seule fois, au démarrage du programme

void setup()   { // debut de la fonction setup()

// --- ici instructions à exécuter au démarrage --- 

Lcd.begin(20,4); // Initialise le LCD avec 20 colonnes x 4 lignes 

delay(10); // pause rapide pour laisser temps initialisation

// Test du LCD

Lcd.print("LCD OK") ; // affiche la chaîne texte - message de test
delay(2000); // pause de 2 secondes

Lcd.clear(); // // efface écran et met le curseur en haut à gauche
delay(10); // pour laisser temps effacer écran

// initialise la vitesse de rotation du moteur pas à pas en tour par minute
stepper.setSpeed(400);  


// les broches de lignes et d'entrée sont configurées automatiquement lors de l'initialisation du clavier 

// ------- Broches en sortie -------  


// ------- Broches en entrée -------  


// ------- Activation du rappel au + interne des broches en entrée si nécessaire -------  


} // fin de la fonction setup()
// ********************************************************************************

//*************** FONCTION LOOP = Boucle sans fin = coeur du programme *************
// la fonction loop() s'exécute sans fin en boucle aussi longtemps que l'Arduino est sous tension

void loop(){ // debut de la fonction loop()

// --- ici instructions à exécuter par le programme principal --- 

valeur=SAISIE_LONG(); 
Lcd.setCursor(0,1);// positionne curseur 2ème ligne, 1ère colonne
Lcd.print(valeur); 


stepper.step(valeur-positionactuelle); // fait tourner le moteur du nombre pas indiqués - sens + et -
positionactuelle=valeur; 

Lcd.clear(); // // efface écran et met le curseur en haut à gauche
delay(1000); // pour laisser temps effacer écran





// touche = clavier.getKey(); // lecture de la touche appuyée
//if (touche != NO_KEY){ // si une touche a été frappée -- gestion de la touche appuyée 

//} // fin gestion de la touche appuyée 

} // fin de la fonction loop() - le programme recommence au début de la fonction loop sans fin
// ********************************************************************************

//*************** Autres Fonctions du programme *************

long SAISIE_LONG (){ // fonction qui renvoie une valeur long signé (32bits)

//---- variables locales utilisées dans la fonction
long saisie_long[11]={0,0,0,0,0,0,0,0,0,0,0}; // crée un tableau de variables pour saisir valeur - long maxi = 10 chiffres + signe
char compt_touche; // variable de comptage du nombre de touches saisies
long nombre_saisi; // variable de calcul du nombre saisi
//float valeurf; // variable de caclul de la valeur convertie    
char touche_long; // variable locale pour valeur touche appuyée de 0 à 15

//---- initialisation des variables utilisées ----
compt_touche=0; // aucune touche saisie au démarrage
nombre_saisi=0; // initialise la variable


//-------- initialisation curseur --------
//// mode clignotant

//------ gestion appui touche sur clavier

 while (compt_touche<11) { // tant que pas appuis maxi = 11 touches pour long + signe (valeur maxi=+2 147 483 647)

       touche_long= clavier.getKey(); // lecture de la touche appuyée

       if (touche_long!= NO_KEY){ // si une touche a été frappée -- gestion de la touche appuyée 

          Lcd.print(touche_long); // debug

           if (compt_touche==0) { // au premier passage 
              if (touche_long=='*') { // si appui signe - 
                saisie_long[10]=-1; // mémorise -1 dans le 11ème caractère 
                continue; // poursuit while comme si pas de premier passage
              }
             else {
               if (saisie_long[10]==0)saisie_long[10]=1; // mémorise le signe + dans le 11ème caractère si pas déjà à -1
             }
           } // fin if compt_touche==0


           if (touche_long=='A') break; // sort du while si appui sur A

           //---- calcul valeur numérique touches 0 à 9  (3ères lignes x 3ères colonnes)
           //--- à partir lignes colonnes ---
           for (byte i=0;i<3;i++) {
             for (byte j=0; j<3;j++){
               if (touche_long==touches[i][j]) touche_long=(j+1)+(i*3);//calcul de la valeur numérique
             }
           }

           //---- à patir valeur ascii --- 

           // touche 0
           if (touche_long=='0') touche_long=0;

           //---- calcul valeur numériques autres touches 
           if (touche_long=='A') touche_long=10;
           if (touche_long=='B')stepper.step(-valeur);
           if (touche_long=='C') touche_long=12;
           if (touche_long=='D') touche_long=13;

           saisie_long[compt_touche]=touche_long; //enregistre le caractère dans tableau code_saisi


           compt_touche=compt_touche+1; // on incrémente la variable compt qui mémorise le nombre de caractères saisis

           //delay () 


         } //---- fin gestion appui clavier

}// fin du While = fin de la lecture du clavier

//--------- calcul valeur saisie en fonction du nombre de chiffres saisis et x signe (saisie_long[10]) ---------
if (compt_touche==0)nombre_saisi=0;   // si aucun chiffre saisi
if (compt_touche==1)nombre_saisi=(saisie_long[0]);   // si 1 seul chiffre saisi
if (compt_touche==2)nombre_saisi=(saisie_long[0]*10)+(saisie_long[1]*1);   // si 2 chiffres saisi
if (compt_touche==3)nombre_saisi=(saisie_long[0]*100)+(saisie_long[1]*10)+(saisie_long[2]*1);   // si 3 chiffres saisi
if (compt_touche==4)nombre_saisi=(saisie_long[0]*1000)+(saisie_long[1]*100)+(saisie_long[2]*10)+(saisie_long[3]*1);   // si 4 chiffres saisi
if (compt_touche==5)nombre_saisi=(saisie_long[0]*10000)+(saisie_long[1]*1000)+(saisie_long[2]*100)+(saisie_long[3]*10)+(saisie_long[4]*1);   // si 5 chiffres saisi
if (compt_touche==6)nombre_saisi=(saisie_long[0]*100000)+(saisie_long[1]*10000)+(saisie_long[2]*1000)+(saisie_long[3]*100)+(saisie_long[4]*10)+(saisie_long[5]*1);   // si 6 chiffres saisi
if (compt_touche==7)nombre_saisi=(saisie_long[0]*1000000)+(saisie_long[1]*100000)+(saisie_long[2]*10000)+(saisie_long[3]*1000)+(saisie_long[4]*100)+(saisie_long[4]*10)+(saisie_long[5]*1);   // si 6 chiffres saisi
if (compt_touche==8)nombre_saisi=(saisie_long[0]*10000000)+(saisie_long[1]*1000000)+(saisie_long[2]*100000)+(saisie_long[3]*10000)+(saisie_long[4]*1000)+(saisie_long[5]*100)+(saisie_long[6]*10)+(saisie_long[7]*1);   // si 7 chiffres saisi
if (compt_touche==9)nombre_saisi=(saisie_long[0]*100000000)+(saisie_long[1]*10000000)+(saisie_long[2]*1000000)+(saisie_long[3]*100000)+(saisie_long[4]*10000)+(saisie_long[5]*1000)+(saisie_long[6]*100)+(saisie_long[7]*10)+(saisie_long[8]*1);   // si 8 chiffres saisi
if (compt_touche==10)nombre_saisi=(saisie_long[0]*1000000000)+(saisie_long[1]*100000000)+(saisie_long[2]*10000000)+(saisie_long[3]*1000000)+(saisie_long[4]*100000)+(saisie_long[5]*10000)+(saisie_long[6]*1000)+(saisie_long[7]*100)+(saisie_long[8]*10)+(saisie_long[9]*1);   // si 9 chiffres saisi

//Serial.println(int(saisie_long[10])); // debug - affiche signe

nombre_saisi=nombre_saisi*long(saisie_long[10]); // prise en compte du signe 

//------ à réaliser en sortie de lecture du clavier ----

compt_touche=0; // réinitialise le nombre de touche saisies

//-------- initialisation curseur --------
//// désactive mode clignotant

//----- renvoi de la valeur saisie ----

return (nombre_saisi); // renvoie la valeur - sortie de la fonction 

}

// --- Fin programme ---
+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte