Go Down

Topic: int to char ? (Read 313 times) previous topic - next topic

Xylitol

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: [Select]

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

B@tto

#1
Mar 24, 2014, 01:26 pm Last Edit: Mar 24, 2014, 02:42 pm by B@tto Reason: 1
Salut,

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

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


Sinon je pige pas la fin, en particulier :

Code: [Select]
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.
Blog électronique : battomicro.wordpress.com
Photographie : www.interactive-celebration.fr
Fablab de Montpellier : www.labsud.org

Xylitol

#2
Mar 24, 2014, 01:56 pm Last Edit: Mar 24, 2014, 01:58 pm by Xylitol Reason: 1
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

B@tto


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
Blog électronique : battomicro.wordpress.com
Photographie : www.interactive-celebration.fr
Fablab de Montpellier : www.labsud.org

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy