charlieplexing

MGU

Senior Member
Bonjour,

J'essaye, par curiosité, d'allumer 12 diodes individuellement avec un 08M2, avec ce schéma:
24097

En alimentant directement en 5V chaque paire de C.x, on allume bien les 12 leds individuellement
Je pensais donc qu'il suffisait de déclarer successivement chaque paire en sortie et les autres broches en entrées (haute impédance) pour reproduire ces alimentations avec ce code:

Code:
;charlieplexing 12 leds
;6 combinaisons et 2 sens =>12
#picaxe 08M2
#no_data
symbol tempo=4000
    do
    ;leds 1 et 2     entre C.0 et C.1
        dirsc=%00011    
        pinsC=%00001    ;1    
        pause tempo    
        pinsC=%00010    ;2
        pause tempo    
    ;leds 3 et 4    entre C.1 et C.2
        dirsC=%00110    
        pinsC=%00010    ;3    => 2    
        pause tempo    
        pinsC=%00100    ;4    => 8
        pause tempo    
    ;leds 5 et 6    entre C.2 et C.4      
        dirsC=%10100
        pinsC=%00100    ;5    => 8
        pause tempo    
        pinsC=%10000    ;6    => 12
        pause tempo    
    ;leds 7 et 8    entre C.0 et C.2
        dirsC=%00101
        pinsC=%00001    ;7
        pause tempo
        pinsC=%00100    ;8
        pause tempo    
    ;leds 9 et 10    entre C.1 et C.4
        dirsC=%10010
        pinsC=%00010    ;9    => 2
        pause tempo
        pinsC=%10000    ;10    => 12
        pause tempo    
    ;leds 11 et 12    entre C.0 et C.4
        dirsC=%10001
        pinsC=%00001    ;11
        pause tempo
        pinsC=%10000    ;12
        pause tempo    
    loop
Et bien non, les leds s'allument bien, mais la led 3 allume la 2, la 4 allume la 8, etc comme indiqué dans le code.
Je ne comprends pas pourquoi une broche déclarée en entrée peut alimenter une led...
J'ai du rater quelque chose.
Une idée?
Merci

MM
 

Buzby

Senior Member
Using Google translate ...

Sur le 08M2, la broche C.0 est émise uniquement.

Le Charlieplexing normal ne fonctionnera pas pour 12 LED.

Il existe une méthode qui utilise un signal PWM pour créer un tri-état virtuel pour C.0.

Voyez ici comment je l'ai fait: https://picaxeforum.co.uk/threads/led-ladder-game-on-instrucables-picaxe-conversion.26991/#post-278174

Le circuit est basé sur ce dessin: http://www.user.dccnet.com/wrigter/picaxe/12LEDpyramid2.gif

Bonne chance,

Buzby



Original English ...

On the 08M2 pin C.0 is output only.

Normal Charlieplexing will not work for 12 LEDs.

There is a method that uses a PWM signal make a virtual tri-state for C.0.

See here for how I did it : https://picaxeforum.co.uk/threads/led-ladder-game-on-instrucables-picaxe-conversion.26991/#post-278174

The circuit is based on this drawing : http://www.user.dccnet.com/wrigter/picaxe/12LEDpyramid2.gif

Good Luck,

Buzby
 

MGU

Senior Member
Hello Buzby,
of course, I just forgot that C.0 couldn't be an entry :confused:
Thank you for this reminder and your code
(thanks Google too)
MM
 
Last edited:
Top