Pages: [1]   Go Down
Author Topic: int to char ?  (Read 156 times)
0 Members and 1 Guest are viewing this topic.
Seireitei, Soul Society
Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salut la communauté,
Je cherche a joué un son wav avec mon arduino a partir d'un nombre en random.
Mais apparement j'ai un problème de conversion, j'ai regardé dans mon arduino cookbook et google mais j'ai pas réussi a fixé le problème.
Voici mon code:
Code:
long randNumber;

[...]

void loop(){ 
buttonState = digitalRead(buttonPin); // check if the pushbutton is pressed.
  // if it is, the buttonState is HIGH:
  if (buttonState == HIGH) {   
    // nothing here
  }
  else {
       randNumber = random(16, 20); // fonction random
       tmrpcm.play(randNumber, ".wav"); { lcd.clear(); lcd.setCursor(1, 0); lcd.print('Random sound');} break;
  }
Ce que j'essaye de faire, c'est d'obtenir par exemple: tmrpcm.play("18.wav");
En erreur j'ai: invalid conversion from 'long int' to 'char*'
Ligne surlignée: tmrpcm.play(randNumber, ".wav");...
J'ai essayé plusieurs tentative du genre
String myNumber = String(randNumber, ".wav");
 mais ça passe pas non plus.

Cdlt
Logged

Ales
Offline Offline
Faraday Member
**
Karma: 39
Posts: 3607
Do or DIY
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salut,

il faut utiliser itoa() et strcat()
http://www.cplusplus.com/reference/cstdlib/itoa/
http://www.cplusplus.com/reference/cstring/strcat/ :

Code:
char Buffer[10];
itoa(randNumber,Buffer,10);
strcat(Buffer,".wav");
tmrpcm.play(Buffer);

Sinon je pige pas la fin, en particulier :

Code:
lcd.print('Random sound');} break;

Rôle du break ? et les apostrophe sont pour les caractères seuls, il faut des guillements pour des chaînes.
« Last Edit: March 24, 2014, 08:42:49 am by B@tto » Logged


Seireitei, Soul Society
Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salut, bien vu pour le break et les guillmets.
J'avais essayé  un peu n'importe quoi en étant désespéré au niveau des guillmets.
Pour le break, oui il sert a rien je l'avais pas vu celui la, j'ai c/c une ligne de mon code ou la il servais a quelque chose et j'ai oublier de le viré ici..
Sinon, concerant itoa() j'ai vu aussi ça sur google mais j'ai pas réussi a l'implémenté.
pour tmrpcm.play(randNumber); c'est pas plutôt 'Buffer' qu'il faut mettre entre paranthése du coup pour tmrpcm ? ça a l'air de passé dans le moniteur serial.
Merci
« Last Edit: March 24, 2014, 07:58:04 am by Xylitol » Logged

Ales
Offline Offline
Faraday Member
**
Karma: 39
Posts: 3607
Do or DIY
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

pour tmrpcm.play(randNumber); c'est pas plutôt 'Buffer' qu'il faut mettre entre paranthése du coup pour tmrpcm ? ça a l'air de passé dans le moniteur serial.

Exact, copier/coller trop vite ^^' j'ai corrigé mon précédent post
Logged


Pages: [1]   Go Up
Jump to: