Você está na página 1de 1

Addressable 7-Segment Displays by seanhodgins Follow Download Favorite

Let's Make ... Featured Write an Instructable Login | Sign Up

Classes Contests Community Teachers

Addressable 7-Segment Displays


By seanhodgins in Technology > Electronics 1.985 42 7 Featured

Download Favorite

By seanhodgins
SeanHodgins on YouTube More by
the author:
Follow

About: I'm a content creator. I make open source projects and videos for said projects. My goal is to create free and open
knowledge for everyone. More About seanhodgins »

Every so often an idea clicks in my brain and I think, "how has this not been done before?"
and majority of the time, it actually has been. In the case of the "Addressable 7-Segment
Display" - I really don't think its been done, at least not like this.

Most of the time 7-segment displays end up being way more complicated than you think
they would be. Essentially you're just lighting a bunch of LEDs to display numbers or
letters. That means you need to have control over each segment of each digit you have, so
if you have 4 digits, thats 4 * 7 = 28 outputs! Not to mention wiring and resistors. Then
once you start driving a bunch of them, things don't look so simple anymore. I decided to
create a simple way to have as many, or as little, 7-segment displays as you want, and
they're super modular. Whether you want 20, or 2, you only need one data line from the
Arduino to control them. Follow along to see how I did this, or to make your own, or to just
know how they work!

If you don't feel like making your own, or you just feel like supporting the open source
projects I create, I'm current running a crowdfunding campaign for these displays on my
website! https://shop.idlehandsdev.com/

 Add Tip V Ask Question | Comment Download

Step 1: Watch the Video

Addressable 7-Segment Displays


Ver más tarde Compartir

If you learn better by watching videos, I explain how I built them and how they work here.

Don't forget to subscribe!

https://www.youtube.com/seanhodgins

 Add Tip V Ask Question | Comment Download

Step 2: Get the Parts and Tools!

There aren't many parts, which is what makes this great, but you will have to be okay with
surface mount soldering.

Parts per display:

1 x Custom PCB - Get the les from GitHub, or Order through PCBWay
3 x WS2811 - Adafruit
1 x 7 Segment Display - Needs to be Common Anode! Sparkfun Has Them
3 x 33OHM Resistor 0805 - Digikey
3 x 1uF Capacitor 0805 - Digikey
1 x 3-Pin Right Angle Header - Female - Digikey
1 x 3-Pin Right Angle Header - Male - Digikey

Tools:

Soldering Iron
Re ow Oven or Hot Air (Optional but easier)
Solder Paste or Solder

If you want to skip the build and just buy a couple, go here!

https://shop.idlehandsdev.com/products/addressable-7-segment-display

 Add Tip V Ask Question | Comment Download

Step 3: Start With Surface Mount Components!

On the back, apply the solder paste. These are all really forgiving components, so it would
be a good project to start on if you have never re owed surface mount components. After
applying the solder paste, place the caps, resistors, and nally the WS2811. Follow the
markings on the board.

 Add Tip V Ask Question | Comment Download

Step 4: Reflow!

SMD Challenge #1 - Learn to Surface Mount Solder


Ver más tarde Compartir

Get that hot air or re ow oven out, heat them up until all of the solder paste sets. If you
don't have hot air or a re ow oven, you can use a soldering iron and solder. Its more tedious
but totally doable. I have a video on this if you want to know some techniques. Check it out
here: https://www.youtube.com/watch?v=uQjjcaN57y8

 Add Tip V Ask Question | Comment Download

Step 5: Add the Pin Headers.

The order of steps this Instructable is in is important. The pin headers need to be soldered
next, because their pads will soon be hidden under the 7-segment display component. The
board shows you which direction the male and female pin headers go. Try to make them
straight!

 Add Tip V Ask Question | Comment Download

Step 6: Solder the 7-Segment Display

Lastly we have to solder on the 7-segment display component. Make sure its in the correct
orientation by following the direction of the silkscreen.

Once you're done soldering, clean the board with your favourite cleaner and you're done!

 Add Tip V Ask Question | Comment Download

Step 7: How the Hardware Works.

The WS2811 IC is capable of driving 3 LEDs with variable current. Normally these are a
Red, Green, and Blue LEDs to be able to make thousands of different colours. In the case of
the 7-segment display we are using 3 WS2811s to control the brightness of 8 different
segments of the 7-segment display. Two of the WS2811s are connected to 3 segments
and the last one is connected to 2 segments, with one remaining. The remaining one is
actually connected to an unpopulated LED, which I thought could possibly be useful for
something.

The way a WS2811 is addressable is that it is able to pass data from one WS2811 to
another. So when you send a string of bits(data), it will take in its own information about
what LEDs to turn on, and pass along some information to the following WS2811s until
they have all received the information. That means this method of communication only
requires a single data line. Once the data has been received for the single digit, it pushes
data to the next three.There is a very simpli ed schematic in the image above. The free
green wire is what goes onto the next display.

 Add Tip V Ask Question | Comment Download

Step 8: How the Demo Program Works.

I quickly put together an Arduino program to demonstrate how to display things on the
Addressable 7-Segment Display. It utilizes the Adafruit NeoPixel Library to control the
number displays. It basically turns each digit into 3 Neopixels. You can send a single digit to
a single display and control its brightness by simply writing:

writeDigit(DisplayNumber, Number, Brightness);

Display number being the number from right to left of which display you want to write to
starting with 0. Number is the actual number you want to show up on the display from 0-9,
and brightness being a value from 0-255 for how bright you want it to be.

Each time you want to refresh the displays you have to send:

segments.show();

Since there is no multiplexing going on here, it makes it really easy to do things like pulse
the numbers, dim them, make cool animations.

There is no standalone library, but I may being working on one soon. If you want to
contribute to the project and write a library, feel free to contact me and I will send you some
displays.

addr_7seg_demo.ino Download

 Add Tip V Ask Question | Comment Download

Step 9: Daisy Chain Them Together!

This is the best part. If you have a project that requires 5 displays, just connect 5 together
and change the code to show 5 displays. If you need 10, just connect 10! Its that simple,
and the wiring stays exactly the same! Just 3 wires.

 Add Tip V Ask Question | Comment Download

Step 10: Support These Projects!

As I mentioned before, this project and basically all of my other projects are open source.
That means you can build your own using the resources I provide online, all for free.
However these projects do cost me time and money, so if you want to support future or
current projects consider purchasing a couple of these displays directly from me. Check out
my web-store where I am running my own crowdfunding campaign!

https://shop.idlehandsdev.com/

I like crowdfunding because it allows me to reduce the overall cost of the product by only
purchasing the parts if I know they have sold.

If you prefer to build your own, there are other ways to support me and my projects.
Consider subscribing to my YouTube Channel:

SeanHodgins on YouTube

And nally, if you want to see more and possible bigger projects, you can also become a
patron on Patreon.

SeanHodgins on Patreon

My patrons really do help with my ability to create projects, as their support allows me to
put more time and money into the projects that don't bring me any in return. These are
often the most fun and interesting projects, and I like that I am able to release them to the
world for free for anyone else to try and recreate.

 Add Tip V Ask Question | Comment Download

This is an entry in the


PCB Contest

Vote Now!

Share
Did you make this project? Share it with us!

I Made It!

Recommendations

Build the Rainbow Apparatus $1 PCB Christmas Tree Resistor Organizer and Storage Large Motors Class
by marciot in Technology by loboat in Electronics by lonesoulsurfer in Electronics 10,826 Enrolled

 V |
Add Tip Ask Question Post Comment

We have a be nice policy.


Add Images Post
Please be positive and constructive.

7 Discussions

ripthoofficial 8 hours ago Reply / Upvote


Great project! Well documented and easy to replicate.

lucasdesordi 23 hours ago Reply / Upvote


Hi Sean, great project!
Hey, I want to make a addressable serial motor controller... could you give me a light on how to do this?
What chip to use...
Basically I want to send for a "line" of motors, the position they have to go and send back the home position
sensor for each of of those.

/1 AashishS4 1 day ago Reply / Upvote


After a long time I have seen an instructable that I would like to try making. I have always thought there must
be a clean and elegant way to add 7 seg displays, and you solved the problem so nicely. Made my day!
Cheers and thanks!:)
- Aashish

Edwin65 Question 1 day ago on Introduction Answer / Upvote


Must say you have great projects, I am looking to make a 2 team Score Board with 2x2 7-segment displays
that can count 0 to 20. The 7-segment display I wanted to make out of led-strips for they must be 4" tall or
neo-pixels strips. any info would be great!

KarloHorcicka 1 day ago Reply / Upvote


So, for school we had a project that wanted us to display the number of pulses given by the rotary encoder.
It had to be done with these 7-segment displays but i found another solution other than arduino. It was the
bc4026 ic which was created exactly for that purpose. Now, I quite like this project of yours because it allows
multiple digits to be added without any additional wires which was the problem for us. I just wanted to ask
whether it's possible to add the bottom line to digit 9? I really like your projects and I hope to see a lot more
of them in future. Keep up the good work.
1 reply F

/1 memjr73 1 day ago Reply / Upvote


I did something similar but used just one 74595 shift register per 7 see display :)

Post Comment

Categories About Us Resources Find Us


Technology Food Who We Are Residency Program
Workshop Play Why Publish? Community
Craft Outside Jobs Sitemap
Home Costumes Contact Help

© 2018 Autodesk, Inc. Terms of Service | Privacy Statement | Privacy settings | Legal Notices & Trademarks

Você também pode gostar