Transformer 3 char en 1 int - Transform 3 char in 1 int
français :
bonjours à tous !
il n'est pas habituel pour moi de demander des réponses sur un forum mais je suis arrivé au bout de mes connaissances. je vous explique mon problème : j'ai, dans un projet de boîtier multicapteur, un arduino mega, une led rgb, un clavier matriciel et un écran lcd16*2. le de mon programme serait de rentrer une valeur avec le clavier (comprise entre 0 et 255) pour la couleur rouge, ensuite une autre pour la couleur verte et une dernière pour la couleur bleue. en plus de les afficher sur l'écran, j'aimerais que leur valeur soit affectée à la led. j'arrive en effet à les afficher sur l'écran mais je cherche comment transformer la valeur de 3 char formant un nombre en 1 valeur de type int.
je vous donne sur pastebin le code que j'ai fait et je vous laisse me poser des questions si vous n'avez pas compris quelque chose ou que vous voulez d'autres renseignements.
english :
hi !
i not ask answers on forum i'm blocked. have project arduino mega, rgb led, arduino matrix keybord , 16*2 lcd. purpose of program input value keybord (between 0 , 255) red color, next green , blue. in more of display values on screen values affected led. know how display values ont screen don't know how transform 3 char values in 1 int value. give on pastebin code made , if , let ask me questions if need information.
i apologize in advance mistakes in english if there are.
le lien pastebin - pastebin link : monprogramme
images de mes produits - pictures of product :
le clavier - keybord :

la led rgb :

merci d'avance pour les réponses que vous pourrez m'apporter.
bonjours à tous !
il n'est pas habituel pour moi de demander des réponses sur un forum mais je suis arrivé au bout de mes connaissances. je vous explique mon problème : j'ai, dans un projet de boîtier multicapteur, un arduino mega, une led rgb, un clavier matriciel et un écran lcd16*2. le de mon programme serait de rentrer une valeur avec le clavier (comprise entre 0 et 255) pour la couleur rouge, ensuite une autre pour la couleur verte et une dernière pour la couleur bleue. en plus de les afficher sur l'écran, j'aimerais que leur valeur soit affectée à la led. j'arrive en effet à les afficher sur l'écran mais je cherche comment transformer la valeur de 3 char formant un nombre en 1 valeur de type int.
je vous donne sur pastebin le code que j'ai fait et je vous laisse me poser des questions si vous n'avez pas compris quelque chose ou que vous voulez d'autres renseignements.
english :
hi !
i not ask answers on forum i'm blocked. have project arduino mega, rgb led, arduino matrix keybord , 16*2 lcd. purpose of program input value keybord (between 0 , 255) red color, next green , blue. in more of display values on screen values affected led. know how display values ont screen don't know how transform 3 char values in 1 int value. give on pastebin code made , if , let ask me questions if need information.
i apologize in advance mistakes in english if there are.
le lien pastebin - pastebin link : monprogramme
images de mes produits - pictures of product :
le clavier - keybord :

la led rgb :

merci d'avance pour les réponses que vous pourrez m'apporter.
there number of things simplify code: using arrays, using switch/case statement block, , avoiding goto's. first, arrays: instead of this:
how about:
also, use switch/case instead of goto's:
code: [select]
isr1 = sr1 - 48;
isr2 = sr2 - 48;
isr3 = sr3 - 48;
isg1 = sg1 - 48;
isg2 = sg2 - 48;
isg3 = sg3 - 48;
isb1 = sb1 - 48;
isb2 = sb2 - 48;
isb3 = sb3 - 48;
how about:
code: [select]
int ired[3];
int sred[3]
int igreen[3];
int sgreen[3];
int iblue[3];
int sblue[3];
// ...more code...
for (int = 0; < 3; i++) {
ired[i] = sred[i] - '0'; // 48 ascii zero, '0'
igreen[i] = sgreen[i] - '0';
iblue[i] = sblue[i] - '0';
}
also, use switch/case instead of goto's:
code: [select]
numeromenu=toupper(keypad.getkey()); // yours fails on lower case letter
lcd.setcursor(0, 0);
switch (numeromenu) {
case 'a':
lcd.print("1:distance |");
lcd.setcursor(0, 1);
lcd.print("2:temperature|>b");
break;
case 'b':
lcd.print("3:alcool |<a");
lcd.setcursor(0, 1);
lcd.print("4:led rgb |>c");
break;
case 'c':
lcd.print("5: |<b");
lcd.setcursor(0, 1);
lcd.print("6: |>d");
break;
// rest
default:
lcd.print("i shouldn't here. numeromenu = ");
lcd.setcursor(0, 1);
lcd.print(numeromenu);
)
numeromenu=keypad.getkey();
while(numeromenu == no_key)numeromenu=keypad.getkey();
lcd.clear();
Arduino Forum > Using Arduino > Programming Questions > Transformer 3 char en 1 int - Transform 3 char in 1 int
arduino
Comments
Post a Comment