eclairage aleatoire par led de plusieures pieces d'une maison pour modelisme ferroviaire
Répondre à la discussion
Page 1 sur 2 1 DernièreDernière
Affichage des résultats 1 à 30 sur 45

eclairage aleatoire par led de plusieures pieces d'une maison pour modelisme ferroviaire



  1. #1
    chouchou76250

    Lightbulb eclairage aleatoire par led de plusieures pieces d'une maison pour modelisme ferroviaire


    ------

    bonjour a tous

    je suis nouveau sur le forum Futura
    je suis en train de concevoir un eclairage realiste de plusieurs pieces d'une maison pour le modelisme ferroviaire. Les montages a base de 4017.... ne me covienne pas et j'essaye avec un microcontroleur PIC. Mon soucis ai de faire la partie de soft pour créer un allumage de 12 led aleatoirement (une led a la fois changant d'etat) avec des temps d'allumage et extinction totalement different (entre 1 s a 2mn pour etre realiste). Je sais faire de la programation simple (alumage extinction sur 2 ports d'un pic)mais cette partie me pose probleme :comment ecrire cela ne C
    merci d'avance
    chouchou76250

    -----

  2. #2
    alainav1

    Re : eclairage aleatoire par led de plusieures pieces d'une maison pour modelisme feroviare

    bonjour,
    que possedes tu comme programmateur ?
    tu ecris
    Je sais faire de la programation simple (alumage extinction sur 2 ports d'un pic)
    avec quel logiciel as tu ecris ce programme ?
    cordialement
    Alain
    Décider de faire, c'est bien . Décider quand, c'est mieux !

  3. #3
    vincent66

    Re : eclairage aleatoire par led de plusieures pieces d'une maison pour modelisme feroviare

    Bonjour chouchou et bienvenue !
    Avec Alain vous êtes en de bonnes mains, c'est un pro du modélisme ferroviaire ...
    Vous allez rire : les débuts des calculateurs électroniques avaient pour but de justement supprimer la composante aléatoire des tirs d'artillerie de marine et de DCA...
    Générer des nombres réellement aléatoires est quasi impossible avec un microcalculateur actuel mais il existe des algorithmes de génération de nombres dits pseudo-aléatoires assez simples ...
    Cette fonction est-elle disponible avec le compilateur C que vous utilisez ? Je l'ignore ...
    Un meilleur connaisseur du C passera probablement par là et saura éclairer votre lanterne (aléatoirement ha ha ha) ...
    Vincent
    Leonardo était ingénieur "sans papier", et moi diplômé juste...technicien...

  4. #4
    chouchou76250

    Re : eclairage aleatoire par led de plusieures pieces d'une maison pour modelisme feroviare

    Salut Alainav1

    J' ai l'environnement Mplab X ide avec le complilateur XC8 (version free) et j'utilise le programmateur/ debugger in circuit Pickit3 que j'ai occasionellement par l'intermediaire d'un ancien collegue ,mais je l'ai commander et je le recevrai debut d'année
    comme je le disait, je n'ai pas trop de soucis pour allumer eteindre des leds (par exemple faire un chenillard) ,mais la partie du soft pour créer un mot aleatoire pour choisir la piece a allumer ou a eteindre sans changer l'etat des autres et cela avec une durée d'allumage aleatoire. Je ne sais pas par quoi commencer!et comment structurer cette partie. on m'a conseiller d'utiliser un tableau avec la fonction RAND, d'autre d'utiliser l'equation Xn+1= xn² +xn+1, mais cela devient du chinois (sans etre medisant vis avis des chinois)
    merci d'avance

  5. A voir en vidéo sur Futura
  6. #5
    alainav1

    Re : eclairage aleatoire par led de plusieures pieces d'une maison pour modelisme feroviare

    bonjour,
    j'ai fait un peu le même sujet
    un eclairage aléatoire pour simuler un soudage à l'arc
    http://www.youtube.com/watch?v=iXAjmeNEchc
    j'ai imbriquer plusieurs boucles avec des tempo (de l'ordre du 1/10 secondes )differentes
    dans ton cas il suffit de faire la même chose avec une modification d'éclairage des maison
    du genre
    for j=1 to 3
    for i=1 to 5
    maison 1 allumée
    maison 2 eteinte
    ...
    maison n allumé

    attendre "un certain temps
    next i
    maison 1 aletteinte
    maison 2 allumée
    ..
    attendre "un autre certain temps ..
    next j
    avec quelques boucles ça paraitra aléatoire (sachant qu'un observateur ne va pas rester 3h devant ton reseau)
    bon amusement
    Alain
    Décider de faire, c'est bien . Décider quand, c'est mieux !

  7. #6
    chouchou76250

    Re : eclairage aleatoire par led de plusieures pieces d'une maison pour modelisme feroviare

    merci vincent

    En effet on demande a l'informatique d'etre de plus en plus rigoureuse et je lui demande de faire des taches aleatoires. dans quelle epoque vivons nous!!!!!
    comme je l'ai dit a Alain j'ai l'environement Mplab X IDE avec le compilateur XC8 free
    a une prochaine aleatoire

  8. #7
    chouchou76250

    Re : eclairage aleatoire par led de plusieures pieces d'une maison pour modelisme feroviare

    Alain

    merci de ta reponse, mais j'ai deja pense plus ou moin a la meme chose, mais cela est tout a fait aceptable pour une maison isolée mais en utilisant le meme soft pour plusieures maisons cote a cote (style maison de ville identique) on risque d'avoir les memes pieces eclairées de la meme facon. je pourrait changer aussi le cablage de telle facon que la led 1 par exemple n'eclair pas la meme piece. Mais je n'ai qu'une commande d'eclairage pour toutes les maisons, il me faut donc un systeme qui genere un code aleatoire et mis en memoire de tel facon qu'a la prochaine mise sous tension des maisons, l'aspect visuel reste different d'une maison a l'autre. Mon affaire n'ai pas si evidente que cela!!!!!!

    a bientot
    christophe

  9. #8
    alainav1

    Re : eclairage aleatoire par led de plusieures pieces d'une maison pour modelisme feroviare

    je ne comprend pas bien ?
    tu n'as qu'une seul commande pour toute les maisons ?
    tu souhaites que l'allumge soit different en temps à chaque allumage ?
    si c'est le cas tu peux mettre en memoire (dans le pic ) un temps different à chaque allumage .
    un petit schemas nous aiderait surement <;
    cordialement
    Alain
    Décider de faire, c'est bien . Décider quand, c'est mieux !

  10. #9
    mag1

    Re : eclairage aleatoire par led de plusieures pieces d'une maison pour modelisme feroviare

    Bonjour,


    Tu rentres ce programme dans "Picaxe Programming Editor'
    Et tu regardes les sorties s'allumer et d'étendre.
    Ici, les tempo sont un peu courtes mais on fait ce qu'on veut.

    Code:
    #picaxe 20M2
    
    Do
    
    random W0
    b0=b0//16
    w1= b1//20*100
    
    select case b0
    
    case 0
    
    pause w1 
    toggle C.0
    
    case 1
    pause w1
    toggle C.1
     
    case 2
    pause w1
    toggle C.2
    
    case 3
    pause w1
    toggle C.3
    
    case 4
    pause w1
    toggle C.4
    
    case 5
    pause w1
    toggle C.5
    
    case 6
    pause w1
    toggle C.7
    
    case 7
    pause w1
    toggle C.7
    
    case 8
    pause w1
    toggle B.1
    
    case 9
    pause w1
    toggle B.2
    
    case 10
    pause w1
    toggle B.3
    
    case 11
    pause w1
    toggle B.4
    case 12  
    
    pause w1
    toggle B.5
    
    case 13
    pause w1
    toggle B.6
    
    case 14
    pause w1
    toggle B.7
    
    end select
    
    loop


    MM
    Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...

  11. #10
    chouchou76250

    Re : eclairage aleatoire par led de plusieures pieces d'une maison pour modelisme feroviare

    alain
    je n'ai peut etre pas ete assez precis dans mes demandes et vais essayé de l'etre

    dans le detail, j'ai une serie de 5 maisons identiques de 12 pieces environ et chaque maison aura sa carte electronique a base de pic et ces 5 maisons sont pilotées par la meme commande. Si le soft est identique dans le senario d'alumage des pieces et en temps dans chaque maison, cela ne sera pas tres realiste. A contrario si le soft est identique mais avec un mot aleatoire mis en memoire, chacune des maisons n'aura pas le meme secnario pour les led apres chaque mise sous tension. le but de tout cela est de pouvoir dupliquer ma carte electronique autant de fois que je veux tout en ayant un senario d'allumage des led tout a fait different , mais aussi de pouvoir par la suite en miniaturisant cette carte de l'adapter pour l'eclairage des compartiments de voitures lit

    a bientot
    christophe

  12. #11
    mag1

    Re : eclairage aleatoire par led de plusieures pieces d'une maison pour modelisme feroviare

    Et bien, il faut faire 5 cartes différentes. Le scénario de chaque carte est aléatoire et peut être initialisée différemment ou en variant l'ordre des ports pour chaque carte

    Un picaxe 20M2 =3,55 euros, avec une led par port, il ne faut rien d'autre (si, une R par led), la carte a la taille du picaxe

    Faire un essai avec le simulateur du picaxe PE ne coûte rien.
    http://www.picaxe.com/Software/PICAX...amming-Editor/

    MM
    Dernière modification par mag1 ; 22/12/2012 à 21h13.
    Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...

  13. #12
    chouchou76250

    Re : eclairage aleatoire par led de plusieures pieces d'une maison pour modelisme feroviare

    bonsoir mag1

    je viens de telecharger PICaxe et a tester le soft. en effet cela ressemble a ce que je souhaite juste en creant des tempos diferrente pour chaque cas en faisant une tempo aleatoire.
    est il possible d'adapter ce soft en c car j'ai tout ce qu'il me faut ppour programmer un pic et je ne connait pas les picaxe
    a bientot
    christophe

  14. #13
    Forhorse

    Re : eclairage aleatoire par led de plusieures pieces d'une maison pour modelisme feroviare

    regarde la fonction "rand" de ton compilateur (suffit de lire la notice...)
    Tout projet flou conduit à une connerie précise !

  15. #14
    Forhorse

    Re : eclairage aleatoire par led de plusieures pieces d'une maison pour modelisme feroviare

    Citation Envoyé par alainav1 Voir le message
    bonjour,
    j'ai fait un peu le même sujet
    un eclairage aléatoire pour simuler un soudage à l'arc
    http://www.youtube.com/watch?v=iXAjmeNEchc
    L'effet obtenu n'est pas mal... dommage que le matériel utilisé par le soudeur soit un chalumeau, rien a voir avec de la soudure à l'arc donc !
    Tout projet flou conduit à une connerie précise !

  16. #15
    alainav1

    Re : eclairage aleatoire par led de plusieures pieces d'une maison pour modelisme feroviare

    Bonjour,
    en plus c'est un mauvais" soudeur "car il decoupe la piece depuis 15 jours et c'est toujours pas fini !!!
    Décider de faire, c'est bien . Décider quand, c'est mieux !

  17. #16
    mag1

    Re : eclairage aleatoire par led de plusieures pieces d'une maison pour modelisme feroviare

    Bonjour,

    Désolé, je ne connais ni le C, ni l'ASM, ni les PIC, ni les AVR mais il y a des pros sur le forum.

    Dans le code fourni, la sélection des ports ET la temporisation d'allumage sont aléatoires.
    La temporisation, réglée par w1=b1//20*100 varie de 0 à 2 secondes en 20 paliers aléatoires, il faut évidemment l'augmenter. Ex:w1= b1//20*1000.
    Il se passera alors "quelque chose" dans un délai de 0 à 20 s max.

    Les picaxes sont des PIC modifiés pour rendre l'utilisation ultra simple,
    Pas de programmateur: trois fils à relier a un port série ou avec un cordon adaptateur USB- série. Cliquez sur Programme, c'est fini.
    Le langage est du simple basic, Il faut moins de 5 minutes pour le programme fourni ici.

    Pour plus d'info:
    http://electromag1.over-blog.com/

    MM
    Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...

  18. #17
    chouchou76250

    Re : eclairage aleatoire par led de plusieures pieces d'une maison pour modelisme feroviare

    merci mag 1

    mais j'ai reelement besoin de faire en C car le soft doit etre implementable dans plusieurs boitiers de pic pour des utilisations differentes
    merci a toi

    fohorse salut

    j'ai regarder dans le compilateur et il existe Rand et Srand, mais si je demande de l'aide c'est parceque je suis novice en programmation et que sortie des fonctions basic, cela devient du chinois.merci de me comprendre dans cette demarche

    abientot
    christophe

  19. #18
    Forhorse

    Re : eclairage aleatoire par led de plusieures pieces d'une maison pour modelisme feroviare

    Tu appels la fonction rand() et elle te sort un nombre pseudo-aléatoire, tu peux se servir de ce nombre pour déterminer la durée d'une tempo, la suite dans une séquence, etc...
    Je ne vois pas où est la complication par rapport à du BASIC ?
    Si tu veux qu'on écrive le programme à ta place il faut le dire, mais là tu t'y prend de la mauvaise manière.
    Tout projet flou conduit à une connerie précise !

  20. #19
    sly37

    Re : eclairage aleatoire par led de plusieures pieces d'une maison pour modelisme feroviare

    Bonjour,

    En C, une fonction Rand(); ne te donnera jamais un vrai nombre aléatoire.
    En outre tu peux t'arrangé pour avoir un paramètre d'initialisation qui soit différent pour chacune de tes cartes.

    Par exemple des temps de reset différents sur chaque carte, des timers internes décalés au réveil.
    Autre solution déjà expérimentée, parcourir la RAM de ton µC (qui change en permanence) et mettre ça en paramètre de ta routine Rand();

    Bon courage.

  21. #20
    Forhorse

    Re : eclairage aleatoire par led de plusieures pieces d'une maison pour modelisme feroviare

    solution un peu sale, mais tu peux aussi laisser une pattes analogique en l'air, éventuellement avec un bout de piste pour faire antenne et mesurer le bruit qu'il y a dessus... difficile de faire plus aléatoire.
    Un peu moins sale, mettre un potentiomètre sur l'entrée analogique en question, et se servir de la valeur mesuré pour initialiser le générateur de nombre aléatoire (srand) quasi impossible que chaque carte ai la même valeur sans que ce ne soit volontaire.
    Dernière modification par Forhorse ; 23/12/2012 à 16h23.
    Tout projet flou conduit à une connerie précise !

  22. #21
    mag1

    Re : eclairage aleatoire par led de plusieures pieces d'une maison pour modelisme feroviare

    Oui, OK, mais dans le cas présent, aléatoire ou pseudo aléatoire n'a aucune importance, il y a plein de façons de palier le problème.

    La commande est commune mais:
    On peut initialiser le rand différemment sur chaque carte.
    Ou ajouter une pause différente en début de programme pour désynchroniser les cartes.
    Ou modifier l'ordre des leds si les maquettes sont identiques.
    OU modifier les tempos sur chaque carte.

    Et personne n'y verra rien

    Le vrai problème est que loulou veut programmer en C et qu'il ne sait pas le faire.

    MM
    Dernière modification par mag1 ; 23/12/2012 à 16h45.
    Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...

  23. #22
    invite2313209787891133
    Invité

    Re : eclairage aleatoire par led de plusieures pieces d'une maison pour modelisme feroviare

    Bonjour

    Il y a eu une demande très similaire il y a peu de temps, j'ai conseillé au demandeur (qui ne connaissait pas le C) de s'orienter vers une programmation en Basic sur Duinomite.
    Son projet est développé ici à partir de ce message : http://forum.hardware.fr/hfr/Hardwar...2.htm#t8547086

  24. #23
    Forhorse

    Re : eclairage aleatoire par led de plusieures pieces d'une maison pour modelisme feroviare

    Il existe aussi des compilateurs BASIC pour PIC (je crois que Amicus est gratuit) mais bon, apprendre les base du C c'est pas un gros problème, on me ferra pas croire que si on sait programmer en BASIC on ne peut pas apprendre à la faire en C
    Tout projet flou conduit à une connerie précise !

  25. #24
    chouchou76250

    Re : eclairage aleatoire par led de plusieures pieces d'une maison pour modelisme feroviare

    resalut atous

    Pour repondre a Fohorse je parlais de fonctions basique (et non basic, desole pour la faute) et non je ne demande pas a ce qu l'on m'ecrive le programme , je ne suis pas de ce genre mais parfois quand on demande de l'aide, un bout de soft ecrit par exemple peut faire Tilt dans la tete des gens. Je suis un ancien tech en electronique qui a decroche il a plus de 20 ans a l'age de 25ans pour faire bien autre chose et a cette epoque les PIC faisaient leur apparition. tout comme les EPLD sur lesquelles j'ai un tout petit peu programmé.
    J'ai le programateur pour pic (doit reelemement le recevoir cette semaine qui arrive) j'ia le compilateur C pour PIC donc je compte resté dans cet environnement et j'ai quelques bases en C (mais tres lointaines voir ci dessus)

    Ta proposition Foorhose pour le Potard n'ai pas inintereesante du fait qu'a la place du potard un pont diviseur avec 2 resistances dont la valeur de une des 2 evoluepourrait faire que le mot aleatoire soit different a chaque mise sous tension. mais comment ecrire cela je n'arrive pas a structurer cela. on m'a toujours dit que structurer les actions avant d'ecrire represente plus de la moitier du travail mais comment structurer cela quand on a un esprit qui a ete forger a base de logique cablée que de programation.......

    a bientot
    christophe

  26. #25
    Forhorse

    Re : eclairage aleatoire par led de plusieures pieces d'une maison pour modelisme feroviare

    Faudrait peut être un peu se sortir les doigts... et essayer, et au passage nous montrer ce que tu as fais et sur quoi tu bloques. Parce que pleurnicher avec des discours genre "je sais pas, j'y arrive pas, je comprend pas..." ça fait plus le type qui n'a pas envie de se fatiguer et qui préfère attendre qu'on lui fasse tout.
    Alors commence déjà par le commencement : schéma du montage ?
    Ensuite logigramme / organigramme / cequetuveuxgramme qui explique l’algorithme de la fonction à réaliser. ça ne demande aucune compétence ni connaissance en programmation, juste besoin de réfléchir.
    Une fois ça fait on pourra commencer à essayer de traduire ça en programme.
    Tout projet flou conduit à une connerie précise !

  27. #26
    chouchou76250

    Re : eclairage aleatoire par led de plusieures pieces d'une maison pour modelisme feroviare

    Bonjour a tous
    Pour repondre a ceux qui on un doute voila ce que j'ai essayer de faire hier apres midi pendant qu'ils essayait de monter la mayonnaise!!!

    J'ai un reel besoin d'aide car la fonction Time n'existe pas dans le compilateur c XC8 comme dans d'autre . L'idée de Forhorse pour la mesure d'une tension a partir d'un pont diviseur (different sur chaque cartes)sur l'entrée analogique d'un port du pic est bonne mais je ne sais pas lire le port analogique du pic et le traduire en 1 mot qui deviendrai a la mise sous tension mon nombre aleatoire. De plus il faudrai que je mette en memoire la valeur du PortA et B avant mise hors tension pour pouvoir recuperer l'etat logique de ces 2 ports a une prochaine mise sous tension pour que les led aillent un etat different de portB= 0b00000000 et portA= 0B0000.
    Apres avoir resolu ce probleme il faudra que je change ma tempo "pause_1" pour qu'elle aussi devienne aleatoire en temps (entre 1s et 2 a 3 mn pour rester realiste).

    a bientot
    christophe
    /*
    * File: ecl12pieces.c
    * Author: christophe
    *
    * Created on 23 décembre 2012, 16:07
    */

    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    #include <pic.h>

    /*
    *
    */

    #define PORTBIT(adr, bit) ((unsigned)(&adr)*8+(bit))

    static bit LED0 @ PORTBIT(PORTB, 0);
    static bit LED1 @ PORTBIT(PORTB, 1);
    static bit LED2 @ PORTBIT(PORTB, 2);
    static bit LED3 @ PORTBIT(PORTB, 3);
    static bit LED4 @ PORTBIT(PORTB, 4);
    static bit LED5 @ PORTBIT(PORTB, 5);
    static bit LED6 @ PORTBIT(PORTB, 6);
    static bit LED7 @ PORTBIT(PORTB, 7);
    static bit LED8 @ PORTBIT(PORTA, 0);
    static bit LED9 @ PORTBIT(PORTA, 1);
    static bit LED10 @ PORTBIT(PORTA, 2);
    static bit LED11 @ PORTBIT(PORTA, 3);
    static bit LEDcouloir@ PORTBIT(PORTA, 4);


    int i; //Pour la boucle de pause
    int NA = 0; //nonbre aleatoire correspondant a une led

    //pause functions

    void pause_1();

    //main function
    void main(void)
    {
    TRISA = 0b11000000; //bit0 a 5 en sortie, bit 6 et 7 en entrée
    PORTA = 0b00000000;
    TRISB = 0b00000000; //bit0 a 7 en sortie
    PORTB = 0b00000000;




    srand(time(NULL)); // initialisation de rand
    NA = (rand()%12);

    switch(NA)
    {
    case 0: LED0 = !LED0;
    pause_1();
    break;
    case 1: LED1 = !LED1;
    pause_1();
    break;
    case 2: LED2 = !LED2;
    pause_1();
    break;
    case 3: LED3 = !LED3;
    pause_1();
    break;
    case 4: LED4 = !LED4;
    pause_1();
    break;
    case 5: LED5 = !LED5;
    pause_1();
    break;
    case 6: LED6 = !LED6;
    pause_1();
    break;
    case 7: LED7 = !LED7;
    pause_1();
    break;
    case 8: LED8 = !LED8;
    pause_1();
    break;
    case 9: LED9 = !LED9;
    pause_1();
    break;
    case 10: LED10 = !LED10;
    pause_1();
    break;
    case 11: LED11 = !LED11;
    pause_1();
    break;
    }
    }
    void pause_1()
    {

    for(i=0; i<4000; i++);
    for(i=0; i<4000; i++);
    for(i=0; i<4000; i++);
    for(i=0; i<4000; i++);
    for(i=0; i<4000; i++);
    for(i=0; i<4000; i++);

    };

  28. #27
    alainav1

    Re : eclairage aleatoire par led de plusieures pieces d'une maison pour modelisme feroviare

    Bonjour,
    "mise en memoire la valeur du PortA et B"
    le pic possede une eeprom à mon avis c'est fait pour ça
    cordialement
    Alain
    Décider de faire, c'est bien . Décider quand, c'est mieux !

  29. #28
    Forhorse

    Re : eclairage aleatoire par led de plusieures pieces d'une maison pour modelisme feroviare

    Plutôt que
    Code:
    srand(time(NULL)); // initialisation de rand
    qui ne doit pas correspondre a grand chose, moi je supprimerais carrement l'appel de la fonction "srand" et j'observerais déjà ce qui se passe.
    Ensuite, si on a vraiment besoin d'initialiser le générateur de nombre aléatoire, on peut faire (comme l'a déjà suggérée quelqu'un avant moi) lire un emplacement "vide" de la ram, qui à la mise sous tension contient théoriquement déjà une valeur aléatoire.
    Pour faire ça simplement, il suffit de déclarer une variable que tu n'initialise nulle part, tu te contente de la déclarer et de la lire point.

    Je ne connais pas le C mais ça dois donner quelque chose du genre
    Code:
    int nbrealeatoire;
    srand(nbrealeatoire);
    Et si on veut encore améliorer, il suffit de déclarer un certain nombre de variables suivant le même principe et de les additionner ensemble.
    Tout projet flou conduit à une connerie précise !

  30. #29
    Forhorse

    Re : eclairage aleatoire par led de plusieures pieces d'une maison pour modelisme ferroviaire

    Autre chose, ta routine de tempo là
    Code:
    void pause_1()
    {
    
    for(i=0; i<4000; i++);
    for(i=0; i<4000; i++);
    for(i=0; i<4000; i++);
    for(i=0; i<4000; i++);
    for(i=0; i<4000; i++);
    for(i=0; i<4000; i++);
    
    };
    C'est vraiment moche ! Je passe sur le fait que je n'aime pas du tout les fonctions de temporisation de ce genre qui monopolisent du temps de calcul pour rien alors que les interruptions sont justement faites pour ça. Mais si ce n'est pas gênant pour ton application pas besoin de se prendre la tête.

    Donc déjà plutôt que de faire 6 fois à la suite la même boucle, tu peux faire 2 boucles l'une dans l'autre


    Code:
    int i; //Pour la 1er boucle de pause
    int j; //Pour la 2eme boucle de pause
    
    void pause_1()
    {
    for(j=0;j<6;j++){
    for(i=0; i<4000; i++);
    };
    
    };
    Et là du coup il est encore plus simple de rentre la durée de cette tempo aléatoire.

    Code:
    int i; //Pour la 1er boucle de pause
    int j; //Pour la 2eme boucle de pause
    int NA;
    void pause_1()
    {
    NA = (rand()%60); //génération du nombre de boucle à faire (par exemple entre 0 et 60)
    
    for(j=0;j<NA;j++){ // on va compter entre 0 et 60 fois 4000 fois, la durée de la tempo sera donc aléatoire
    for(i=0; i<4000; i++);
    };
    
    };
    Bon j'y connais encore rien en C mais dans l'idée c'est ça.
    Tout projet flou conduit à une connerie précise !

  31. #30
    chouchou76250

    Re : eclairage aleatoire par led de plusieures pieces d'une maison pour modelisme ferroviaire

    reasalut a tous

    Merci ForHorse, Alainav1
    ci joint quelques modifs au programme et je but sur le fait de lire dans La ram pour extraire un mot aleatoire ecrit en ram a la mise sous tension (bank0, 0h20)(lignes en rouge).Quel fonction dois je utiliser pour lire dans cette memoire j'ai parcouru la doc du complilateur XC8 pour Pic mais rien trouver ou si il y a je suis aveugle!!! read_bank n'existe pas

    Pour les valeurs des tempos je les ajusterais pour quelles soit les plus realistes possibles

    Bonne fetes a tous
    christophe
    *
    * File: ecl_12_pieces.c
    * Author: christophe
    *
    * Created on 24 décembre 2012, 16:177
    */

    #include <stdio.h>
    #include <stdlib.h>
    #include <pic.h>

    /*
    *
    */

    #define PORTBIT(adr, bit) ((unsigned)(&adr)*8+(bit))

    static bit LED0 @ PORTBIT(PORTB, 0);
    static bit LED1 @ PORTBIT(PORTB, 1);
    static bit LED2 @ PORTBIT(PORTB, 2);
    static bit LED3 @ PORTBIT(PORTB, 3);
    static bit LED4 @ PORTBIT(PORTB, 4);
    static bit LED5 @ PORTBIT(PORTB, 5);
    static bit LED6 @ PORTBIT(PORTB, 6);
    static bit LED7 @ PORTBIT(PORTB, 7);
    static bit LED8 @ PORTBIT(PORTA, 0);
    static bit LED9 @ PORTBIT(PORTA, 1);
    static bit LED10 @ PORTBIT(PORTA, 2);
    static bit LED11 @ PORTBIT(PORTA, 3);
    static bit couloir @ PORTBIT(PORTA, 4);


    unsigned int i; //Pour la boucle de pause
    unsigned int j; //Pour la 2eme boucle de pause

    unsigned int NA = 0; //nonbre aleatoire correspondant a une led
    unsigned int NA2 = 0; //nonbre aleatoire correspondant a tempo aleatoire

    int NARAM; //nombre aleatoire lu en RAM


    //pause functions
    void pause_1();

    //main function
    void main(void)
    {
    TRISA = 0b11000000; //bit0 a 5 en sortie, bit 6 et 7 en entrée
    TRISB = 0b00000000; //bit0 a 7 en sortie

    PORTB = 0b00000000;
    PORTA = 0b00000000;


    NARAM = read_bank(0,0h20)
    srand(NARAM); // initialisation de rand
    NA = (rand()%12);

    switch(NA)
    {
    case 0: LED0 = !LED0;
    pause_1();
    break;
    case 1: LED1 = !LED1;
    pause_1();
    break;
    case 2: LED2 = !LED2;
    pause_1();
    break;
    case 3: LED3 = !LED3;
    pause_1();
    break;
    case 4: LED4 = !LED4;
    pause_1();
    break;
    case 5: LED5 = !LED5;
    pause_1();
    break;
    case 6: LED6 = !LED6;
    pause_1();
    break;
    case 7: LED7 = !LED7;
    pause_1();
    break;
    case 8: LED8 = !LED8;
    pause_1();
    break;
    case 9: LED9 = !LED9;
    pause_1();
    break;
    case 10: LED10 = !LED10;
    pause_1();
    break;
    case 11: LED11 = !LED11;
    pause_1();
    break;
    }
    }
    void pause_1()
    {
    NA2 = (rand()%60); //génération du nombre de boucle à faire (par exemple entre 0 et 60)

    for(j=0;j<NA2;j++); // compte entre 0 et 60 fois durée de la tempo 1
    for(i=0; i<4000; i++); // compte 4000 fois tempo 2 a ajuster par la suite
    };

Page 1 sur 2 1 DernièreDernière

Discussions similaires

  1. Réponses: 20
    Dernier message: 24/03/2012, 18h01
  2. Detecteur de courant pour modélisme ferroviaire DCC
    Par invite0b03454f dans le forum Électronique
    Réponses: 25
    Dernier message: 30/12/2011, 14h23
  3. alimentation pour reseau ferroviaire modelisme
    Par invite63a68407 dans le forum Électronique
    Réponses: 10
    Dernier message: 27/11/2008, 08h00
  4. Circuit de commande pour alimentation (Modelisme ferroviaire)
    Par invitee354b208 dans le forum Électronique
    Réponses: 15
    Dernier message: 05/01/2008, 13h15
Découvrez nos comparatifs produits sur l'informatique et les technologies.