Loading ...
Sorry, an error occurred while loading the content.

Re: [SeattleRobotics] Re: Christmas Lights run-Amok - Charlieplexing

Expand Messages
  • Alan King
    ... Oh little doubt coined by someone else reading the ap note, likely without even a second thought that it may have already been fairly common knowledge..
    Message 1 of 15 , Dec 2, 2005
    • 0 Attachment
      douglas_warren_bell wrote:

      >I also learned the technique before encountering the tech note. I
      >don't think Maxim invented the technique, but they've coined a term
      >for it which is useful for talking about it, and the tech note
      >provides an on-line reference.

      Oh little doubt coined by someone else reading the ap note, likely
      without even a second thought that it may have already been fairly
      common knowledge..

      >Do you know of an on-line example of this diagonal hookup you
      >mentioned, or any other on-line description of what I've come to
      >call Charlieplexing?
      Same as at the bottom of the ap note. Arrange your elements as a grid,
      column 1 is group 1, 2 is 2, etc, and your individual elements in each
      group are row 1, 2, 3, etc. Then, the pattern the wiring follows is the
      diagonal lines through the array, like in the table they have. Common
      and the other lines rotate through the group as you advance to the next
      group. Note that you can also keep your drive wires straight, change
      where the common point for the LEDs is, and have your element grid on
      the diagonal. Not doable with a fixed item like a 7 seg display, but
      works for other things. When I run back into my board, I'll upload a
      pic or two of it, looks pretty good for hand wired.

      Also, you can get input as well as output this way. Put a diode
      inline for each switch, and use instead of an LED, of course need pull
      ups and common ground or similar, and read it in. Need the diode on
      each, or they'll short out the reverse connected LEDs. Not really worth
      it to do a whole keyboard this way, better to use a shift register etc
      and get your other 8 outputs. But, if you're doing a LED array anyway
      and only need a group or two worth of switches, it works great.

      >For an art project for dorkbot, I've constructed a 44 x 27 array of
      >7-segment LED displays, driven by 18 networked microcontrollers
      >using Charlieplexing. Each microcontroller drives a 22 x 21 array of
      >LEDs (22 x 3 displays) via 22 output pins. So far I have 1 of the 18
      >sections wired, and I've been writing code for the one
      >microcontroller to convince myself it's worth the trouble to wire up
      >the rest of it.
      LOL, constructed is right, that's a lot of 7 segs.. Maybe you should
      start designing toilet seats too,
      http://www.kiss-textil.de/galactikaen.htm needs more light.. Was
      looking for the plexiglas wall with tons of LEDs, it looks like a good
      project for the plexing..

      >For displaying digits, it was convenient to construct an array of
      >bit patterns for each digit value from 0 to F for the 8 types of
      >digit connections that occur as the diagonal wiring discontinuity
      >works its way across the 22 columns and three rows. There is also a
      >table of wiring type for each column of each row.
      1 array instead of 8, bit pattern shifted to position, bit pattern
      shifted one more, common set high or low, left of common is pattern,
      right of common is shifted one more pattern. But if you've got the
      table space, the table is just as good.. You have 8 and patterns for 8
      bits, like 00011111 for bit 4. XOR with FF to get the pattern for the
      other side, then set bit 4 for the common using your same index. Codes
      up fairly well.

      >For alphanumeric fonts using multiple displays for each character,
      >an array of bit patterns specific to each connection type would take
      >way too much ROM, so I store patterns of segments to light, and
      >calculate the bit patterns to apply to the output ports on the fly.
      >For graphics, it's all calculated on the fly, the tables are
      >application specific, not output port specific.
      >Doug Bell
    Your message has been successfully submitted and would be delivered to recipients shortly.