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
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.