Problème vélo connecté

Bonjour, je me présente. Je suis en Terminale S si et j'ai un projet à faire avec un groupe.
Je m'occupe surtout de la partie Arduino, et une de mes tâches consiste à savoir si le vélo est en montée, est stable, ou en descente afin de modifier le couple et ainsi pédaler plus ou moins vite.
En fait, si le vélo est par exemple dans une petite montée, le couple va changer immédiatement, et ce n'est pas une bonne idée étant donné qu'on suppose le vélo lancé dans sa vitesse, et faciliter le pédalage va juste ralentir le cycliste. Donc pour cela, j'ai eu une idée. Je mets 2 capteurs à bulle dos à dos et en fonction de leur position, on sait l'orientation du vélo.
Donc pour continuer avec le problème de la petite montée, j'aimerais faire une espèce de "confirmation", et donc attendre 2sec pour confirmer le fait que le vélo soit en descente ou en montée.
J'ai déjà pensé à faire cet extrait de code:

{
tiltVal1 = digitalRead (tiltSwitch1) ;// read the switch value 1
tiltVal2 = digitalRead (tiltSwitch2) ;// read the switch value 2

if (tiltVal1 == HIGH) // Means we've tilted
{
if (tiltVal2 == LOW) // Means we've tilted
{
Serial.println("Montée: Test ...");
delay(2000);
{
if (tiltVal1 == HIGH) // Means we've tilted
{
if (tiltVal2 == LOW) // Means we've tilted
{
Serial.println("Montée");
delay(2000);
}
}
else
{
Serial.println("Fausse alerte");
}
}
}
}
}

Merci beaucoup d'avance de votre aide.
(Le problème étant Que le moniteur ne m'affiche que "Montée" par exemple, et jamais "Fausse alerte", ni "Montée: Test..."

il existe des composant bien plus modernes pour mesurer l'angle d'inclinaison, donc si le vélo est en monté ou en descente.
De plus le résultat sera quantitative (combien de degré) et non qualitative ( monté/descente).

Petite recherche à faire.

Je viens de trouver l'utilité à un de mes capteurs après quelques recherches, c'est un accéléromètre ahah
Désolé pour cette question bête :confused:
Merci beaucoup

D’abord bravo pour vous pencher tot sur votre projet...vous n’attndez Pas la dernière minute et c’est bien!

Si vous comptez revenir nous voir avec des question (bienvenue !) prenez le temps de lire les règles du forum et comment poster du code

Sinon pour votre code du début prenez l’habitude d’indenter (Appuyez sur ctrl-T) pour voir les blocs des if/else et la structure du code. Là vos {} sont n’importe où et donc c’est illisible, ça ne donne même pas envie d’essayer de lire votre code tellement c’est moche :slight_smile:

Enfin si vous avez 2 conditions à tester simultanément pensez à &&

Indenté, ça donne ça :

void loop() {
  tiltVal1 = digitalRead (tiltSwitch1) ;// read the switch value 1
  tiltVal2 = digitalRead (tiltSwitch2) ;// read the switch value 2

  if (tiltVal1 == HIGH) // Means we've tilted
  {
    if (tiltVal2 == LOW) // Means we've tilted
    {
      Serial.println("Montée: Test ...");
      delay(2000);
      {
        if (tiltVal1 == HIGH) // Means we've tilted
        {
          if (tiltVal2 == LOW) // Means we've tilted
          {
            Serial.println("Montée");
            delay(2000);
          }
        }
        else
        {
          Serial.println("Fausse alerte");
        }
      }
    }
  }
}

Mais c'est incohérent, il faut le revoir complètement (j'imagine que c'est juste un premier test).

Si tu as un accéléromètre, il faudrait que tu connaisses la référence: tu trouveras ensuite grâce à Google des exemples de codes qui te permettront de comprendre son fonctionnement et d'adapter rapidement un bout de code.

Mais c'est incohérent

--> c"était le point que je voulais faire passer :slight_smile:

Bonjour, merci beaucoup de votre réponse :smiley:

J'ai réussi à faire fonctionner un gyroscope (et c'est bien plus pratique) que je possédais déjà (oui j'aurais pu me renseigner hihi).
Déso pour la gueule de mon code, je suis encore débutant (j'ai commencé il y a 2 mois maxi)
Merci pour les conseils :slight_smile: