Un nombre mystère

Bonsoir je suis un grand débutant de ce groupe. J'ai vraiment besoin de votre aide pour mon projet.

voilà si vous pourriez m'aider,
merci d'avance.

Comme vous le dites c’est VOTRE projet. En plus c’est sans doute un devoir scolaire.

Vous ne voudriez quand même pas qu’on vous aide à tricher, si ???

:grimacing:

Travaillez un peu le sujet et postez votre code avec vos questions

:warning: La rédaction du message doit prendre en compte les recommandations listées dans « Les bonnes pratiques du Forum Francophone”

Bah non c’est pas ce que je veux.
Désolé c’est vrai, j’étais pas aussi clair que ça. En faite j’aimerais des explications pour comprendre le sujet car voilà l’arduino c’est un truc nouveau pour moi du coup c’est un peu compliqué voilà quoi.

Salut.
Commence déjà par faire des essais :

A noter : généralement les tutos montrent des exemples avec le module BT connecté sur d'autres broches que TX/RX (0 et 1), ce qui plus intelligent, car cela permet de ne pas bloquer la ligne série principale, qui sert entre autres à téléverser le code dans l'ARDUINO.
Pour cela, un objet SoftwareSerial est utilisé.

comme c'est un exercice classique (pas forcément avec Arduino) il y a des ressources sur internet qui peuvent vous aider à réfléchir

par exemple

Alors j'avoue que je ne comprends pas trop les explications que tu attends.
Tu dois écrire un programme qui premièrement tire un nombre aléatoire et le stocke dans une variable local ou global.
Puis scruter la liaison série jusqu'à ce que des caractères ont été envoyé par le mobile(via une liaison Bluetooth).

Il faut alors que tu arrive à comparer la chaine de caractère reçu par rapport au nombre tiré au hasard et stocké dans ta variable.
En fonction de la comparaison tu devra appeler la fonction correspondante que tu aura préalablement déclaré dans ton programme.

Chaque fonction devant actionner la LED lui correspondant.
Ton programme devra alors boucler sur la scrutation de la liaison série, pour attendre à nouveau un nouveau nombre, c'est la partie n'est pas finie.

Cela te parait-il plus claire?
Si ce n'est pas le cas, cela veut dire que c'est ta question qui n'est pas assez précise pour que l'on puisse te répondre.

Le mieux étant de présenter ton programme fonctionnel ou pas avec une question précise sur celui-ci.


vous pouvez regarder pour moi pourquoi ça marche pas svp

le bluetooth s'allume , mes leds sont bien branchés je crois. Je sais pas ce qui ne va pas.

Des photos d’un texte ??? :grimacing:
Vous plaisantez non ?

Postez le code avec les balises de code

#include <SoftwareSerial.h>
#define PIN_V 7
#define PIN_J 6
#define PIN_R 5

#define trop_grand > 1023
#define trop_petit < 0
SoftwareSerial BTserial(10, 11); // (TX,RX)

/** Fonction setup() */
void setup(){

  /* Initialise le port série pour le debug */
  Serial.begin(9600);
  Serial.println("BT");
  BTserial.begin(9600);

pinMode(PIN_V, OUTPUT);
pinMode(PIN_J, OUTPUT);
pinMode(PIN_R, OUTPUT);
  /* Initialise le générateur de nombre aléatoire avec une graine aléatoire */
  randomSeed(analogRead(0));
}

/** Fonction loop() */
void loop(){
  long nombre = random(1024);
  Serial.println(nombre);
  
  
  /* Génére un nombre aléatoire entre 0 et 1023 et l'affiche sur le port série */

  if (nombre >= 1024) {
    digitalWrite(PIN_R, HIGH);
    delay(1000);
  }
  if (nombre < 0 ) {
    digitalWrite(PIN_V, HIGH);
    delay(1000);
  }
  if ("Gagné") {
    digitalWrite(PIN_J, HIGH);
    delay(5000);
  }
}

Moi, non plus je ne sais pas ce qui ne va pas, puisque tu nous ne l'a pas dit.
Peut être que si tu nous dit ce que tu attends de ton programme et le comportement réel de celui-ci, ou pourrait t'aider?
Je suppose que aucune LED ne s'allume?

quels sont les valeurs possible de ta variable nombre.
Dans quel cas tu entrera dans le if (nombre >= 1024) pour que ta LED PIN_R s'allume.
De même pour (nombre < 0 )

Quand pense tu que la LED PIN_J va s'allumer et pourquoi?

Voilà aucune LED ne s'allument pas.
if (nombre >= 1024) pour que ma LED PIN_R s'allume c'est en faite quand le nombre est trop grand et (nombre < 0 ) quand le nombre est trop petit.
La LED PIN_J doit s'allumer quand le joueur a gagné car il a donné le nombre mystère.
Ce que j'attends de mon programme c'est que les LED vert puisse s'allumer quand le nombre est trop petit , le rouge trop grand et le jaune quand je rencontre le nombre mystère.

Bonjour,

Dans ton programme il n'y a aucune entrée d'un nombre par le joueur.

votre commentaire dit

comment voulez vous donc avoir plus de 1024 ou un nombre négatif ??? :man_shrugging: :woozy_face:

Je suppose que tu veux dire que aucune LED s'allume?

@J-M-L t'a donnée la réponse, mais si tu répond au question que je t'avais posés, tu peux le faire par toi même :slight_smile:

quels sont les valeurs possible de ta variable nombre.
Dans quel cas tu entrera dans le if (nombre >= 1024) pour que ta LED PIN_R s'allume.
De même pour (nombre < 0 )

Quand pense tu que la LED PIN_J va s'allumer et pourquoi?

#include <SoftwareSerial.h>
#define PIN_V 7
#define PIN_J 6
#define PIN_R 5
int nombre;
int mystere = 100 ;
SoftwareSerial Bluetooth(0, 1); // (TX,RX)

/** Fonction setup() */
void setup(){

  /* Initialise le port série pour le debug */
  Serial.begin(9600);
  Serial.println("BT");
  Bluetooth.begin(9600);

  pinMode(PIN_V, OUTPUT);
  pinMode(PIN_J, OUTPUT);
  pinMode(PIN_R, OUTPUT);

  digitalWrite(PIN_V, HIGH);
  digitalWrite(PIN_J, HIGH);
  digitalWrite(PIN_R, HIGH);
  /* Initialise le générateur de nombre aléatoire avec une graine aléatoire */
  randomSeed(analogRead(0));
}

/** Fonction loop() */
void loop(){
  
  long nombre = random(1024);
  mystere = 100;
  Serial.println(nombre);
  nombre=Bluetooth.read();
  
  /* Génére un nombre aléatoire entre 0 et 1023 et l'affiche sur le port série */
 void Attente ();
  if ("no nombre") {
    digitalWrite(PIN_J, HIGH);
  }
 void TropGrand();
  if (nombre > mystere) {
    digitalWrite(PIN_R, HIGH);
    delay(1000);
  }
 void  TropPetit();
  if (nombre < mystere ) {
    digitalWrite(PIN_V, HIGH);
    delay(1000);
  }
 void Gagne();
  if (nombre == mystere) {
    digitalWrite(PIN_J, HIGH);
    delay(5000);
  }
}

j'ai rectifier mais au niveau de mon Bluetooth terminal au lieu que je saisisse des nombres, ceux-ci apparaissent directement et continuellement.

C’est quoi votre arduino?

Ça compile votre code? Pourquoi des fonctions sont définies dans la loop ?

Je comprend pas vraiment votre question.
Bah je reçois directement des nombres entre 0 et 1023 sans le saisir car les leds s’allumaient directement.
Ensuite J’ai changé comment j’avais branchés mes résistances, les leds ne s’allumaient pas directement et puis j’envoie des nombres mais sans réponse.
Pour ce que j’ai défini au niveau du loop, je vais le mettre au-dessus de void setup.