Best breadboard 7-segment LED driver: TLC5916 tutorial

Поделиться
HTML-код
  • Опубликовано: 30 июл 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:

Комментарии • 50

  • @FriendlyWire
    @FriendlyWire  4 года назад

    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 Год назад +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  Год назад

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

  • @risingmermo
    @risingmermo Год назад +1

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

    • @FriendlyWire
      @FriendlyWire  Год назад

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

    • @risingmermo
      @risingmermo Год назад +1

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

    • @FriendlyWire
      @FriendlyWire  Год назад

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

  • @75slaine
    @75slaine 4 года назад +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  4 года назад

      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 3 года назад +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  3 года назад

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

  • @jerril42
    @jerril42 4 года назад +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  4 года назад

      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 :)

  • @xotmatrix
    @xotmatrix 3 года назад +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  3 года назад

      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.)

  • @bah4dz
    @bah4dz 4 года назад +1

    Great job !

  • @sassi7190
    @sassi7190 4 года назад +1

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

    • @FriendlyWire
      @FriendlyWire  4 года назад +1

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

    • @sassi7190
      @sassi7190 4 года назад +1

      @@FriendlyWire
      sure

  • @sangsang5570
    @sangsang5570 Год назад +1

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

    • @FriendlyWire
      @FriendlyWire  Год назад

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

  • @MohammedAyazQuadri
    @MohammedAyazQuadri Год назад +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  Год назад

      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!

  • @SieIaQ
    @SieIaQ 3 года назад +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  3 года назад

      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 3 года назад +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  3 года назад

      @@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 :)

  • @cesaryoshikawa7656
    @cesaryoshikawa7656 3 года назад

    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  3 года назад +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 3 года назад

      @@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  3 года назад +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 3 года назад

      @@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 RUclips. The quality of your video is astonishing!

    • @FriendlyWire
      @FriendlyWire  3 года назад

      @@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 4 года назад +1

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

  • @filipcvetanovski2545
    @filipcvetanovski2545 3 года назад +1

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

    • @FriendlyWire
      @FriendlyWire  3 года назад

      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 3 года назад +1

      @@FriendlyWire Yes, i would be interested. RUclips 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  3 года назад

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

    • @filipcvetanovski2545
      @filipcvetanovski2545 3 года назад +1

      @@FriendlyWire Thanks!

  • @mohomadashad4641
    @mohomadashad4641 2 года назад +1

    How to make this on as a counter

    • @FriendlyWire
      @FriendlyWire  2 года назад +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 2 года назад +1

      @@FriendlyWire yes. I want

    • @mohomadashad4641
      @mohomadashad4641 2 года назад +1

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

    • @FriendlyWire
      @FriendlyWire  2 года назад

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

    • @mohomadashad4641
      @mohomadashad4641 2 года назад +1

      @@FriendlyWire no