IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Arduino Discussion :

Aide pour corriger le programme


Sujet :

Arduino

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    sans emploi
    Inscrit en
    Décembre 2021
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2021
    Messages : 18
    Par défaut Aide pour corriger le programme
    Bonjour à toutes et à tous!

    Je suis débutante et je me suis lancée sur la carte Teensy LC et j'aimerais beaucoup reproduire le projet sur la vidéo :


    J'ai fais le circuit avec les résistances les Leds etc..

    Et j'ai recopié le code de la vidéo que je vous mets ci-dessous. Sauf que j'ai des erreurs et je ne connais pas le langage du Arduino, j'ai fais des recherches mais je n'ai pas réussi à trouver. (J'ai travaillé un peu sur une Raspberry pi mais ce n'est apparemment pas le même langage) Est ce que ce serait possible de m'aider? Je vous remercie

    ERREUR :

    essaie_sensor_3led:34: error: variable or field 'setup' declared void
     void setup 
          ^
    essaie_sensor_3led:37: error: expected '}' before ';' token
        pinMode (ledPin1, OUTPUT);
                                 ^
    essaie_sensor_3led:38: error: expected constructor, destructor, or type conversion before '(' token
        pinMode (ledPin2, OUTPUT);
                ^
    essaie_sensor_3led:39: error: expected constructor, destructor, or type conversion before '(' token
        pinMode (ledPin3, OUTPUT);
                ^
    essaie_sensor_3led:40: error: expected constructor, destructor, or type conversion before '(' token
        pinMode (ledPin4, OUTPUT);
                ^
    essaie_sensor_3led:41: error: expected constructor, destructor, or type conversion before '(' token
        pinMode (ledPin5, OUTPUT);
                ^
    essaie_sensor_3led:42: error: expected constructor, destructor, or type conversion before '(' token
        pinMode (ledPin6, OUTPUT);
                ^
    essaie_sensor_3led:43: error: expected constructor, destructor, or type conversion before '(' token
        pinMode (ledPin7, OUTPUT);
                ^
    essaie_sensor_3led:44: error: expected constructor, destructor, or type conversion before '(' token
        pinMode (ledPin8, OUTPUT);
                ^
    essaie_sensor_3led:45: error: expected constructor, destructor, or type conversion before '(' token
        pinMode (ledPin9, OUTPUT);
                ^
    essaie_sensor_3led:46: error: 'Serial' does not name a type
        Serial.begin(9600);
        ^
    essaie_sensor_3led:47: error: expected declaration before '}' token
     }
     ^
    exit status 1
    LE PROGRAMME:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    #include <CapacitiveSensor.h>
    int touchPin1 = 0;
    int touchPin2 = 1;
    int touchPin3 = 15;
    int touchPin4 = 16;
    int touchPin5 = 17;
    int touchPin6 = 18;
    int touchPin7 = 19;
    int touchPin8 = 22;
    int touchPin9 = 23;
     
    int touchReading1 = 0;
    int touchReading2 = 0;
    int touchReading3 = 0;
    int touchReading4 = 0;
    int touchReading5 = 0;
    int touchReading6 = 0;
    int touchReading7 = 0;
    int touchReading8 = 0;
    int touchReading9 = 0;
     
    const int ledPin1 = 11;
    const int ledPin2 = 2;
    const int ledPin3 = 3;
    const int ledPin4 = 4;
    const int ledPin5 = 5;
    const int ledPin6 = 6;
    const int ledPin7 = 7;
    const int ledPin8 = 8;
    const int ledPin9 = 9;
    const int StartThreshold = 1170;
    const float LedMultiplier = 0.04;
     
    void setup 
     { 
       // set pin mode
       pinMode (ledPin1, OUTPUT);
       pinMode (ledPin2, OUTPUT);
       pinMode (ledPin3, OUTPUT);
       pinMode (ledPin4, OUTPUT);
       pinMode (ledPin5, OUTPUT);
       pinMode (ledPin6, OUTPUT);
       pinMode (ledPin7, OUTPUT);
       pinMode (ledPin8, OUTPUT);
       pinMode (ledPin9, OUTPUT);
       Serial.begin(9600);
     }
     
     
     
    void loop 
    {
        long start = nillis();
        touchReading1 = touchRead (touchPin1);
        touchReading2 = touchRead (touchPin2);
        touchReading3 = touchRead (touchPin3);
        touchReading4 = touchRead (touchPin4);
        touchReading5 = touchRead (touchPin5);
        touchReading6 = touchRead (touchPin6);
        touchReading7 = touchRead (touchPin7);
        touchReading8 = touchRead (touchPin8);
        touchReading9 = touchRead (touchPin9);
     
        Serial.print(nillis()- start),
        Serial.print("\t");
        Serial.print(touchReading6);
        Serial.print("\t");
        Serial.print(touchReading7);
        Serial.print("\t");
        Serial.print(touchReading8);
        Serial.print("\t");
        Serial.print(touchReading9);
     
        if (touchReading1 > 2700) {  // set LED on or off
          digitalWrite (ledPin1,HIGH);
        } else {
          digitalWrite (ledPin1,LOW);
        }
        if (touchReading2 > 2700) {
          digitalWrite (ledPin2,HIGH);
        } else {
          digitalWrite (ledPin2,LOW);   
        }
        int touchReading31 =  (touchReading3 - StartThreshold  * LedMultiplier; // example on pin 3
        analogWrite (ledPin3, touchReading31)) ;  // set PWM on pin,  not all pins are PWM capable
        int touchReading41 =  (touchReading4 - StartThreshold  * LedMultiplier;
        analogWrite (ledPin4, touchReading41)) ;  
        int touchReading51 =  (touchReading5 - StartThreshold  * LedMultiplier;
        analogWrite (ledPin5, touchReading51)) ;  
        int touchReading61 =  (touchReading6 - StartThreshold  * LedMultiplier;
        analogWrite (ledPin6, touchReading61)) ;  
        if (touchReading7 > 2700){
         digitalWrite (ledPin7,HIGH)
        } else {
          digitalWrite(ledPin7,LOW)  
        if (touchReading8 > 2700){
         digitalWrite (ledPin8,HIGH)
        } else {
          digitalWrite(ledPin8,LOW) 
        if (touchReading9 > 2700){
         digitalWrite (ledPin9,HIGH)
        } else {
          digitalWrite(ledPin9,LOW) 
        }
     
        delay (10)

  2. #2
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 661
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 661
    Par défaut
    Bonjour,

    comme indiqué dans les erreurs, setup et loop sont déclarées comme des variables. Or ce sont des fonctions.
    En ajoutant des parenthèses, corrige :
    en
    et
    en
    Dans ton code je vois également la fonction nillis(). Ce n'est pas plutôt millis() ?

    Quand tu postes ton code, n'oublie pas de l'encadrer des balises [code][/code] pour une meilleur lisibilité.

  3. #3
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 190
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 190
    Par défaut
    Yop !
    Citation Envoyé par Auteur Voir le message
    Quand tu postes ton code, n'oublie pas de l'encadrer des balises [code][/code] pour une meilleur lisibilité.
    Et t'as oublié de lui dire qu'elle peut même éditer son premier post pour rajouter ces fameuses balises, parce que son code en l'état est juste illisible...

  4. #4
    Membre averti
    Femme Profil pro
    sans emploi
    Inscrit en
    Décembre 2021
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2021
    Messages : 18
    Par défaut
    J'ai bien rajouté les () après setup et loop merci pour ça mais après j'ai eu une autre erreur c'était touchRead qui n'étais pas défini et je me suis dis que ce n'était peut être pas nécessaire et je l'ai supprimé. Maintenant j'ai une autre erreur, j'ai regardé sur internet et c'est un symbole que j'aurais mal utilisé ou oublier? Qu'est ce que je devrais faire?

    Voici le nouveau programme et l'erreur :

    essaie_sensor_3led:84: error: expected ')' before ';' token
         int touchReading31 =  (touchReading3 - StartThreshold  * LedMultiplier; // example on pin 3
                                                                               ^
    essaie_sensor_3led:85: error: expected ';' before ')' token
         analogWrite (ledPin3, touchReading31)) ;  // set PWM on pin,  not all pins are PWM capable
                                              ^
    essaie_sensor_3led:86: error: expected ')' before ';' token
         int touchReading41 =  (touchReading4 - StartThreshold  * LedMultiplier;
                                                                               ^
    essaie_sensor_3led:87: error: expected ';' before ')' token
         analogWrite (ledPin4, touchReading41)) ;  
                                              ^
    essaie_sensor_3led:88: error: expected ')' before ';' token
         int touchReading51 =  (touchReading5 - StartThreshold  * LedMultiplier;
                                                                               ^
    essaie_sensor_3led:89: error: expected ';' before ')' token
         analogWrite (ledPin5, touchReading51)) ;  
                                              ^
    essaie_sensor_3led:90: error: expected ')' before ';' token
         int touchReading61 =  (touchReading6 - StartThreshold  * LedMultiplier;
                                                                               ^
    essaie_sensor_3led:91: error: expected ';' before ')' token
         analogWrite (ledPin6, touchReading61)) ;  
                                              ^
    essaie_sensor_3led:94: error: expected ';' before '}' token
         } else {
         ^
    essaie_sensor_3led:96: error: expected ';' before 'if'
         if (touchReading8 > 2700){
         ^
    essaie_sensor_3led:98: error: 'else' without a previous 'if'
         } else {
           ^
    essaie_sensor_3led:100: error: expected ';' before 'if'
         if (touchReading9 > 2700){
         ^
    essaie_sensor_3led:102: error: 'else' without a previous 'if'
         } else {
           ^
    essaie_sensor_3led:104: error: expected ';' before '}' token
         }
         ^
    essaie_sensor_3led:107: error: expected ';' before '}' token
     }
     ^
    essaie_sensor_3led:107: error: expected '}' at end of input
    essaie_sensor_3led:107: error: expected '}' at end of input
    exit status 1
    expected ')' before ';' token
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    #include <CapacitiveSensor.h>
    int touchPin1 = 0;
    int touchPin2 = 1;
    int touchPin3 = 15;
    int touchPin4 = 16;
    int touchPin5 = 17;
    int touchPin6 = 18;
    int touchPin7 = 19;
    int touchPin8 = 22;
    int touchPin9 = 23;
     
    int touchReading1 = 0;
    int touchReading2 = 0;
    int touchReading3 = 0;
    int touchReading4 = 0;
    int touchReading5 = 0;
    int touchReading6 = 0;
    int touchReading7 = 0;
    int touchReading8 = 0;
    int touchReading9 = 0;
     
    const int ledPin1 = 11;
    const int ledPin2 = 2;
    const int ledPin3 = 3;
    const int ledPin4 = 4;
    const int ledPin5 = 5;
    const int ledPin6 = 6;
    const int ledPin7 = 7;
    const int ledPin8 = 8;
    const int ledPin9 = 9;
    const int StartThreshold = 1170;
    const float LedMultiplier = 0.04;
     
    void setup() 
     { 
       // set pin mode
       pinMode (ledPin1, OUTPUT);
       pinMode (ledPin2, OUTPUT);
       pinMode (ledPin3, OUTPUT);
       pinMode (ledPin4, OUTPUT);
       pinMode (ledPin5, OUTPUT);
       pinMode (ledPin6, OUTPUT);
       pinMode (ledPin7, OUTPUT);
       pinMode (ledPin8, OUTPUT);
       pinMode (ledPin9, OUTPUT);
       Serial.begin(9600);
     }
     
     
     
    void loop() 
    {
        long start = millis();
        touchReading1 = (touchPin1);
        touchReading2 = (touchPin2);
        touchReading3 = (touchPin3);
        touchReading4 = (touchPin4);
        touchReading5 = (touchPin5);
        touchReading6 = (touchPin6);
        touchReading7 = (touchPin7);
        touchReading8 = (touchPin8);
        touchReading9 = (touchPin9);
     
        Serial.print(millis()- start),
        Serial.print("\t");
        Serial.print(touchReading6);
        Serial.print("\t");
        Serial.print(touchReading7);
        Serial.print("\t");
        Serial.print(touchReading8);
        Serial.print("\t");
        Serial.print(touchReading9);
     
        if (touchReading1 > 2700) {  // set LED on or off
          digitalWrite (ledPin1,HIGH);
        } else {
          digitalWrite (ledPin1,LOW);
        }
        if (touchReading2 > 2700) {
          digitalWrite (ledPin2,HIGH);
        } else {
          digitalWrite (ledPin2,LOW);   
        }
        int touchReading31 =  (touchReading3 - StartThreshold  * LedMultiplier; // example on pin 3
        analogWrite (ledPin3, touchReading31)) ;  // set PWM on pin,  not all pins are PWM capable
        int touchReading41 =  (touchReading4 - StartThreshold  * LedMultiplier;
        analogWrite (ledPin4, touchReading41)) ;  
        int touchReading51 =  (touchReading5 - StartThreshold  * LedMultiplier;
        analogWrite (ledPin5, touchReading51)) ;  
        int touchReading61 =  (touchReading6 - StartThreshold  * LedMultiplier;
        analogWrite (ledPin6, touchReading61)) ;  
        if (touchReading7 > 2700){
         digitalWrite (ledPin7,HIGH)
        } else {
          digitalWrite(ledPin7,LOW)  
        if (touchReading8 > 2700){
         digitalWrite (ledPin8,HIGH)
        } else {
          digitalWrite(ledPin8,LOW) 
        if (touchReading9 > 2700){
         digitalWrite (ledPin9,HIGH)
        } else {
          digitalWrite(ledPin9,LOW) 
        }
     
        delay (10)   
    }
    encore merci pour votre temps!

  5. #5
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 661
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 661
    Par défaut
    Comme indiqué dans la console, il y a de très nombreuses fautes de frappe. Des parenthèses en trop ou manquantes, des "," au lieu de ";" etc.

    Déjà les parenthèses sont inutiles ici (je n'ai pas tout réécrit) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    touchReading1 = (touchPin1);
    touchReading2 = (touchPin2);
    touchReading3 = (touchPin3);
    touchReading4 = (touchPin4);
    touchReading5 = (touchPin5);
    touchReading6 = (touchPin6);
    touchReading7 = (touchPin7);
    touchReading8 = (touchPin8);
    Ici l'instruction se termine par une "," au lieu d'un ";"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Serial.print(millis()- start),
    des parenthèses qui s'ouvrent mais qui ne se ferment pas au bon endroit et qui plus est sont inutiles... Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    int touchReading31 =  (touchReading3 - StartThreshold  * LedMultiplier; // example on pin 3
    analogWrite (ledPin3, touchReading31)) ;  // set PWM on pin,  not all pins are PWM capable
    devient (le C++ respecte la priorité des opérations) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    int touchReading31 = touchReading3 - StartThreshold * LedMultiplier; // example on pin 3
    analogWrite(ledPin3, touchReading31);  // set PWM on pin,  not all pins are PWM capable
    Je n'ai pas vérifié si le programme fonctionne, juste sa syntaxe. Après, il faudra sans doute aussi vérifier le montage électronique.
    Lis bien ce que ta console retourne. Une parenthèse mal placée, un point-virgule oublié provoque une avalanche d'erreurs. Corrige et recompile.
    Le C++ est un langage avec une syntaxe très stricte qu'il faut apprendre à maîtriser.

    https://nboulaire.developpez.com/tut...-arduino/#LIII
    https://arduino.developpez.com/tutor...mplet-arduino/

  6. #6
    Membre Expert

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 709
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 709
    Par défaut Parcelle
    Bonjour,

    Un code un peu plus complet serait plus parlant : le code de touchRead() par exemple.

    Une mise en tableau permet un code beaucoup plus court mais implique une numérotation de 0 à 8.
    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    #include <CapacitiveSensor.h>
    const byte ToucPins[9]  = { 0,  1, 15, 16, 17, 18, 19, 22, 23};
    const byte LedPins[9]   = {11,  2,  3,  4,  5,  6,  7,  8,  9};  
    int        TouchVals[9] = { 0,  0,  0,  0,  0,  0,  0,  0,  0);
     
    #define Threshold            1170
    #define LedMin               46.8                /* 0.04 * Threshold */
     
    void setup() { 
       for(int i = 8; i >= 0; --i) {                 // set pin mode
          pinMode(LedPins[i], OUTPUT);
          pinMode(ToucPins[i], INPUT);
       }
       Serial.begin(9600);
    }
     
    void loop() {
       int i, v;
       //long start = nillis();
       for(i = 8; i >= 0; --i) {
          TouchVals[i] = touchRead(i);
          digitalWrite(LedPins[i], TouchVals[i] > 2700); 
       }
       //Serial.print(millis() - start);
       for(i = 4; i <  8; ++i) {
          Serial.print("\t");
          Serial.print(TouchVals[i]);
       }   
       for(i = 2; i <  6; ++i) {
          v = TouchVals[i] > LedMin ? TouchVals[i] > LedMin : 0;
          analogWrite(LedPins[i], v) ;               // set PWM on pin,  not all pins are PWM capable
       }
       delay (10);
    }
    Je pense que l'initialisation (setup) n'est pas complète. Par ailleurs, la répartition entre PWM et mode On/Off devrait se faire dans la même boucle.

    Salutations

  7. #7
    Membre averti
    Femme Profil pro
    sans emploi
    Inscrit en
    Décembre 2021
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2021
    Messages : 18
    Par défaut
    Bonjour ! Désolé de ne pas avoir répondu plutôt, j'ai essayé de mettre et de changer les () et les {} dans mon programme mais je n'ai pas réussi il y a toujours les erreurs Je suis loin d'y arriver ^^ Désolé Auteur
    J'ai essayé le programme de Guesset, il fonctionne sur la Led 11, J'ai essayé de modifier ou de rajouter des for et de changer les nombres si ça change ,mais rien, que ce soit dans void setup ou dans void loop, je n'ai pas réussi à allumer les autres Leds
    J'ai juste réussi à ce que la seule Led qui fonctionne ne s'allume qu'à 50 %, j'avais du faire une bêtise ce n'étais pas voulu dutout..Ahah J'ai remi le code normal et la Led ne s'allume plus normalement, elle clignote, pourquoi ? :O
    Est ce que ce serait possible d'expliquer un peu ton programme pour que je puisse arriver à faire fonctionner les 8 autres Leds ? MERCI BEAUCOUP VRAIMENT!

  8. #8
    Membre Expert

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 709
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 709
    Par défaut DIY
    Bonjour,

    Comme indiqué, j'ai remis toutes les lectures et commandes de led dans une même boucle. J'en ai profité pour corriger une faute de copier-coller sur le calcul de v.
    J'ai ajouté des commentaires dans le code pour expliquer comment il est censé se comporter.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    #include <CapacitiveSensor.h>
    const byte ToucPins[9]  = { 0,  1, 15, 16, 17, 18, 19, 22, 23};      // Broche des Touches  : 0 à 8
    const byte LedPins[9]   = {11,  2,  3,  4,  5,  6,  7,  8,  9};      // Broches des Leds    : 0 à 8 
    int        TouchVals[9] = { 0,  0,  0,  0,  0,  0,  0,  0,  0);      // Valeurs des mesures : 0 à 8
     
    #define Threshold            1170                // Seuil : ne semble pas utilisé directement
    #define LedMin               46.8                /* 0.04 * Threshold */
     
    void setup() { 
       for(int i = 8; i >= 0; --i) {                 // Initialiser les broches
          pinMode(LedPins[i],  OUTPUT);              
          pinMode(ToucPins[i], INPUT);
       }
       Serial.begin(9600);
    }
     
    void loop() {
       int i, v;
       //long start = millis();
       for(i = 8; i >= 0; --i) {                     // On balaye de la dernière à la première touche
          TouchVals[i] = touchRead(i);               // On lit la touche n°i : code de touchRead() ?
          if(i >= 2 && i < 6) {                      // Est une sortie analogique ?
             v = TouchVals[i] > LedMin ? TouchVals[i] - LedMin : 0;      // éviter une valeur négative
             analogWrite(LedPins[i], v) ;            // Allumer les leds 2 à 5 proportionnellement
          }
          else                                       // Sinon allumer si > 2700 ou éteindre si <= 2700
             digitalWrite(LedPins[i], TouchVals[i] > 2700); 
       }
       //Serial.print(millis() - start);
       for(i = 4; i <  8; ++i) {
          Serial.print("\t");
          Serial.print(TouchVals[i]);
       }   
       delay (10);
    }
    Mais en l'état il ne peut fonctionner :
    • CapacitiveSensor n'est même pas instanciée (déclaration genre CapacitiveSensor CS[9]; ). Il faut une instance par touche.
    • Il faut une broche d'excitation appelée ici SendPin qui envoie une fréquence vers chacune des touches au travers d'une résistance élevée.
    • CapacitiveSensor n'est pas initialisée (dans la boucle du setup quelque chose comme CS[i]= CapacitiveSensor(SendPin, ToucPins[i]); ).
    • Il y a d'autres paramètres à donner à CapacitiveSensor (autocal, timeout...) : lire la doc (RTFM comme disent élégamment les anglophones).
    • touchRead n'existe pas : il faut donc l'écrire pour habiller les appels à CapacitiveSensor.

    J'en resterai là.

    A vous de jouer.

Discussions similaires

  1. Aide pour corriger des erreurs
    Par Premium dans le forum C
    Réponses: 32
    Dernier message: 03/06/2006, 17h58
  2. Besoin d'aide pour un petit programme
    Par Nico35 dans le forum C
    Réponses: 13
    Dernier message: 25/05/2006, 23h21
  3. Aide pour projet de programmation Lycée
    Par Supervince dans le forum C
    Réponses: 26
    Dernier message: 21/05/2006, 16h55
  4. [TP] Aide pour commenter un programme
    Par justind1989 dans le forum Turbo Pascal
    Réponses: 10
    Dernier message: 06/04/2006, 20h11
  5. [TPW][cours]Demande d'aide pour finir un programme
    Par jf dans le forum Turbo Pascal
    Réponses: 21
    Dernier message: 16/06/2003, 19h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo