Partage
  • Partager sur Facebook
  • Partager sur Twitter

erreur sur un code arduino

    20 mai 2018 à 17:45:31

    je suis entrain de fusionner 2 code arduino mais j'ai une erreur et je sais pas comment la réparer ducoup je vous demande de l'aide !!

    #include <SPI.h>
    #include <Ethernet2.h>
    #include <Wire.h> //bibliothèque pour la communication I2C
    #include <Adafruit_MotorShield.h> //bibliothèque pour le shield
    
    Adafruit_MotorShield monShield = Adafruit_MotorShield(); //création de l'objet shield
    Adafruit_DCMotor *moteurGauche = monShield.getMotor(1); //création de l'objet moteurGauche par pointeur et repérage du numéro
    Adafruit_DCMotor *moteurDroite = monShield.getMotor(2); //création de l'objet moteurDroite par pointeur et repérage du numéro
    
    // L'adresse MAC du shield
    byte mac[] = { 0x90, 0xA2, 0xDA, 0x10, 0xFE, 0xF8 };
    // L'adresse IP que prendra le shield
    IPAddress ip(10,111,3,42);
    
    EthernetClient client;
    
    int v="255";
    char chaine[21] = "";
    int valeur_servo1 = 90;
    int valeur_servo2 = 90;
    char nom = ' ';
    char action = ' ';
    int i = 0;
    
    void setup() {
      Serial.begin(9600);
      Ethernet.begin(mac, ip, (10,111,3,1) , (10,111,3,254) , (255,255,248,0));
      monShield.begin(); //On lance la communication avec le shield
      moteurGauche->setSpeed(255); //On définit la vitesse de rotation
      moteurDroite->setSpeed(255); //des deux moteurs
    }
    void loop() {
     while(client.connected()) {
        if(client.available()) {
            if(chaine[i] == '\n') {
                // on traite la chaine
                int point = chaine.indexOf('?');
                nom = chaine[point+1];
                int http = chaine.indexOf(" HTTP");
                // on réduit la chaine
                chaine = chaine.substring(point+2, http);
    
                // on fait une action
                switch(nom) {
                    case 'x':
                      
                    break;
                    case 'y':
    
                    break;
                      case 'a':
                        switch(chaine[0]) {
                            case 'a': 
                              void avance;
                              break;
                                case 'r' :
                                  void recule;
                                  break;
                                    case 'g' :
                                      void tourneGauche;
                                      break;
                                        case 'd' :
                                          void tourneDroite;
                                          break;
                                            case 's' :
                                              void arret;
                                              break;
                            
                            
                        }
                        break;
                }
    
                // en dernier on reinitialise la chaine et i
                chaine = "";
                i = 0;
            } else {
                chaine[i]= client.read();
                i++;
          }
        }
      }
    }
    void arret(){
      //fonction d'arrêt des deux moteurs
      moteurGauche->run(RELEASE);
      moteurDroite->run(RELEASE);
    }
    void defVitesse(int v){
      moteurGauche->setSpeed(v); //on redéfinit la vitesse
      moteurDroite->setSpeed(v); //des deux moteurs
    }
    void avance(int v){
      //fonction de marche avant
      defVitesse(v); //appel de la fonction pour définir la vitesse
      moteurGauche->run(FORWARD);
      moteurDroite->run(FORWARD);
    }
    void recule(int v){
      //fonction de marche arrière
      defVitesse(v);
      moteurGauche->run(BACKWARD);
      moteurDroite->run(BACKWARD);
    }
    void tourneDroite(int v){
      //fonction pour tourner à droite sur place
      defVitesse(v);
      moteurGauche->run(FORWARD);
      moteurDroite->run(BACKWARD);
    }
    void tourneGauche(int v){
      //fonction pour tourner à gauche sur place
      defVitesse(v);
      moteurGauche->run(BACKWARD);
      moteurDroite->run(FORWARD);
    }

    j'ai reussi a regler le premier probleme mais je sais pas si je me suis autobloquer ducoup car j'ai enlever le [21] devant le char chaine 

    Maintenant j'ai un autre probleme qui concerne encore la variable chaine 

    merci de vos réponse pour ce problème et aussi pour savoir si j'ai pas fait une erreur quand j'ai supprimer le [21] dans la variable.

    -
    Edité par reda159 20 mai 2018 à 18:38:06

    • Partager sur Facebook
    • Partager sur Twitter

    erreur sur un code arduino

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown