Make a scrolling text display with CD4094 shift registers!

แชร์
ฝัง
  • เผยแพร่เมื่อ 29 พ.ค. 2024
  • Learn how to use CD4094 shift registers in a fun project! In this scrolling text display we learn how to control many LEDs with a microcontroller and CD4094 shift registers.
    This PIC microcontroller project uses CD4094 shift registers to display scrolling texts (up to 6000 characters). This project uses eight digits, but it can be expanded to much larger numbers of digits. Check out the companion article on my website for more details and an up-to-date list of all components: www.friendlywire.com/projects/...
    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 Overview of the scrolling text display
    00:51 Introduction
    01:04 What you need
    01:53 CD4094 shift register explained
    03:58 Schematic
    05:40 Building the circuit
    09:26 Building the enclosure
    19:11 Flashing the PIC16F1455 & custom texts
    21:10 Outro & first 6000 digits of pi

ความคิดเห็น • 70

  • @nodeswitch
    @nodeswitch 4 ปีที่แล้ว +5

    Great project! Thanks for going into as much detail, really informative.

    • @FriendlyWire
      @FriendlyWire  4 ปีที่แล้ว

      Thanks so much, I am really glad you liked it! Do you have something else that you want to learn about with microcontrollers? I am always interested in new ideas :)

  • @stupossibleify
    @stupossibleify 3 ปีที่แล้ว +3

    Fantastic demonstration of how shift registers can ultimately drive dot matrix/UHD panels from only a few CPU signal lines

    • @FriendlyWire
      @FriendlyWire  3 ปีที่แล้ว

      Glad you find it useful! Stay tuned for my next video where I talk about the TLC5916 driver IC because the CD4094 I use in the above video are too weak to drive larger displays. Should be out in a week or so :)

  • @ezequielacevedo770
    @ezequielacevedo770 3 ปีที่แล้ว +1

    method #2 and red filter reminds me of vintage gear and pinball machines. A fun project and so well explained!!

    • @FriendlyWire
      @FriendlyWire  3 ปีที่แล้ว

      Thanks, glad you like it! :) The CD4094 is not an LED driver, so now I always recommend to use the TLC5916 instead (on which I also have a video).

  • @kamilb2322
    @kamilb2322 3 ปีที่แล้ว +1

    Thank you for explaining CD4094. I had problem with driving led matrix that is using this register.

    • @FriendlyWire
      @FriendlyWire  3 ปีที่แล้ว

      Glad the video was helpful! :) Let me know if you have any questions, I am happy to help!

  • @YtAtif
    @YtAtif ปีที่แล้ว +1

    Appreciate your hard work

  • @technicahmett
    @technicahmett 3 ปีที่แล้ว +1

    Good job Dude. very well explanation and very well presentation...

    • @FriendlyWire
      @FriendlyWire  3 ปีที่แล้ว

      Thank you, glad you like it! :)

  • @AiGreek2425
    @AiGreek2425 4 ปีที่แล้ว

    I discovered your channel through a post on Reddit, and I must say that I am not disappointed. I am French and my English is not perfect, and yet I absolutely understand all of your explanations. The projects are simple and really, it's nice to see in 2020 projects without arduino but with PICs. Thank you very much for what you are doing, and I sincerely hope to see more content soon. I am obviously subscribed

    • @FriendlyWire
      @FriendlyWire  4 ปีที่แล้ว

      Thank you so much, I am glad you like it, it means a lot! I have no plans of stopping anytime soon :) Do you have something you are particularly interested in? I am always looking for new ideas!

    • @AiGreek2425
      @AiGreek2425 4 ปีที่แล้ว

      @@FriendlyWire You're welcome. Well i don't know .... Something with logic gates ?(i have a board for that i can send the schematic to you if you want. just send me a PM on twitter @aigreek) or more CD40xx project (i love these chip ^^)

    • @FriendlyWire
      @FriendlyWire  4 ปีที่แล้ว

      @@AiGreek2425 Thanks, I like that idea. Most of my planned projects/tutorials focuses on PIC microcontrollers, but good old CMOS circuits are also a lot of fun! I'll get in touch on Twitter :)

  • @JeremyCook
    @JeremyCook 4 ปีที่แล้ว +1

    Really well done video. Nice project!
    Clever idea bending the wires of the display.

    • @FriendlyWire
      @FriendlyWire  4 ปีที่แล้ว +1

      Thanks so much! It works well with the CD4094, but if you want to use the 74HC595 register instead it's more difficult that way.

    • @JeremyCook
      @JeremyCook 4 ปีที่แล้ว +1

      @@FriendlyWire Well I'm all for doing things the easy way - so I guess I'll go with he CD4094 if I try something similar :-)

    • @FriendlyWire
      @FriendlyWire  4 ปีที่แล้ว +1

      @@JeremyCook I discovered this by accident, but it does make me wonder whether the CD4094 was designed for this purpose... :)

    • @JeremyCook
      @JeremyCook 4 ปีที่แล้ว

      @@FriendlyWire Ha, as with many excellent discoveries :-)

    • @FriendlyWire
      @FriendlyWire  4 ปีที่แล้ว +1

      @@JeremyCook Thanks :)

  • @MindFlareRetro
    @MindFlareRetro 4 ปีที่แล้ว +1

    Another great project. Again, well explained and presented. And a very clever idea using the dollar store wooden pencil box -- somebody's thinking outside the box 😂.

    • @FriendlyWire
      @FriendlyWire  4 ปีที่แล้ว +1

      Thanks so much, glad you like it! I was waiting for that comment, in fact, I wanted to make that joke in the video at first :D

    • @MindFlareRetro
      @MindFlareRetro 4 ปีที่แล้ว

      @@FriendlyWire LOL. You can always count on me for a pun or two.

    • @FriendlyWire
      @FriendlyWire  4 ปีที่แล้ว +1

      @@MindFlareRetro I'll keep that in mind ;-)

  • @jhoanrivero7885
    @jhoanrivero7885 4 ปีที่แล้ว +1

    aweson video
    Saludos,

    • @FriendlyWire
      @FriendlyWire  4 ปีที่แล้ว

      Thanks so much, I am glad you like it! Let me know if you have any questions :)

  • @byetodd
    @byetodd 2 ปีที่แล้ว +1

    Do you think this can be done without a micro-controller? I am trying to do something similar to this, just only using the Tx and Rx wires. I would simulate my own clock using a 555 timer and i would use the start bit, as it exits the shift register to, hopefully, trigger the OE and some how Reset. Does this sound possible to you?

    • @FriendlyWire
      @FriendlyWire  2 ปีที่แล้ว +1

      That is an interesting question! If you search for "single wire 74HC595 drive" you can see how you can control that shift register with just one data line :) I am not sure if that works exactly for the CD4094, probably not because the tolerances are different.

  • @SouthShoreSonics
    @SouthShoreSonics 3 ปีที่แล้ว +1

    Great video and project! Curious does the little microcontroller in the box send the clock and strobe 90 degrees out of phase? Thanks

    • @FriendlyWire
      @FriendlyWire  3 ปีที่แล้ว

      Hi there, thanks for your kind words! I am not sure if I understand your question, so I will attempt to answer it as best as I can :) When I am sending out the bits for the segments I first set the data pin, then put clock to 1 and then back to 0. After I have done this for all eight bits I pulse strobe to 1 and back to 0. During the time that strobe is active, clock is always kept low. So there is really no overlap between the clock and strobe signals. I hope this helps? Let me know :)

    • @SouthShoreSonics
      @SouthShoreSonics 3 ปีที่แล้ว

      @@FriendlyWire I understand what you are doing!
      On my design I will simply invert the clock with a npn inverter so when clock is high, strobe is low, and when clock goes low, it will send a high to the strobe on the relative negative going clock, which is a positive going strobe.
      If you look at the data sheet for the 4094 it states it clocks the shift register on the positive going clock, whilst the storage is clocked on the negative going pulse.
      p.s. my needs are totally different as in my experiments i have a rough 4 bit shift register set up, with a clock on 2 4013s.
      The Data pin is fed from a noisy signal from a Monotribe filter, which in turn its filter cutoff is controlled by the value generated by the 4 bit A/D fed BACK to the filter control (moddded by me).
      In a sense it is recursive as the filter opens up on 1111 to A/D whilst on 0000 A/D the fed back cutoff is lower. As the Monotrbe has a 1 bit noise generator upstream from a 12db resonant filter, the actual "quality" of the noise fed to the comparitor that triggers the data is based on what value the A/D generates.
      I will prototype this test circuit with a 4094 and see what effects I can generate for music.
      Again, I really liked your project! I always watch others videos for ideas for my music applications.

    • @FriendlyWire
      @FriendlyWire  3 ปีที่แล้ว

      My goodness, I just saw your comment, sorry for the super late response. Thanks for your explanation of the clock logic. I have seen people use a single wire interface to address a 74HC595 shift register, perhaps it is also possible for the CD4094. :)
      Let me know if your music project is up and running, I would love to see it.

    • @SouthShoreSonics
      @SouthShoreSonics 3 ปีที่แล้ว

      @@FriendlyWire here's a rough demo of the mark1. th-cam.com/video/J84iEge3GqQ/w-d-xo.html. i am working on a much better mark2 in the fall.

  • @oscartinajero117
    @oscartinajero117 4 ปีที่แล้ว

    In the video do you use the displays common anode or common cathode?

    • @FriendlyWire
      @FriendlyWire  4 ปีที่แล้ว +1

      They are common cathode displays. You can see a more detailed list of all components on friendlywire.com/projects/scrolling-text/#components .
      If you want, you can also use common anode displays, but then you have to invert the signal that is sent to the shift registers and turn all 1's to 0's and vice versa :)
      Let me know if you have any other questions, and have a great day!

  • @victormaxwellpeters9771
    @victormaxwellpeters9771 2 ปีที่แล้ว +1

    Really happy to see this video but only one question remaining as Which type of shift registered is used??? And if the strobe line are connected in parallel then is it not that all display operates simultaneously on contrary to your first part of explaination that only one display is on at a given time???

    • @FriendlyWire
      @FriendlyWire  2 ปีที่แล้ว

      Hello Victor, this project uses the CD4094 shift registers. The schematic is at 4:00, and you can also find it in the article here: www.friendlywire.com/projects/scrolling-text/#ch2 . The strobe line updates the CD4094 outputs, yes :) Where did I say that only one display is on at a given time?

    • @victormaxwellpeters9771
      @victormaxwellpeters9771 2 ปีที่แล้ว +1

      @@FriendlyWire really sorry for the mistake sir ,it's not in this video but on the other video were the host tells in the assembly of multiple digit display only one digit display is functional and rest will be off and only due persistence of vision we see all the digits simultaneously.
      So kindly explaine on this sir as out of several videos that I had reached only this video give me a clear insight.

    • @FriendlyWire
      @FriendlyWire  2 ปีที่แล้ว

      ​@@victormaxwellpeters9771 I am a bit confused :) This video here uses the CD4094 shift registers. In this case, all LEDs are on at the same time. We also call this method "direct drive." The other video you are referring to is probably the MAX7219 tutorial. The MAX7219 is an LED driver that multiplexes 8x8 LEDs. In this drive method only eight LEDs can be on at any given time.
      The source of confusion is maybe this: both the CD4094 and the MAX7219 use a serial data interface to receive data. In other words, they both use a clock line, a data line, and a strobe line to receive their "instructions" of what they need to do. The CD4094 is very simple, it just receives eight bits. The MAX7219 is more complicated, because it can receive actual commands that control the 64 LEDs.
      Let me know if this helps, or if something is not clear yet :)

    • @victormaxwellpeters9771
      @victormaxwellpeters9771 2 ปีที่แล้ว

      @@FriendlyWire Thank you sir for the wonder full video and for having all those patients in the world to provide me with those wonderful insight.
      The video link for the source of my question is given below th-cam.com/video/fYAlE1u5rno/w-d-xo.html

  • @sabirmulla_yt
    @sabirmulla_yt 7 หลายเดือนก่อน +1

    Best video

    • @FriendlyWire
      @FriendlyWire  7 หลายเดือนก่อน

      Thank you, Sabir, glad you liked it!

  • @kalyangautam7345
    @kalyangautam7345 3 ปีที่แล้ว +1

    There’s no any different point that have fix digit on that 4094 ic? I want to install this display on motorcycle gear shifting that’s why I want to display fix digit in every time i shifting the gear. There’s no any separate pin which show own digit from 0-6.

    • @FriendlyWire
      @FriendlyWire  3 ปีที่แล้ว

      Thanks for your interest :) I am not sure if I understand your question, though. You can connect only six CD4094 to the circuit, no problem. All you need to do is change the source code for the PIC16F1455 to display what you want. Let me know if I got it wrong :)

    • @kalyangautam7345
      @kalyangautam7345 3 ปีที่แล้ว

      FriendlyWire I mean in your video you’re giving the pulse then it’s changing the number 0-9 but i am asking if I give negative supply in one leg it will show 1 in another leg it will show 2

    • @FriendlyWire
      @FriendlyWire  3 ปีที่แล้ว

      I am sorry, I still don't know what you mean. What do you mean by negative supply? This circuit only runs on 5V. There is a full article here, maybe it is helpful? www.friendlywire.com/projects/scrolling-text/

    • @kalyangautam7345
      @kalyangautam7345 3 ปีที่แล้ว

      FriendlyWire it’s okay will you make a video how to make fuel meter for motorcycles using 7 segment display?

    • @FriendlyWire
      @FriendlyWire  3 ปีที่แล้ว +1

      I don't really know anything about motorcycles, so I would say it's probably unlikely. But I am sure that it's possible to use this circuit for what you want it to do! Have a look at the schematic and the other videos here, and that should get you started :)

  • @radiomadrid
    @radiomadrid 3 ปีที่แล้ว +1

    Hi friend.
    First of all, congratulations on your video, it is very interesting, I would like to do the same but with two CD4094 integrateds, since it uses three wires, and I would like to light a row of 16 LEDs independently. I would put a 12F675 and two 4094, if you could send me a code a style of the page in CCS.
    The issue is that I of those 16 led's, because I want to turn on the led 3-4-5-7-8 for example and then if I press a button turn on the 1-10-11-14-16, for example.
    It is to address an integrated PLL the MC145151-2 and thus change the frequency of a station from RX to TX. , when pressing the button it would be TX and when releasing it, it would go to RX. and so I change the frequency. Awaiting your reply and help, thank you in advance.
    Regards.

    • @FriendlyWire
      @FriendlyWire  3 ปีที่แล้ว

      Hi Xabi, thanks for your question! Not sure if I understand all, but if you only need two states for your 16 outputs then maybe it would be easier to do everything without a microcontroller and just hard-wire it with some switches? :)
      I have not used the PIC12F675 in any project so far, but these little chips have all you need to convert this project, including the internal 4MHz oscillator.

  • @aravindhsm1287
    @aravindhsm1287 11 หลายเดือนก่อน +1

    Great project,is there any way to replace the microcontroller with an Arduino?

    • @FriendlyWire
      @FriendlyWire  11 หลายเดือนก่อน

      Yes, this basic concept works with any microcontroller. If you want to use Arduino, you can still use most of the information in this video, because it mostly focuses on how the CD4094 shift register works. But you will have to write your own program later on to send out the data, and that may look a bit different.

  • @ezechiamaka7293
    @ezechiamaka7293 3 ปีที่แล้ว +1

    What software did you use to change the text

    • @FriendlyWire
      @FriendlyWire  3 ปีที่แล้ว

      Hi, this is all done in MPLAB X IDE. Check out my video here that explains it: th-cam.com/video/e4Q2dYVedPY/w-d-xo.html :)

  • @noithugian494
    @noithugian494 ปีที่แล้ว +1

    Bạn có thể làm điều khiển led 7-seg dùng Remote không?

    • @FriendlyWire
      @FriendlyWire  ปีที่แล้ว

      Hey there :-) I am not sure if I understand properly, but this circuit works only without a remote. I think you could probably make it work with a remote, but that is a whole new project. I am planning to talk about infrared sensors soon, so stay tuned! :)

    • @noithugian494
      @noithugian494 ปีที่แล้ว +1

      @@FriendlyWire thank you so much!

    • @FriendlyWire
      @FriendlyWire  ปีที่แล้ว

      @@noithugian494 Happy to help, and thank you for your interest! :)

  • @ashiq3226
    @ashiq3226 4 ปีที่แล้ว +1

    Which simulation software is it??

    • @FriendlyWire
      @FriendlyWire  4 ปีที่แล้ว

      What part do you mean? :)

    • @ashiq3226
      @ashiq3226 4 ปีที่แล้ว +1

      The circuit designed

    • @FriendlyWire
      @FriendlyWire  4 ปีที่แล้ว +1

      @@ashiq3226 Oh, I see! This is Eagle by the company Autodesk. I use it to draw my schematics with it, but it cannot simulate anything. The animations (= colorful wiggly lines) are all done by hand by me.

  • @akthamahmed2171
    @akthamahmed2171 4 ปีที่แล้ว +2

    Awesome project 👍
    you can use esp32 to communicate with display with different values
    thank you 🧡

    • @FriendlyWire
      @FriendlyWire  4 ปีที่แล้ว

      Thank you, I am glad you like it! Yes, you can use any microcontroller you want to send the data. I chose the PIC16F1455 because it is very small and cheap, but still has a DIP package so it fits nicely on a breadboard. :-)

  • @_twich_8096
    @_twich_8096 ปีที่แล้ว +1

    καλησπερα, εισαι ελληνασ? hi yannis are you greek?

    • @FriendlyWire
      @FriendlyWire  ปีที่แล้ว

      Hey there :-) My name sounds like Yannis but it's actually Jens, I am from Germany :)

  • @sketter1969
    @sketter1969 4 ปีที่แล้ว

    very good, bye

    • @FriendlyWire
      @FriendlyWire  4 ปีที่แล้ว

      Thanks so much, have a great day!