Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Arduino]Nombre Aléatoire

    8 avril 2013 à 7:43:55

    Bonjours, Je travaille actuellement sur l'Arduino Mega 2560,

    J'ai besoin d'avoir des identifiants unique pour des objets (je modifie actuellement une librairie)

    J'ai mis en place la fonction random(0, 0xFFFF)

    seulement j'ai toujours les mêmes nombres

    J'ai donc essayer un nouveau programme tout simple :

    void setup()
    {
        Serial.begin(9600);
        Serial.println("Start");
    }
    void loop()
    {
        int x = Random(0, 0xFFFF);
        Serial.print("X = ");
        Serial.println(x);
        delay(1000);
    }

    Mais j'ai toujours la même suite de nombres

    Comment faire ?

    Ne me dites pas RandomSeed(), car sa ne change rien j'ai essayer RandomSeed(200), les nombres on bien changer mais toujour la même suite

    Merci

    Timiti29

    • Partager sur Facebook
    • Partager sur Twitter
    DUT Réseau & Télécommunication et Licence Professionnelle Réseau Sans-Fil et Sécurité
      8 avril 2013 à 9:35:51

      On prend la doc :

      If it is important for a sequence of values generated by random() to differ, on subsequent executions of a sketch, use randomSeed() to initialize the random number generator with a fairly random input, such as analogRead() on an unconnected pin

      Donc ma question est ; As tu essayé de faire comme ils disent, laisser une pin d'entrée analogique à l'air et faire une lecture analogique pour initialiser RandomSeed ?

      • Partager sur Facebook
      • Partager sur Twitter

      Retrouvez moi sur mon blog et ma chaine Youtube !

        8 avril 2013 à 9:51:45

        Pour tout algorithme pseudo aleatoire, tu as besoin d'une ''graine'' (seed en anglais). Pour une meme graine, l'agorythme te renvera toujours la meme suite de valeur. Pour avoir une suite differente a chaque fois, il faut que tu trouve une maniere aleatoire de generer cette graine, ex:

        - temps entre le debut du programme et l'appuie d'un bouton par l'utilisateur

        - temps entre le debut du programme et la reception de la premiere donnee par la liaison serie

        - heure actuelle (necessite l'utilisation d'une horloge temps reel ou RTC en anglais)

        - ....

        • Partager sur Facebook
        • Partager sur Twitter
          8 avril 2013 à 11:10:19

          Je reste sur l'idée de la doc : mettre une lecture analogique sur une broche à l'air (en antenne) qui va se choper des parasites et donc a priori qui sera aléatoire
          • Partager sur Facebook
          • Partager sur Twitter

          Retrouvez moi sur mon blog et ma chaine Youtube !

          [Arduino]Nombre Aléatoire

          × 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.
          • Editeur
          • Markdown