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 :

Arduino - Erreur "No member named"


Sujet :

Arduino

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2022
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2022
    Messages : 3
    Par défaut Arduino - Erreur "No member named"
    Bonjour,
    Je crée un testeur pour 16 servomoteurs.
    J'utilise un écran TFT 1.8 7735 qui n'est pas de marque Arduino mais compatible (Joy-it).
    Le téléversement bloque à 'class TFT' as no member named 'drawString';
    Je suis débutant et tous mes efforts pour solutionner le problème échoue.
    Merci de votre aide.

    Version IDE : 1.8.15
    Librairie installée : TFT 1.0.6

    Voici le code :
    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
    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
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    #include <Wire.h>
    #include <Adafruit_PWMServoDriver.h>
    #include <TFT.h>
    #include <SPI.h>
    #define OLED_RESET 4
     
    TFT TFTscreen = TFT(6, 7, 8);
    Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver();
     
    //Pin Definitions
    #define pot0  A0
    #define pot1  A1
    #define pot2  A2
    #define pot3  A3
    #define upButtonPin  9
    #define downButtonPin  5
     
    // Color definitions
    #define BLACK           0x0000
    #define YELLOW          0xFFE0
    #define WHITE           0xFFFF
     
    uint8_t spacing = 8;
    uint8_t yPos = 2;
    uint8_t servoNum = 0;
    char servo[] = "Servo ";
    char colon[] = ": ";
    uint8_t upButtonState = 0;
    uint8_t downButtonState = 0;
    uint8_t activeServoSet = 0;
    uint16_t servoPulse[] = {350, 350, 350, 350,
                             350, 350, 350, 350,
                             350, 350, 350, 350,
                             350, 350, 350, 350
                            };
     
     
    void setup() {
     
      Serial.begin(9600);
      delay(200);
      TFTscreen.initR();
     
      pwm.begin();
      pwm.setPWMFreq(60);
     
      pinMode(pot0, INPUT);
      pinMode(pot1, INPUT);
      pinMode(pot2, INPUT);
      pinMode(pot3, INPUT);
     
      //Set background colour
      TFTscreen.fillScreen(BLACK);
     
      //Write servo numbers
      for (uint8_t count = 0; count <= 3; count ++) {
        for (uint8_t i = 0; i <= 3; i ++) {
          char numRead[2];
          char combined[32] = {0};
          dtostrf(servoNum, 1, 0, numRead);
          strcat(combined, servo);
          strcat(combined, numRead);
          TFTscreen.drawString(0, yPos, combined, WHITE);
          TFTscreen.drawString(48, yPos, colon, WHITE);
          servoNum ++;
          yPos += spacing;
        }
        yPos += 8;
      }
     
      //Write initial servo positions (350 to start with)
      servoNum = 0;
      yPos = 2;
      for (uint8_t count = 0; count <= 3; count ++) {
        for (uint8_t i = 0; i <= 3; i ++) {
          char numRead[3];
          dtostrf(servoPulse[servoNum], 3, 0, numRead);
          TFTscreen.drawString(60, yPos, numRead, YELLOW);
          servoNum ++;
          yPos += spacing;
        }
        yPos += 8;
      }
      TFTscreen.drawString(95, 3, "<", WHITE, 4);
    }
     
    void loop() {
     
      //Run function to see if buttons have been pressed, and pick a servo set accordingly
      servoSetSelect();
     
      //Record the positions of all servos mapped to a pulsewidth of between 0 and 800
      servoPulse[activeServoSet * 4] = map(analogRead(pot0), 0, 1023, 0, 800);
      servoPulse[(activeServoSet * 4) + 1] = map(analogRead(pot1), 0, 1023, 0, 800);
      servoPulse[(activeServoSet * 4) + 2] = map(analogRead(pot2), 0, 1023, 0, 800);
      servoPulse[(activeServoSet * 4) + 3] = map(analogRead(pot3), 0, 1023, 0, 800);
     
      //Clear the previous number, and write the new pulsewidths for the active servo set to the monitor
      writePulses ();
     
      //Using the servo driver board, set the active servos to the position  specified by the potentiometers
      pwm.setPWM(activeServoSet * 4, 0, servoPulse[activeServoSet * 4]);
      pwm.setPWM((activeServoSet * 4) + 1, 0, servoPulse[(activeServoSet * 4) + 1]);
      pwm.setPWM((activeServoSet * 4) + 2, 0, servoPulse[(activeServoSet * 4) + 2]);
      pwm.setPWM((activeServoSet * 4) + 3, 0, servoPulse[(activeServoSet * 4) + 3]);
     
    }
     
     
    void writePulses () {
     
      servoNum = 0;
      yPos = 2 + (activeServoSet * 40);
     
      for (uint8_t i = 0; i <= 3; i ++) {
        char inChar[3];
        dtostrf(servoPulse[(activeServoSet * 4) + servoNum], 3, 0, inChar);
        TFTscreen.fillRect(58, yPos, 30, 8, BLACK);
        TFTscreen.drawString(60, yPos, inChar, YELLOW);
        servoNum ++;
        yPos += spacing;
      }
      yPos += 8;
    }
     
    void servoSetSelect() {
     
      upButtonState = digitalRead(upButtonPin);
      downButtonState = digitalRead(downButtonPin);
     
      if (upButtonState == 1) {
        activeServoSet ++;
        if (activeServoSet > 3) {
          activeServoSet = 0;
        }
        TFTscreen.fillRect(95, 0, 30, 160, BLACK);
        TFTscreen.drawString(95, ((activeServoSet * 40) + 3), "<", WHITE, 4);
        delay(150);
      }
      if (downButtonState == 1) {
        activeServoSet --;
        if (activeServoSet > 3) {
          activeServoSet = 3;
        }
        tft.fillRect(95, 0, 30, 160, BLACK);
        tft.drawString(95, ((activeServoSet * 40) + 3), "<", WHITE, 4);
        delay(150);
      }
    }

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 317
    Par défaut
    La bibliothèque TFT livrée de base avec l'IDE Arduino n'a pas de fonction drawString. Voir ici : https://www.arduino.cc/reference/en/libraries/tft/
    Pas plus que les bibliothèques Adafruit_GFX et Adafruit_ST7735 utilisée par TFT.

    À mon avis, tu devrais retourner sur le site à partir duquel tu as fais un copier/coller et chercher quelle bibliothèque était utilisée.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2022
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2022
    Messages : 3
    Par défaut Arduino - Erreur "No member named"
    Citation Envoyé par Jerome Briot Voir le message
    La bibliothèque TFT livrée de base avec l'IDE Arduino n'a pas de fonction drawString. Voir ici : https://www.arduino.cc/reference/en/libraries/tft/
    Pas plus que les bibliothèques Adafruit_GFX et Adafruit_ST7735 utilisée par TFT.

    À mon avis, tu devrais retourner sur le site à partir duquel tu as fais un copier/coller et chercher quelle bibliothèque était utilisée.
    Merci de ta réponse rapide.
    Exact, je me doutais un peu de cela mais je n'en étais pas sûr.
    Dans le dossier d'origine j'ai trouvé 3 fichiers :
    - glcdfont.c
    - ST7735.cpp
    - ST7735.h

    Dois-je les installer tous les 3 et surtout comment ?
    Je pense que dans l'IDE je vais à "ajouter la bibliothèque ZIP" et dans ce cas je fais 1 ZIP des 3 dossiers ou dois-je faire 3 ZIP .
    Ou alors je passe par "ajouter un fichier" et je le fais 3 fois ?

  4. #4
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 317
    Par défaut
    Citation Envoyé par Auris de Lasstoor Voir le message
    Dans le dossier d'origine j'ai trouvé 3 fichiers :
    - glcdfont.c
    - ST7735.cpp
    - ST7735.h
    D'où viennent ces fichiers ?

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2022
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2022
    Messages : 3
    Par défaut
    Citation Envoyé par Jerome Briot Voir le message
    D'où viennent ces fichiers ?
    Ils étaient dans un dossier nommé TFT18 et contenait également 2 PDF sur le materiel.

    Dossier principal : Servo_Tester_Dowload_Package contenant :
    - Big_Screen_Servo_test => Big_Screen_Servo_test.ino
    - TFT18 => les 3 fichiers en question + les 2 PDF

  6. #6
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 317
    Par défaut
    Où as-tu téléchargé ces fichiers ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Compilation] Erreur : "has no member named"
    Par Trademark dans le forum Débuter
    Réponses: 8
    Dernier message: 03/05/2010, 22h11
  2. Export requete texte -> Excel : erreur quote
    Par Sam 069 dans le forum VBA Access
    Réponses: 1
    Dernier message: 18/07/2007, 15h27
  3. Modification d'un texte dans une fenetre "d'erreur"
    Par PAUL87 dans le forum Access
    Réponses: 8
    Dernier message: 21/10/2005, 13h12

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