Débutant en électronique - effet "chenillard" avec des LEDs
Répondre à la discussion
Affichage des résultats 1 à 13 sur 13

Débutant en électronique - effet "chenillard" avec des LEDs



  1. #1
    invite97ba3556

    Débutant en électronique - effet "chenillard" avec des LEDs


    ------

    Bonjour,

    Je fais de "l'informatique industrielle" / électronique depuis cette année et j'ai quelques difficultés de compréhension concernant la programmation sur PIC.

    J'utilise MPLab et je programme donc en langage C avec le PIC16F876.

    Voici l'énoncé de l'exercice :

    Nom : Capture d’écran 2012-11-28 à 11.52.50.png
Affichages : 722
Taille : 44,8 Ko

    Alors, je ne demande pas à ce qu'on me résolve l'exercice, je sais de toute façon que c'est très mal vu et ça n'est pas ce que je recherche. Je cherche surtout à comprendre comment procéder pour gérer un tel affichage.

    Je sais par exemple que pour allumer une LED RB0, je dois d'abord configurer "TRISB", ça je sais faire ; je sais aussi que pour allumer une LED en RB0, je dois faire "RB0 = 1". Mais je crois comprendre d'après le schéma qu'il y a plusieurs LEDs en RB0 (une LED équivaut à un chiffre (0 => LED éteinte, 1 => LED allumée), je ne comprends pas comment je peux accéder à plus d'une LED sur RB0 (par exemple). Sachant que pour moi une LED = RBX (où X est un chiffre de 0 à 3 sur le schéma).

    Bref, je ne sais pas si vous avez compris pour mon problème, mais si oui, je souhaiterais que vous m'aidiez un peu pour avancer là-dessus.

    Merci d'avance.

    -----

  2. #2
    invitea613d208

    Re : Débutant en électronique - effet "chenillard" avec des LEDs

    Je ne vois pas ton schéma, mais c'est certain tu dois utiliser les "matrices de LED"

  3. #3
    invite97ba3556

    Re : Débutant en électronique - effet "chenillard" avec des LEDs

    Bonjour,

    Merci pour l'information et désolé pour le temps que je mets à répondre, mais je ne trouve pas grand chose sur la programmation de matrices de LED en C.

    Quant au schéma, pour le voir, cliquez ici.

  4. #4
    indri

    Re : Débutant en électronique - effet "chenillard" avec des LEDs

    Pas besoin de matrice pour 4 leds!

    Sinon un ptit algo vite fait:

    PortB=1
    while (1)
    {
    si bp1 alors PORTB*2
    sinon si bp2 alors portb/2
    }

    Faut rajouter à ca des conditions pour pas dépasser les 4 premiers bits et ne pas passer en dessous de 0. Plutot que de faire /2 ou *2 tu peux faire des décalages (<< ou >>)!
    Faut aussi rajouter un anti-rebond..

    edit: a ben non c'est pas 0001,0010,0100,... donc *2 et /2 ca ne va pas donc faut passer par décalage!
    Dernière modification par indri ; 05/12/2012 à 10h07.
    Là où va le vent...

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

    Re : Débutant en électronique - effet "chenillard" avec des LEDs

    Merci pour ta réponse rapide . Mais je ne comprends pas à quoi correspondent les "bp" dont tu parles et ce qu'est un anti-rebond. Peux-tu m'expliquer ?

  7. #6
    indri

    Re : Débutant en électronique - effet "chenillard" avec des LEDs

    bp=bouton poussoir...j'avais compris que c'est en appuyant sur le bp que tu fais le décalage...maintenant c'est peut-être avec une clock alors là forcement c'est plus le même!
    Si c'est bien avec un bp...tu utilisera (je suppose) une interruption pour détecter un appui..mais un bp c'est une saloperie qui t'envoi plein d'impulsion (les rebonds) il faut donc faire quelque chose pour éviter ces rebonds (typiquement une petite tempo) qui seront compris par ton code comme un appui normal
    Là où va le vent...

  8. #7
    invite97ba3556

    Re : Débutant en électronique - effet "chenillard" avec des LEDs

    En effet, dès le démarrage du programme, le défilement lumineux est présent. Lorsque l'utilisateur appuie sur le bouton poussoir S2 relié à la broche RA4 du port A, ce défilement lumineux s'arrête. Et il faut en effet mettre en place une temporisation avec le timer0.

    Mais je voulais faire l'exercice petit à petit. D'abord en réalisant cette "pyramide" de led sans temporisation et sans m'occuper du bouton poussoir. En fait, j'ai compris le fonctionnement du timer0, mais ici, c'est vraiment la base de la base que je n'ai pas compris.

    Je ne vois vraiment pas comment réaliser (même de la manière la plus simple qu'il soit possible) ce qui est décrit dans l'énoncé que j'ai mis dans mon premier post. Je suis vraiment perdu à ce niveau et j'ai essayé plein de choses un peu au hasard dans MPLab, comme ça par exemple :

    Code:
    void main()
    {
        TRISB = 1;
    
        while(1)
        {
            RB0 = 0b0001000;
            RB1 = 0b0011100;
            RB2 = 0b0111110;
            RB3 = 0b1111111;
        }
    }
    Sachant que "RB3 = 0b1111111;" par exemple, représente la ligne RB3 de mon premier post...

    Mais je dois être complètement à coté de la plaque... Autant la programmation web, la programmation logicielle, que ce soit le C, C++ ou Java, je gère pas mal, autant là, je suis bien paumé :/ .

  9. #8
    indri

    Re : Débutant en électronique - effet "chenillard" avec des LEDs

    Ah non ca va pas ca...bon je maitrise pas le C "pic" mais d'après ce que j'ai compris RB0 c'est un seul bit du port B.

    Tu pourrais mettre ca à la limite:

    while (1)
    {
    Portb=1;
    tempo;
    Portb=11;
    tempo;
    Portb=111;
    ...
    }

    Mais y'a moyen de faire ca en algo!
    Là où va le vent...

  10. #9
    invite97ba3556

    Re : Débutant en électronique - effet "chenillard" avec des LEDs

    D'accord, merci encore pour les infos .

    Donc si je fais comme ça, est-ce que tu penses que ça peut être bon ?

    Code:
    void main()
    {
        PORTB = 1;
        TRISB = 0;
    
        while(1)
        {
            PORTB = 0b0001000;
            tempo;
            PORTB = 0b0011100;
            tempo;
            PORTB = 0b0111110;
            tempo;
            PORTB = 0b1111111;
            tempo;
        }
    }

  11. #10
    indri

    Re : Débutant en électronique - effet "chenillard" avec des LEDs

    Non!!!!

    T'as l'esprit tordu ^^
    Au temps T1: led sur R3 on! R3 est le bit 3 du port B donc PORTB=0b00001000;
    T2: led sur R3 et R2 sont on. R2 est sur le bit 2 donc PORTB=0b00001100;
    T3: Portb=0b00001110;
    0b00001111
    0b00001110

    et ainsi de suite

    Tu n'as que 4 leds donc que 4 bits à mettre à 0 ou 1
    Toi tu prends le tableau dans l'autre sens!
    Là où va le vent...

  12. #11
    invite97ba3556

    Re : Débutant en électronique - effet "chenillard" avec des LEDs

    D'accord, effectivement, je dois avoir l'esprit tordu ^^' .

    Du coup, pour représenter le tableau de mon premier post, ce serait donc quelque chose comme ça (enfin, j'imagine que c'est pas uniquement ça qu'il faut faire pour représenter le tableau).

    Code:
    void main()
    {
        PORTB = 1;
        TRISB = 0;
    
        while(1)
        {
            PORTB = 0b00001111;
            tempo;
            PORTB = 0b00000111;
            tempo;
            PORTB = 0b00000011;
            tempo;
            PORTB = 0b00000001;
            tempo;
        }
    }
    Vais-je donc y arriver...

  13. #12
    indri

    Re : Débutant en électronique - effet "chenillard" avec des LEDs

    Ca c'est l'allé...
    Manque le retour!

    Ma ca reste une manière basique de faire! Imagine tu aurais 200 leds à allumer!
    Donc pensez à un petit algorithme qui te fait ca!

    Et adapter au pic! (parce que tempo; il ne connait pas ^^)
    Là où va le vent...

  14. #13
    invite97ba3556

    Re : Débutant en électronique - effet "chenillard" avec des LEDs

    Parfait, je vois donc comment faire maintenant !

    Pareil pour l'algo, ça devrait pas être trop compliqué. Vraiment ce qui me manquait, c'était la manière de représenter le tableau mais maintenant que je sais comment faire, ça va être bien plus simple à réaliser.

    En tout cas, merci beaucoup pour tes explications qui m'ont bien aidées !

Discussions similaires

  1. Réponses: 65
    Dernier message: 18/06/2012, 00h41
  2. [Blanc] LL Brandt BB60 : LEDs " sans " et " 400 " clignotent !
    Par invite6cc50ef4 dans le forum Dépannage
    Réponses: 42
    Dernier message: 26/04/2010, 15h09
  3. A propos des leds RGB "256 couleurs"... comment les utiliser ?
    Par invite79e9d54e dans le forum Électronique
    Réponses: 19
    Dernier message: 06/07/2009, 16h35
  4. chenillard 3 led avec passage en "douceur"
    Par invitead025022 dans le forum Électronique
    Réponses: 2
    Dernier message: 11/05/2008, 17h44
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...