Problème contrôle moteur

Bonjour à tous, Alors voilà je vous explique mon problème : Je suis en classe de terminale et pour mon projet il faut que je fasse un code sauf que voilà j'ai un problème. Nous faisons un "entonnoir" éolienne c'est à dire qu'en fonction de la vitesse du vent capter par l'anémomètre le moteur doit s'activer pour faire tourner une vis sans fin où il y aura un écrou qui avancera et reculera pour pouvoir régler la section de sortie de cet entonnoir en agissant comme les baleines d'un parapluie Mon but étant de faire fonctionner un moteur à courant continu à l'aide des informations récupérer par un anémomètre, je ne comprends pas comment faire. Est-ce qu'il faut faire un programme à part pour l'anémomètre ou alors serait-il possible de faire les deux en un ? J'ai essayer de faire un code pour faire tourner le moteur sans l'aide de l'anémomètre mais je m'étais planté j'ai donc trouvé un code qui me semblait complet et juste.

const int enable = 3; //la PWM
const int in1 = 2;    //les broches de signal
const int in2 = 4;
const int potar = 0;  //la broche pour régler la vitesse

void setup()
{
    pinMode(enable, OUTPUT);
    pinMode(in1, OUTPUT);
    pinMode(in2, OUTPUT);
    Serial.begin(115200);

    //on démarre moteur en avant et en roue libre
    analogWrite(enable, 0);
    digitalWrite(in1, LOW);
    digitalWrite(in2, HIGH);
}

void loop()
{
    int vitesse = analogRead(potar);

    //dans le sens positif
    if(vitesse > 512)
    {
        //on décale l'origine de 512
        vitesse -= 512;
        //le moteur va dans un sens
        digitalWrite(in1, LOW);
        digitalWrite(in2, HIGH);
        Serial.print("+");
    }
    else //dans l'autre sens
    {
        //de même on décale pour que la vitesse augmente en s'éloignant de 512
        vitesse = 512-vitesse;
        //le moteur va dans l'autre sens
        digitalWrite(in1, HIGH);
        digitalWrite(in2, LOW);
        Serial.print("-");
    }

    //pour rester dans l'intervalle [0;255] (sinon on est dans [0;512])
    vitesse /= 2;
    //envoie la vitesse
    analogWrite(enable, vitesse);

    //et l'affiche
    Serial.println(vitesse);
    delay(50);
}

Voilà merci d'avance pour votre aide :)

Bonjour,

Est-ce que quelqu'un pourrait il m'aider ? :)

serait-il possible de faire les deux en un ?

Bonjour,

oui, l'arduino est assez rapide et assez équipé pour cela

dans ton exposé, que je ne qualifierais pas des plus succincts car nous avons vu pire, tu ne nous dis pas quel type de moteur est utilisé ni comment il est raccordé : il est donc difficile de vérifier la validité de ton programme ?

idem pour l’anémomètre, quel modèle, comment est-il branché, quel type de données fait-il parvenir à l'arduino ?

Pour les branchements j'attends que le matos arrive au lycée sinon c'est un moteur à courant continu et pour l'anémomètre j'en cherche un peu cher et capable de prendre des mesures plutôt précise quand même.