programmation carte arduino

Accueil/Questions/programmation carte arduino
programmation carte arduino 2015-10-21T09:33:03+00:00

Accueil Forums Questions programmation carte arduino

2 sujets de 1 à 2 (sur un total de 2)
  • Auteur
    Messages
  • Nicolas Van Schoorisse
    Participant
    Nombre d'articles : 4
    #9476 |

    J’ai rentré ce code :

    // CAPTEUR DE FLEXION 1 BRANCHE SUR L’ENTREE ANALOGIQUE 0
    // CAPTEUR DE FLEXION 2 BRANCHE SUR L’ENTREE ANALOGIQUE 1
    // POUR LE MOMENT DISONS QUE LE CDF EST PLIE SI degrees > 10
    // PENSER A CHANGER 768 ET 853

    void setup()
    {
    // initialize serial communications
    Serial.begin(9600);
    }

    void loop()
    {
    int valeur(0);

    do {int cdf1, degrees;

    // read the voltage from the voltage divider (sensor plus resistor)
    cdf1 = analogRead(0);

    // convert the voltage reading to inches
    // the first two numbers are the sensor values for straight (768) and bent (853)
    // the second two numbers are the degree readings we’ll map that to (0 to 90 degrees)
    degrees = map(cdf1, 768, 853, 0, 90);
    // note that the above numbers are ideal, your sensor’s values will vary
    // to improve the accuracy, run the program, note your sensor’s analog values
    // when it’s straight and bent, and insert those values into the above function.

    // print out the result
    Serial.print(« analog input: « );
    Serial.print(cdf1,DEC);
    Serial.print( » degrees: « );
    Serial.println(degrees,DEC);

    int cdf2, degrees;

    // read the voltage from the voltage divider (sensor plus resistor)
    cdf2 = analogRead(1);

    // convert the voltage reading to inches
    // the first two numbers are the sensor values for straight (768) and bent (853)
    // the second two numbers are the degree readings we’ll map that to (0 to 90 degrees)
    degrees = map(cdf2, 768, 853, 0, 90);
    // note that the above numbers are ideal, your sensor’s values will vary
    // to improve the accuracy, run the program, note your sensor’s analog values
    // when it’s straight and bent, and insert those values into the above function.

    // print out the result
    Serial.print(« analog input: « );
    Serial.print(cdf2,DEC);
    Serial.print( » degrees: « );
    Serial.println(degrees,DEC);

    // pause before taking the next reading
    delay(100);

    } while (cdf1 >=10 && cdf2 <=10); //si l’utilisteur ne fait ni feuille ni pierre ni ciseaux, répéter la question

    if (cdf1 >= 3 && cdf2 >= 3) //l’utilisateur fait feuille
    {
    int valeur(3); // valeur 3 = le robot doit faire ciseaux
    return valeur;
    }
    else if (cdf1 >= 10 && cdf2 >= 1O ) //l’utilisateur fait pierre
    {
    int valeur(2); // valeur 2 = le robot doit feuille
    return valeur;
    }
    else if (cdf <= 10 && cdf2 >=10) //l’utilisateur fait ciseaux
    {
    int valeur(1); // valeur 1 = le robot doit faire pierre
    return valeur;
    }
    }

    et j’ai ce message d’erreur :
    Arduino : 1.6.5 (Windows 8.1), Carte : « Arduino/Genuino Uno »

    calcul_du_degr__du_cdf.ino:65:36: error: invalid suffix « O » on integer constant
    calcul_du_degr__du_cdf.ino: In function ‘void loop()’:
    calcul_du_degr__du_cdf.ino:35:11: error: redeclaration of ‘int degrees’
    calcul_du_degr__du_cdf.ino:16:15: error: ‘int degrees’ previously declared here
    calcul_du_degr__du_cdf.ino:58:18: error: ‘cdf1’ was not declared in this scope
    calcul_du_degr__du_cdf.ino:58:31: error: ‘cdf2’ was not declared in this scope
    calcul_du_degr__du_cdf.ino:63:16: error: return-statement with a value, in function returning ‘void’ [-fpermissive]
    calcul_du_degr__du_cdf.ino:68:16: error: return-statement with a value, in function returning ‘void’ [-fpermissive]
    calcul_du_degr__du_cdf.ino:70:14: error: ‘cdf’ was not declared in this scope
    calcul_du_degr__du_cdf.ino:73:16: error: return-statement with a value, in function returning ‘void’ [-fpermissive]
    invalid suffix « O » on integer constant

    Je veux que ma carte arduino sache si le gant avec le capteur de flexion fait pierre, feuille, ou ciseaux

    si il fait pierre, il ressort la valeur 2
    si il fait feuille, il ressort la valeur 3
    si il fait ciseaux, il ressort la valeur 1

    pour le moment c’est ce que j’essaie de programmer

    ensuite la carte envoi par bluetooth à une autre carte arduino la valeur 1,2 ou 3
    selon les valeurs, la carte arduino fait fonctionner 2 servos moteurs pour faire bouger une main robotisée

    si elle reçoit la valeur 1, elle fait pierre
    valeur 2 -> feuille
    valeur 3 ciseaux

    Merci pour l’aide !

    arnaud9212
    Admin bbPress
    Nombre d'articles : 118

    Je t’ai corrigé ton code, normalement ca devrait compiler, il ne te reste plus qu’a envoyer la variable « valeur » par bluetooth, la elle l’envoie par serie, normalement les modules bluetooth utilisent la voie serie aussi donc ca devrait le faire

    void setup()
    {
    // initialize serial communications
    Serial.begin(9600);
    }
    int cdf1,cdf2, degrees;
    void loop()
    {
    valeur = 0;

    do {
    cdf1 = 0;
    degrees = 0;

    // read the voltage from the voltage divider (sensor plus resistor)
    cdf1 = analogRead(0);

    // convert the voltage reading to inches
    // the first two numbers are the sensor values for straight (768) and bent (853)
    // the second two numbers are the degree readings we’ll map that to (0 to 90 degrees)
    degrees = map(cdf1, 768, 853, 0, 90);
    // note that the above numbers are ideal, your sensor’s values will vary
    // to improve the accuracy, run the program, note your sensor’s analog values
    // when it’s straight and bent, and insert those values into the above function.

    cdf2 = 0;
    degrees = 0;

    // read the voltage from the voltage divider (sensor plus resistor)
    cdf2 = analogRead(1);

    // convert the voltage reading to inches
    // the first two numbers are the sensor values for straight (768) and bent (853)
    // the second two numbers are the degree readings we’ll map that to (0 to 90 degrees)
    degrees = map(cdf2, 768, 853, 0, 90);
    // note that the above numbers are ideal, your sensor’s values will vary
    // to improve the accuracy, run the program, note your sensor’s analog values
    // when it’s straight and bent, and insert those values into the above function.

    // pause before taking the next reading
    delay(100);

    } while (cdf1 >=10 && cdf2 < =10); //si l’utilisteur ne fait ni feuille ni pierre ni ciseaux, répéter la question if (cdf1 >= 3 && cdf2 >= 3) //l’utilisateur fait feuille
    {
    valeur=3; // valeur 3 = le robot doit faire ciseaux
    }
    else if (cdf1 >= 10 && cdf2 >= 1O ) //l’utilisateur fait pierre
    {
    valeur = 2; // valeur 2 = le robot doit feuille

    }
    else if (cdf < = 10 && cdf2 >=10) //l’utilisateur fait ciseaux
    {
    valeur =1; // valeur 1 = le robot doit faire pierre

    }
    Serial.println(valeur);
    }

2 sujets de 1 à 2 (sur un total de 2)

Vous devez être connecté pour répondre à ce sujet.