Pages: [1]   Go Down
Author Topic: [Résolu]pb de programmation...  (Read 443 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Sr. Member
****
Karma: 0
Posts: 332
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour smiley-wink

Je viens de recevoir mon arduino uno, c'est génial ce truc :p

Par contre j'ai un petit problème...
 Voici mon code :

Quote
/*

lit la tension analogique sur la broche analogique 0
et affiche le résultat dans le moniteur série.

cet exemple est dans le domaine public
traduction française par X. HINAULT - www.mon-club-elec.fr

 */
const int MOTEUR=3; //declaration constante de broche
const int LED=5; //declaration constante de broche
const int INTERUPT = 2;
int adVal ; // valeur qu'on ajoute à chaque clic de l'interrupteur

void setup() {

  pinMode(MOTEUR, OUTPUT);   // configure le MOTEUR sur pin 3 en sortie
  pinMode(LED, OUTPUT);  //configure la led sur le pin 5
  pinMode(INTERUPT, INPUT); //configure le port 2 en entrée pour l'interupteur
  
  Serial.begin(9600); // initialise la communication série
  // vérifier que le débit utiliser est le même dans le Terminal Série
}

void loop() {
  int potVal = analogRead(A0); // lit la valeur analogique sur la broche A0 et met le résultat dans la variable
  
  
  if(digitalRead(INTERUPT)==HIGH){
    //action a faire par exemple activer une sortie
    Serial.println("INTERUPT"); // affiche la variable dans le Terminal Serie
    adVal =++ adVal;
    potVal = potVal + adVal;
    delay(1000);
  }
  
  String str1 = "Valeur de potVal : " + potVal;
  String str2 = "Valeur de adVal : "  + adVal;
  String strT = str1 + "\t" + str2;
  Serial.println(strT); // affiche la variable dans le Terminal Serie
  delay(100);
  
  analogWrite(MOTEUR, potVal / 4); // fait tourner le moteur à la vitesse lue
  analogWrite(LED, potVal / 4); // allume la led à la puissance lue

  

}
 

Le problème, c'est que le moniteur me renvoie ça
Quote
Valeur de potVal :    Valeur de adVal :
Valeur de potVal :    Valeur de adVal :
Valeur de potVal :    Valeur de adVal :
Valeur de potVal :    Valeur de adVal :
Valeur de potVal :    Valeur de adVal :
Valeur de potVal :    Valeur de adVal :
Valeur de potVal :    Valeur de adVal :
Valeur de potVal :    Valeur de adVal :
Valeur de potVal :    Valeur de adVal :
Valeur de potVal :    Valeur de adVal :
Valeur de potVal :    Valeur de adVal :
Valeur de potVal :    Valeur de adVal :

Comment se fait-il que les valeurs ne soient pas affichée, alors que ma led change bien d'intensité selon le réglage du potentiomètre ?

Merci smiley
« Last Edit: May 21, 2011, 04:40:18 am by vohu » Logged

Istres(13)
Offline Offline
Newbie
*
Karma: 0
Posts: 28
Hack the life !
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

C'est la ligne suivante qui pose problème potVal n'est pas une chaîne de caractère
String str1 = "Valeur de potVal : " + potVal;

Perso, je préfère utiliser les char
sprintf(str1,"Valeur de potVal : %d\0",potVal);

avec str1 déclaré comme char *
char str1[32];

Si tu veut rester avec la classe String essaye
String str1 = "Valeur de potVal : " + String(potVal,DEC);


« Last Edit: May 17, 2011, 09:30:09 am by semageek » Logged

Retrouvez les kits Arduino dans notre boutique http://boutique.semageek.com/

Offline Offline
Sr. Member
****
Karma: 0
Posts: 332
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ok ok smiley merci

Ta solution char correspond à ce qu'on ferai dans le vrai langage C ? Parce que dans ce cas, je me forcerais à utiliser cette solution
Logged

Pages: [1]   Go Up
Jump to: