Best breadboard 7-segment LED driver: TLC5916 tutorial

Sdílet
Vložit
  • čas přidán 24. 07. 2024
  • Learn how to drive 7-segment displays on a breadboard with the TLC5916 driver IC. In this tutorial I will show you, step by step, why the TLC5916 is the best LED driver for breadboards with 7-segment displays and how you can use it with a microcontroller.
    More details and an up-to-date list of all components: www.friendlywire.com/tutorials...
    Thanks for tuning in, and let me know in the comments if you have any questions!
    Website: www.friendlywire.com
    Twitter: / friendlywire
    Reddit: / friendlywire
    Facebook: / friendlywire
    Instagram: / friendlywire
    Timestamps:
    00:00 Introduction
    00:30 Overview & demonstration
    01:25 What you need
    02:19 7-segment displays and how to drive LEDs
    05:16 Schematic & TLC5916 basics
    10:29 TLC5916 special mode & adjusting the LED current
    13:28 Preparing the 7-segment LED displays
    14:58 Building the circuit
    18:52 Flashing the PIC16F1455
    20:39 How NOT to do it... My life before the TLC5916.
    Tags:

Komentáře • 50

  • @FriendlyWire
    @FriendlyWire  Před 4 lety

    So will you start using the TLC5916 in your future projects? And what is your favorite 7-segment driver for breadboards? Let me know :)

  • @QEngineering
    @QEngineering Před rokem +1

    Excellent tutorial, I needed a bit of a refresher on LED drivers for a project and was really pleased to stumble on this video.
    🍻

    • @FriendlyWire
      @FriendlyWire  Před rokem

      Thanks so much, Q, I am glad you found it useful!

  • @75slaine
    @75slaine Před 4 lety +1

    Another great vid. Congrats on getting this one over the line, I know you put a lot of effort into it. Thanks

    • @FriendlyWire
      @FriendlyWire  Před 4 lety

      Thank you for your kind words, Glen! Yeah, this one took a bit longer, but I hope it is reasonably self-contained when it comes to driving LEDs and how to use the TLC5916. I look forward to using this chip in many future projects, I bought 250 of those on Ebay, they should arrive any day.

  • @namero999
    @namero999 Před 3 lety +2

    I'm only halfway in but I can already say that this is an EXCELLENT tutorial, exactly what I needed! Great job! Insta-subscribe!

    • @FriendlyWire
      @FriendlyWire  Před 3 lety

      Wow, thanks so much, I am glad you like it! :)

  • @risingmermo
    @risingmermo Před rokem +1

    I can't believe I've only found your channel now. These tutorials are seriously incredible!

    • @FriendlyWire
      @FriendlyWire  Před rokem

      Thank you so much, Guilherme, this means a lot! :)

    • @risingmermo
      @risingmermo Před rokem +1

      @@FriendlyWire and you respond to 2 year old videos!! You're serious amazing.

    • @FriendlyWire
      @FriendlyWire  Před rokem

      @@risingmermo I try to answer every comment :) Have a great weekend!

  • @xotmatrix
    @xotmatrix Před 3 lety +1

    Thanks for covering the shift-register/driver. Seems like a very useful device yet I haven't seen others mention it before.

    • @FriendlyWire
      @FriendlyWire  Před 3 lety

      Thanks, I am glad you like it! The TLC5916 is really my new favorite driver :) (I used the CD4094 shift register before, which can work sometimes, but is still a bad idea since the output current is very low and not meant to drive anything.)

  • @jerril42
    @jerril42 Před 4 lety +1

    Thanks, great demo. I like the schematics, the C solution worked well. I'm adding the chips and other stuff to my shopping list, they look like a great option for driving these displays. It looks like you could make side-by-side stackable modules using this setup.

    • @FriendlyWire
      @FriendlyWire  Před 4 lety

      Thanks! Yeah, it's always difficult to find the optimal schematic for a project, glad you like it! And it's great to hear you will be using them! I think that they are great for stackable units. Make sure to share your progress over on Twitter :)

  • @bah4dz
    @bah4dz Před 4 lety +1

    Great job !

  • @sassi7190
    @sassi7190 Před 4 lety +1

    محتواك رائع يا صديق

    • @FriendlyWire
      @FriendlyWire  Před 4 lety +1

      Thanks a lot, have a great day and stay tuned for future projects :)

    • @sassi7190
      @sassi7190 Před 4 lety +1

      @@FriendlyWire
      sure

  • @sangsang5570
    @sangsang5570 Před rokem +1

    you draw Schematic very nice
    Can you show me what the software you use?

    • @FriendlyWire
      @FriendlyWire  Před rokem

      Thank you! I am using Eagle made by Autodesk: www.autodesk.com/products/eagle/free-download

  • @SieIaQ
    @SieIaQ Před 3 lety +1

    Neat. I wonder if with this method you could do a more sophisticated scrolling? With CD4094 shift registers you have switched the whole letter/cypher, here (I suspect) you could even scroll by half of the letter like
    [ ][ H ][ E ] -> [ |][| |][ ] -> [ H ][ E ][ ]
    This would give you more smoothly scrolling effect.

    • @FriendlyWire
      @FriendlyWire  Před 3 lety

      Thanks! :) Hmm, yeah, maybe it's possible to do that. But I am not sure what the difference is to the CD4094 case?

    • @SieIaQ
      @SieIaQ Před 3 lety +1

      ​@@FriendlyWire Correct me if I'm wrong. The difference is that using CD4094 (connected in cascade mode) you were not able to change "on fly" any letter on a specific position - scrolling was done by hardware. With TLC591 you can control each segment separately, and make scrolling in software - which is needed if you want to make a "smooth scrolling effect".

    • @FriendlyWire
      @FriendlyWire  Před 3 lety

      @@SieIaQ Oh I see what you mean. But I think you got it wrong, the TLC5916 in this tutorial are wired up exactly like the CD4094 before, the data goes in on one side and comes out on the other. The important difference is that the TLC5916 has drivers included that allow you to, well, drive LEDs at a constant current. The CD4094's outputs are just standard CMOS logic level outputs capable ofaround 0.5-1mA.
      Let me know if that makes sense :)

  • @MohammedAyazQuadri
    @MohammedAyazQuadri Před rokem +1

    Hey. How about some female header pins to raise the height of the 7 segment display?
    Round Pin Female Headers are even better. But they are short, but may they will work? Or else two layers of them will!

    • @FriendlyWire
      @FriendlyWire  Před rokem

      That's a great idea, thanks for sharing! I find that a lot of pin headers don't fit all that well with breadboards (because the pins are not long enough to fully engage with the breadboard contacts) but I will definitely give this a try in the future. Nice!

  • @cesaryoshikawa7656
    @cesaryoshikawa7656 Před 3 lety

    How about using these TLC5916 to drive the LEDs but other shift registers like the 74HC595 or the CD4094 showed in the video to multiplex them?

    • @FriendlyWire
      @FriendlyWire  Před 3 lety +1

      Thanks for the question! :) The TLC5916 are current sinks, so you can use them to drive anything towards VDD (like the segments of a common anode display). If you want to drive something to ground (which you need to do when multiplexing) then you would need a source driver, like a PNP transistor. So you could use a shift register that in turn drives those PNP transistors (the UDN2981 has eight of those PNP transistors in a single package), and those PNP's would then drive, say, the 7-segment LED displays' anodes.
      Does that help? If not let me know :)

    • @cesaryoshikawa7656
      @cesaryoshikawa7656 Před 3 lety

      @@FriendlyWire Yes! That's what I had in mind. Instead of having one TLC5916 for each display, I could use 1 TLC5916 to drive the current for each segment and then 1 shift-register triggering up to 8 transistors connected to the common cathode, right?
      You suggested a PNP transistor, is there any specific reason for that? Or with NPN works just fine?

    • @FriendlyWire
      @FriendlyWire  Před 3 lety +1

      @@cesaryoshikawa7656 Almost right. The TLC5916 drives towards VDD. So you need common anode displays (I had a typo in my response above and now it is correct).
      Connect the TLC5916 outputs to the LED cathodes. Connect the shift-register outputs to the PNP transistors, which then drive the LEDs' anodes. You need to use PNP transistors because you are driving towards ground. NPN transistors can only drive towards VDD, if that makes sense. In other words: the TLD5916 driver contains NPN transistors (or the MOSFET equivalent thereof). For driving the LED anodes you need PNPs.
      Maybe I could do a video on multiplexing :)

    • @cesaryoshikawa7656
      @cesaryoshikawa7656 Před 3 lety

      @@FriendlyWire Oh I see what you mean! Thanks for the reply! I am working on a project of a baseball scoreboard that receives the data from a python code through serial communication. As you can imagine it is a lot of 7 segment displays.
      I am sure that if you make a video on multiplexing it will be the best on CZcams. The quality of your video is astonishing!

    • @FriendlyWire
      @FriendlyWire  Před 3 lety

      @@cesaryoshikawa7656 Wow, thanks so much Cesar, glad you like it. Your project sounds very cool! If you have Twitter make sure to @ me at @FriendlyWire when it's done, I'd love to see it!
      Regarding the multiplexing, some things to keep in mind: it does not work very well for a lot of displays with a slow controller. Also, and more importantly, when you plan to take videos of the display (for example when the scoreboard is in the background of a sports game that is filmed) it might flicker on camera. And last, when you use serial communication (depending on how you implement it) the controller might be busy and cannot do the multiplexing as good as initially hoped. So it's a good idea to test some things before committing to a specific design :)

  • @SiliconSchematics
    @SiliconSchematics Před 4 lety +1

    Try to make video short and sweet 😁 it was good 😊

  • @filipcvetanovski2545
    @filipcvetanovski2545 Před 3 lety +1

    Why am i only now seeing this? CZcams did not notify me about this video even though notifications are on. Please try and fix this.

    • @FriendlyWire
      @FriendlyWire  Před 3 lety

      Glad to have you here, welcome back :) I don't know why this is happening... I am thinking of setting up an email notification for anybody who is interested so I can shoot out a monthly email whenever a video comes out. Would you be interested in that?

    • @filipcvetanovski2545
      @filipcvetanovski2545 Před 3 lety +1

      @@FriendlyWire Yes, i would be interested. CZcams really does not like notifying me when videos come out. Not just you but almost everyone i am subscribed to. I either get them a couple hours of multiple days after they are uploaded.

    • @FriendlyWire
      @FriendlyWire  Před 3 lety

      @@filipcvetanovski2545 In the last days programmed an email signup that you can find here: www.friendlywire.com/email/

    • @filipcvetanovski2545
      @filipcvetanovski2545 Před 3 lety +1

      @@FriendlyWire Thanks!

  • @mohomadashad4641
    @mohomadashad4641 Před 2 lety +1

    How to make this on as a counter

    • @FriendlyWire
      @FriendlyWire  Před 2 lety +1

      When you look at the source code ( www.friendlywire.com/tutorials/tlc5916/ ) you can modify it to make it display anything you want :) Do you know how to program PIC microcontrollers? I have an introductory video for that, in case you are interested. Let me know :)

    • @mohomadashad4641
      @mohomadashad4641 Před 2 lety +1

      @@FriendlyWire yes. I want

    • @mohomadashad4641
      @mohomadashad4641 Před 2 lety +1

      @@FriendlyWire i don' know how it's work. so can you tell me how it's work

    • @FriendlyWire
      @FriendlyWire  Před 2 lety

      @@mohomadashad4641 Do you know how to program in C?

    • @mohomadashad4641
      @mohomadashad4641 Před 2 lety +1

      @@FriendlyWire no