8x8 LED Matrix for Arduino
Vložit
- čas přidán 21. 08. 2024
- One of the Arduino components that have greatly intrigued me is the 8x8 LED Matrix. It lets you control 64 LEDs with just 16 pins, meaning we have to go through a pretty interesting thought process to ensure that the display shows what we intend.
In this video, we will delve into how the matrix works, including the type of logic we have to use to correctly light each pixel, as well as how to set up resistors so we don't cause damage to our LEDs.
= Links =
Interested to see the code? Check here: bitbucket.org/...
To download, click "Download" on the left sidebar, and select "Download Repository".
= 0612 TV =
0612 TV, a sub-project of NERDfirst.net, is an educational CZcams channel. Started in 2008, we have now covered a wide range of topics, from areas such as Programming, Algorithms and Computing Theories, Computer Graphics, Photography, and Specialized Guides for using software such as FFMPEG, Deshaker, GIMP and more!
Enjoy your stay, and don't hesitate to drop me a comment or a personal message to my inbox =) If you like my work, don't forget to subscribe!
Like what you see? Buy me a coffee → www.nerdfirst.n...
0612 TV Official Writeup: nerdfirst.net/0...
More about me: about.me/lcc0612
Official Twitter: / 0612tv
= NERDfirst =
NERDfirst is a project allowing me to go above and beyond CZcams videos into areas like app and game development. It will also contain the official 0612 TV blog and other resources.
Watch this space, and keep your eyes peeled on this channel for more updates! nerdfirst.net/
-----
Disclaimer: Please note that any information is provided on this channel in good faith, but I cannot guarantee 100% accuracy / correctness on all content. Contributors to this channel are not to be held responsible for any possible outcomes from your use of the information.
Finally some one who could explain how an 8x8 led work, excellent video
Hello and thank you very much for your comment! Glad you liked the video =)
Understanding complex electronic circuits for everyone! Such detailed explanation videos are very rare! Please make more of such great videos, really good! Greetings from Germany.
Hello and thank you very much for your comment! Glad to be of help =)
*Expand for Important Notes*
*1. On Current Draw*
A valid concern about the setup shown in the video is whether current draw exceeds what a Pin on the Arduino can source, bearing in mind that the GPIO pins on Arduinos are rated for 40mA at the absolute maximum. This could indeed be a problem - Drawing too much current can risk damage to your Arduino, so if you're going to be building something like this for extended use, don't do it the way I did!
It is best to take your own measurements and consult the datasheet of the components used to ensure that you are not overloading your Arduino.
Further discussion here, with thanks to CZcams users Mangostein and Enigma758 for their input: czcams.com/video/G4lIo-MRSiY/video.html&lc=UgztVk5rMrTeLnISr4R4AaABAg
*2. On Debugging and Help*
Unfortunately due to high IRL workloads, I'm not able to look at your code and help diagnose problems. You may contact me at hello(at)nerdfirst(dot)net for paid consultation, if you really see the need.
Thank you brother... I’ve owned the same LED matrix for like two years and am about to use it for the first time today... I really appreciate your tutorial!
Hello and thank you very much for your comment! Glad to be of help, all the best for your project =)
You are a great teacher! Glad I came across your channel.
Hello and thank you very much for your comment! Very happy to be of help :)
Hi, after watching countless CZcams videos and trying to learn about Arduino I found yours to be excellent. Well put and even easy for this old timer to understand. I will be looking for more made by you. Thank you and keep up the good work as there are a lot like me that want to understand this form of electronics.
Hello and thank you for your comment! Very happy to be of help =)
You did a great job on explaining these concepts! I have a hard time with circuits, but this made sense
Hello and thank you very much for your comment! Very happy to be of help =)
THis video REALLY helped me with using the display, and it's soo cool that you don't explain 100%, but just enough for me to figure out the rest by myself
Hello and thank you very much for your comment! I'd say that's the spirit - If I put up code you'd be tempted to copy. Instead, I'd rather paint a big picture with all the important concepts and you can fill in the rest of the gaps which are specific to your own project!
Very good explanations and informations!
Everything is just exactly what I wanted to know! Thanks for this video, bro...
That's great to hear! Very happy to be of help :)
Very nice and informative video!
Hello and thank you very much for your comment! Glad you liked the video =)
Fantastic video and everything explained very well. Thank you
You're welcome! Very happy to be of help =)
OMG thank you so much for this video wich explains so well what I needed to understand !!
It has been months since I have started to look for this kind of video.
I need to control a led matrix like this for my project and I couldn't understand anything.
Big hugs !
Hello and thank you very much for your comment! Very happy to be of help, and all the best for your project =)
Same things happen in our LCD or OLED display that we used to watch this video right now. They are even no such IC or controller that can drive millions of pixels on the screen individually. So, pixels in our displays may be connected together something like those LED matrix do, but maybe in other way. So, the controller controls the pixels by scanning. What we see on the screen actually not a complete picture. It just scan very fast until it can trick your eye to see a complete picture.
Hello and thank you for your comment! Good analogy! Unfortunately for a lot of these panels we don't get to be manually involved in this process since there is usually some hardware doing it for us. That's why learning something like this can help us better understand the tech around us =)
This video is a gem, thanks!
You're welcome! Glad to be of help =)
Thanks for the well done video! Your explanation of each row quickly turning on and off again using the Potentiometer really helped me understanding
You're welcome! Very happy to be of help =)
awesome video, very informative, I really appreciate the help
Hello and thank you very much for your comment! Glad to be of help =)
Correct me if I'm wrong, but at 10:36 you can't just say the total current is 13.6mA. The reason is, the parallel part of the circuit adds up to much less resistance than with just one led and the total current is greater than in the previous circuit (because the total resistance is smaller). The result of this is less voltage on the LEDs which explains the dimming. By connecting a resistor to each branch separately, you create a bunch of circuits as you've shown before ( led and resistor in series) but the total current should now be 13.6mA times the amount of branches(8) = 108.8mA. Hope this makes sense.
Hello and thank you for your comment! While you are right to say that the diagram at 10:36 ignores the resistance of the LEDs, the number I've given is actually too small, not too large, since I have been assuming LEDs to have zero resistance in my calculations. You are, however right in saying that the "parallelized" LEDs will lead to a lower resistance compared to a single LED.
What you're saying about the "parallel" version seems consistent with what I have, though I did not explicitly mention 108.8mA.
Regardless, the good news is that these LED panels don't actually draw anywhere near this amount of current. Refer to the pinned comment for more.
bruh very well explained, thank you
You're welcome!
Very well explained and the language is very good to understand.
Hello and thank youvery much for your comment! Really glad you think so, I'm happy to be of help :)
Hey, great tutorial. Do you know if the display can be dimmed at all? Or is it either bright on or off?
Hello and thank you for your comment! Dimming of the display is possible, but is challenging as you essentially have to implement "PWM-like" behavior on your own.
Imagine if you are able to refresh the display at a consistent interval, and you do the following:
Refresh 1 - Pixel (0,0) HIGH; Pixel (0,1) HIGH
Refresh 2 - Pixel (0,0) LOW; Pixel (0,1) HIGH
Refresh 3 - Pixel (0,0) HIGH; Pixel (0,1) HIGH
Refresh 4 - Pixel (0,0) LOW; Pixel (0,1) HIGH
The net effect here is that Pixel (0,0) is essentially getting a PWM effect at a 50% duty cycle. It should theoretically appear half as bright as Pixel (0,1).
Can't imagine that being fun to program, but I guess it _can_ be done.
really informative and well-made video!!
i have a question:
if the two rows of pins are on opposite sides of the actual dot matrix (like at 2:49) why are they being shown adjacent to each other like at 2:08?
thanks!
Hello and thank you for your comment! The diagram at 2:49 shows the actual pinout of the component, which is unfortunately all over the place, by design.
In order to not confuse you, I avoid using that pinout. When describing what's going on with the component itself, it makes far more sense to go with an intuitive layout, as at 2:08.
Very very good explanation
I got more engaged as the video was going on..
Hello and thank you very much for your comment! That's wonderful to hear, glad you liked the video =)
way to go! very nice explanation! thk!
Hello and thank you for your comment! Glad you liked the video =)
Great video, very instructive! I have a question tho. What happens when we turn on a full column? Wouldn't all of the LEDs of that column be connected in parallel sharing one resistance?
Hello and thank you for your comment! Yes indeed, this is a concern we discuss in the video. Be sure to do your scanning such that at any given time, only one LED is in the path of each resistor. So for example, if you have resistors connected on the rows, then you should be scanning column by column, so that at any given time, for each row, only one column will be activated at a time.
@@NERDfirst Thank you very much for your reply!
11:50 Hi. If each LED is getting 13.6mA and you turn on an entire row at once, then the circuit will try to sink 8*13.6 = 108.8mA which an output pin is not capable of providing. This may result in damage to your microcontroller. I think you need some high side drivers (e.g. 8 PNP transistors) for your common anode LED rows.
Hello and thank you for your comment! Yes indeed, several other commenters have raised this concern as well. Another commenter took measurements on the component and found that actual current draw is significantly lower, within the range of what an Arduino pin can source, but ultimately, the advise stays the same - Read datasheets, take measurements, and be doubly sure before embarking on such a project.
Maybe I'll edit the pinned comment a little to make it sound more cautionary.
I've just checked the earlier discussion (here: czcams.com/video/G4lIo-MRSiY/video.html&lc=UgztVk5rMrTeLnISr4R4AaABAg ) and noticed that you've participated in it and brought up these points before.
Good to hear from you again and thank you for continuing to share your feedback!
Excellent clear explanation. 👍
Hello and thank you for your comment! Glad you found the video useful =)
Awesome vid!
Thank you! Glad you liked the video =)
Thank you for the explanation and those lovely animations; super helpful!
You're welcome! Very happy to be of help =)
man you explained this so good!!!
Hello and thank you very much for your comment! Glad you liked the video :)
This video is very good and i learned exactly what i wanted!
Hello and thank you very much for your comment! Glad to be of help =)
You’re good.. very nicely explained!
Hello and thank you very much for your comment! Glad you liked the video =)
Very explained. Excellent video
Hello and thank you very much for your comment! Glad you liked the video =)
Learned a lot from this - thank you.
Hello and thank you very much for your comment! Very happy to have been of help :)
Have you seen the sequel? The 8x8 matrix can be controlled with just 3 pins with the help of an IC chip: czcams.com/video/NM7wXta8crM/video.html
Great explanation !!
Hello and thank you for your comment! Glad you liked the video =)
Won't I burn my digital pin connected to anode here 11:53? I heard that maximum current arduino's I/O pin can supply is 20 mA. But here 11:53 current on the pin will be 8*13.6=108.8 mA which is much greater.
Hello and thank you for your comment! Yes indeed! If the numbers worked out the way my calculations did, it would be indeed a cause of concern. However, a kind commenter has done the hard work of taking the measurements, and have found the current draw to be within safe ranges. Please refer to the comment pinned on this video for my conversation with them.
pretty well explained and thank you coz i made my own DIY 8x8 matrix
You're welcome! Glad to be of help =)
Hi, this is a very clear explanation video, may u pls upload the schematic on routing this 8*8 LED with using Arduino MEGA2560, simply watching the code hard to imagine how u r routing...
Hello and thank you for your comment! I'm afraid I don't have schematics for the circuit in this video. According to the code, it seems like I use pins 2 to 9, and 22 to 29. I can't tell which set is for X and which is for Y, unfortunately, but I believe it's not much of a problem switching the two around.
Refer to the diagram at 2:49, and connect pins 2 to 9 in order to the X pins, and 22 to 29 in order to the Y pins. If we mixed up the rows and columns, the image may appear rotated to the side, but that shouldn't be too bad, just rotate the matrix physically and we should be fine.
@@NERDfirst Thank you for ur reply. so u r trying to say pin 2 for x1, pin3 for x2,..., pin9 for x8, then pin 22 for y1, pin 23 for y2,... pin 29 for y8 right?
Yes, that's right! Don't forget the resistors.
@@NERDfirst Much appreciated. I will follow ur code to implement this time so i wanna make everything clear. Another thing about u using ATMEGA2560 to drive the matrix, in ur code is it using this logic: initially u use pin 2-9 to control the rows, pin 22-29 to the columns and all leds are on. Then in the loop, when i=0, then pin 2 controlled row will hv HIGH, when i=1, then pin3 controlled row will hv HIGH, and only those whose data[i][j]=1 can make the specific columns to be LOW then the LED is on?
Just took another look at my code, it really is kinda messy, sorry about that!
The important loop of note is Lines 32 to 39, which will set the appropriate columns high or low depending on the data in the array, then the row is powered (Line 40) so that the appropriate pixels will light up.
The overcomplicated code from Lines 25 to 30 is there just to switch off the last row that was lit up. Putting a one-liner after the delay() on Line 42 probably works too. See if this loop is easier to understand:
void loop() {
for (int i=0; i
Great tutorial!
Hello and thank you for your comment! Glad you liked the video =)
Thanks so much! What a great job
You're welcome! Very happy to be of help =)
Hello, excellent video very explained, I already replicated your circuit in my Arduino Uno, but at 11:57 there's a problem (well, i dont if it is or not) but, you see, at the 5V Row Cable in the instant of 8 leds turned on, your Arduino pin will source 13.6 mA x 8 = 108,8 mA , and that's is too much current for the Recommended Current per pin which is 20mA, and Maximum absolute per pin which is 40mA. What you can say about it? Thanks!
Hello and thank you very much for your comment! The only thing I can say is that you are absolutely right! Arduino pins aren't supposed to source that much current. In my case, this did not result in any immediate damage (even when I had the matrix fully switched on), but you are correct to say that that's not the right thing to do. The lifespan of the Arduino board would likely be shortened as a result.
The only consolation I can provide is that in normal operation, most rows are not completely switched on, so the current draw is less. In addition, the scanning action will also "spread out" the current draw for the pins involved, so any damage is likely to be minimized.
Still not the right thing to do, of course!
0612 TV w/ NERDfirst Hello thanks for the answer! After I commented in your video, i put a full row of "1" to make all the led on, and then I measured the amp of the full row led (row side) and to my surprise it read a total of 4,5 mA (with all 8 leds on) pretty weird? With another row of 4 leds already (lower part of smile) on it made 3 mA, another row with 2 leds on it (upper part ofsmile) made: 1,75 mA, anyway in all cases are lower than the recommended 20 mA. So theres no worry about that, only makes me wonder why so such low amps? Is the V-I curve of the generic led? Or other thing? Thank you for your video lesson and sorry for my english.
Woah, what's best are the raw numbers, kudos for taking the time to measure it up!
The numbers I used in the video are just "typical" numbers for LEDs. Really LEDs can be designed with any activation voltage, and their current draw will be different also. -I guess the LEDs used in this component are just not as power hungry as your average LED.-
Per Enigma758's reply below, I think it's still important to note that you should let the datasheet guide you and take measurements if you're concerned. Each use case differs, so don't take any of this as gospel.
Sorry, but I'm not buying any of this. I measured the forward voltage of a single red LED on my matrix and it was just under 2v as expected. The OP has not specified what voltage output is being used (e.g. could be 3.3v), and the response makes no sense. Did you try tying your output to ground through a resistor to determine that your output can actually source 20ma? Did you make sure not to use pin 13, which is special on some Arduino's that have a built-in current limiting resistor. Did you even use an Arduino for this test? If not, can your supply source the required current? The OP did not specify what resistor values were used or enough details about the test to be certain about any conclusions. Sorry, but there too many variables to just chalk this up to "not as power hungry as your average LED", so no worries". Furthermore, if you look up the datasheet for the 1088AS, it indicates "Foward Current: 20ma". Always, design for the worst case, and leave some extra margin for safety.
ADDENDUM: I connected a 220ohm resistor across a single diode in the matrix. Vf measured at 1.91 ohms. At 3.3v measured 6mA and at 5v measured 13.5mA. These values are very close to the calculated values of 6.3ohm/14.0ohm, so nothing unusual appears to be occurring here.
@@Enigma758 Hello and thank you for your comment! Sorry for the late reply, CZcams does not reliably notify me of comment replies, so I missed your comment. Yes, you're right, it's important to rely on the datasheet and take your own measurements to ensure things work out well for your use case. It was not my intention to say that this matrix is definitely okay to use like this in all use cases. I will write up a new pinned comment to clarify.
Great graphics: simple, clear, coherent, and informative. Sork on smoothing out your vocals. Have fun!!
Hello and thank you for your comment! Will definitely pay attention to that =)
This helped me a lot
Hello and thank you for your comment! Glad to be of help =)
great video,thanks
You're welcome! Glad to be of help =)
Thanks! Helped😊
You're welcome! Glad to be of help =)
very informative! Thanks
You're welcome! Glad to be of help =)
can we use a serial input, parallel output (74HC) ic to reduce the number of pins required?
Hello and thank you for your comment! Yes indeed! I cover this in the next video: czcams.com/video/NM7wXta8crM/video.html
Thank you so much.
You're welcome! Glad to be of help =)
I have a question. How come in the parallel format you put the resistor after the LED. Shouldn't the resistor come before?
Hello and thank you for your comment! According to Ohm's Law, the current across the LED and Resistor (and anything else you would put in that segment) are the same, so whether the resistor comes before or after actually doesn't matter!
I built a cheap ebay video game of tetris and it uses two of these displays together. It lights up but it's all random I'm thinking it must have had an orientation? Do they I noticed on the board one of the pads for each matrix has a square and the rest are round. I put them with the writing facing up which is opposite the square? Any help on this would be great.
Hello and thank you for your comment! I'm afraid I don't fully understand what you're describing, but overall, if there is any weirdness in how it appears, there are two places to check - Your wiring, and your code.
For the wiring part, check against the datasheet for your matrix. Getting anything wrong there will of course cause the whole display to not work properly.
As for the code, I like to test it first by lighting up the rows one by one, followed by the columns one by one. This is easy to code without having to do much scanning, and if something comes on in a way that is different from what you expect, you'd know there's an issue there.
Hello, thank you so much for the fantastic instructions. the part where you demonstrated the scanning of the image was such a good way to show what happens.
I have one question though, if you have an 8x8 grid and are scanning/flashing each led in sequence. What stops all the led's being 63x dimmer as they are only on once out of every 64 pixels scanned ?
thank you,
Hello and thank you for your comment! Actually, you're right! Our eyes don't really see it, but the individual pixels are indeed flickering extremely quickly over time, and in fact, it _does_ subtly impact the brightness.
Though the number is just 8x, not 64x, as you are scanning on a per-row basis, not a per-pixel basis.
Hi.. good demo...
Can you please show a program for 8*12 led matrix in which each LED glow one by one. For example, in row 1 column 1 first led glow by pressing a button, then by pressing the button 2nd led of row 1 glows while 1st LED is switched off, likewise when 3rd LED of row 1 glows rest of the led remain off...and so on up to 96th (row 8 column 12) LED in a sequence.
Very helpful :)
Hello and thank you very much for your comment! Glad to be of help =)
i really like how you explain this!!! thank you very much
You're welcome! Very happy to be of help =)
New subscriber❤
Hello and thank you very much for your comment and support!
Awesome video. Good, Clear detailed instructions. Thank you.
Hello and thank you very much for your comment! Glad to be of help =)
That looks so easy 😉
Hello and thank you for your comment! Glad you think so, all the best for your projects =)
@@NERDfirst Thanks, I also want to build a Matrix, but with more leds.
This video is very informative. Since I am a beginner, I would like to built a 8x32 dot matrix using SMD LEDS. I would like to know whether MAX7219 or 74HC or TM1637 ic will be perfect for that. What would you suggest and what SMD LED will do?
Hello and thank you for your comment! I don't have enough experience to give you any particular recommendation. Maybe just start with what's most easily accessible to you, since most methods have their pros and cons and their own quirks.
Hi! I like your videos very much, it helps a lot to me since I'm a starting learning.
Now I'm in a mini-project at College and get in "trouble " often. So.. would you tell me how do I display a random pixel on the matrix?. I can print the random Column and random row but I couldn't display them on the led matrix. I'm sure the matrix works very well.
Hello and thank you very much for your comment! Very happy to be of help :)
If you can print the random value that means you're generating it right. That's a great step forward. The next part is to actually use it to decide which pins to fire off.
For this to work, I'd assume you have your rows and columns connected to consecutive pins (eg. The rows, in order are connected from pins 2 to 9, and the columns from 30 to 37). You can represent this "starting point" as a number that you can use to add to your random number to figure out which pin to activate, ie.
int rowOffset = 2;
int colOffset = 30;
int randRow = //generate random number from 0 to 7
int randCol = // generate random number from 0 to 7
digitalWrite(randRow+rowOffset, HIGH);
digitalWrite(randCol+colOffset, LOW);
@@NERDfirst Hello, I've got a question regarding your code.
What should the default state of all LEDs be? Because as soon as you set one row high. All the columns will be either LOW or HIGH. Making a column LOW results in one LED lighting up obviously. But the others? Do they stay 'unconnected to gnd'? And how do I tell the arduino to 'unconnect' them?
Cuz' If I make them HIGH, I rely on the diode reverse voltage (the breakdown voltage is usually not very high)
@@ProtoMan137 Hello and thank you for your comment! Simply send "LOW" to those other rows. You are right to say that they could possibly get briefly reverse-biased as you scan the matrix, but I don't see another practical solution to avoid this. And I'm not sure how much extra life you would gain out the panel from doing so!
@@NERDfirst oh wow, thanks! Just as a recap. Col1 and Col2 are LOW. Row1 and Row2 are LOW. If I want LED(1|1) I make Col1->HIGH and at the same time Row2->HIGH so I have a voltage across LED(1|1) but not LED(1|2) (the one right below LED(1|1)). Is that correct?
Such a nice video! Learned a lot from it.
So how to solve the last question, what's the answer :) ? And I have a Arduino Uno and it seems to have 14 outpins and I guess A0-A5 can also be used to output which is analogIn, can't it? So can Arduino Uno be used in this project?
The last question is can I control it one by one? Recently I'm doing a project which is making a program to light a LED matrix by using a button matrix which is coded in C#. So your video is really inspired and I just want to control the LED matrix by button, which is:when I click one button, the relative LED is bright. Sorry for speaking much, thanks again for your video.
Hello and thank you very much for your comment!
I see you've found the other video - That's the answer, using a shift register!
In order to achieve what you want, coding is required (ie. As far as I know there is no "purely electrical" solution). With code it should be fairly straightforward - Read the buttons, use if statements and calculations to figure out which button it is and therefore which LED to light up, and send it along to the matrix.
Thanks for your reply! And I got one other questions: it looks simple to light all LED in this matrix which is power up all 8 row and let all 8 column low. But if I want to light all the LED except the last one (8,8), what should I do? If I change either one of the column or row, the whole column or row's LED will change, is it right?
So, can you tell me how to do that? Light all LED and dim the last one(8,8)
In order to do this, you will need to use the scanning method described in the video. Because of how the LEDs are connected, there is no "purely electrical" way of doing this.
Understand! Thank u so much!
You're welcome! Glad to be of help =)
So the same technic when using segment display where you multiplex each digit so fast that your eyes can't see that it displays one digit at a time.
Hello and thank you for your comment! Yep, that's exactly right! Multi-digit 7-segment displays are typically also scanned like this.
Im a newbie and have a q - putting the resistor on the negative side of the led..... doesnt that mean that the current from the arduino hitting the plus side of the led has uncontrolled current and could still blow the led?
Hello and thank you for your comment! Since someone asked something similar earlier today, I'll go ahead and copy and paste the answer I've written:
This is ok because of how current behaves in general. A circuit connected in series will have the same resistance and current throughout. So if you apply Ohm's Law to figure out the correct resistor to use, you can add it anywhere in the circuit between 5V → LED, or LED → GND. Since they're the same series circuit, the whole of it will be restricted to the same current, thereby preventing the LED from burning.
Muchas gracias. Please would you explain to me, what means if my matrix is 1088AS and not 1088BS, what is the difference? thank you.
Hello and thank you very much for your comment! While I've never encountered a 1088AS before, it seems like there are some differences in the internal wiring. According to the linked source,
"1088AS = Row Cathode Column Anode.
1088BS = Row Anode Column Cathode."
Ref: forum.arduino.cc/t/parola-library-parola-modules-and-1088as/443418
Thank you very much again for the excellent explanation.
By the way, could you put the circuit diagram that runs from minute 6:25 to 6:45?
Thank you
Hello and thank you for your comment! I don't have a circuit diagram for that unfortunately, but it's not very different from the rest of the circuits you see in the same video when it comes to control of the LED matrix. The only difference is in the addition of a potentiometer, which is on its own circuit, to the Arduino.
If you're not familiar with the potentiometer, you may check out this video: czcams.com/video/EJHFYogSH1U/video.html
@@NERDfirst Thanks. But tell me just where on the circuit do I put the potentiometer?
Sorry but I'm really not sure what "where" means. The potentiometer is not in contact with anything concerning the LED matrix, so it's basically it's own circuit. Hence it can be placed anywhere.
The two outer pins go to 5V and Gnd and the wiper pin goes to an analog input pin.
Very nic video
Hello and thank you for your comment! Glad you liked the video :)
Ive been wanting to make a larger one by soldering 8x8 leds together. I do have one of these you have in the video and this was super helpful.... BUT WHAT ABOUT THE last question? How do you reduce the amount of pins used, someone please direct me
Hello and thank you for your comment! My method used Shift Registers to move out the data serially rather than using a whole bunch of pins! I cover it in greater detail here: czcams.com/video/NM7wXta8crM/video.html
thank you!
You're welcome! Glad to be of help :)
Hello. New to LED engineering. I would have thought that resistors would have to be between battery and LED but apparently as long as it's in there at any point, it will still "save" the LED? Is there a reason why?
Hello and thank you for your comment! This happens because of how current behaves in general. A circuit connected in series will have the same resistance and current throughout. So if you apply Ohm's Law to figure out the correct resistor to use, you can add it anywhere in the circuit between 5V → LED, or LED → GND. Since they're the same series circuit, the whole of it will be restricted to the same current, thereby preventing the LED from burning.
@@NERDfirst thanks for getting back to me. I've watched your video on how to ask questions on the internet. Love all the points you brought up. I'll make sure to implement them as I ask questions!
I am working on an arduino project for a creative engineering course and want to use this 8x8 LED to "draw a photo" by moving using step motors to move the LED and light certain LEDs a certain color. Watching all your relevant videos to see if I can get this to work! Thanks for all the content.
thank you
You're welcome! Glad to be of help =)
Thanks a lot🫡
You're welcome! Glad you liked the video :)
thank you for sharing this, easy to get for a newbie like me :)
You're welcome! Glad to be of help =)
16x16 LEDs matriculation can be made or not, if max7219ic can not be made, how can
Hello and thank you for your comment! You can run four of such matrices off the same arduino if you want. You can scan them separately (as four independent 8x8 matrices), or you can even join the rows and columns such that they scan together. That's what I did for my 2x8x8 shown near the end of the video.
Hi, thanks for the tutorial it's very interesting, my model has the number 1098AS on the side, is it the same for connecting the Pins? If you would answer me you would be doing me a great favor, I couldn't find anything online.
Hello and thank you for your comment! Can you double check if it says 1098AS or 1088AS? I indeed couldn't find anything for 1098, but 1088AS is a common alternative to the one I use which is the 1088BS.
If it is indeed the 1088AS, then it's different in that the anodes and cathodes are flipped. Read more here: forum.arduino.cc/t/difference-1088bs-and-1088as-led-matrix/970035
@@NERDfirst Maybe it's that and the writing has faded, but it looks like 1-0-9 (I thought it was a three because the arc above seems invisible) 8 or B and A-S (the last ones are visible very well)If only those two types exist it will be the second I presume. So is the connection reversed compared to the first? Resistor on the columns and not on the rows?
I think it's good to be very sure before you start wiring things up, to avoid any possibility of damage to your component. But having said that, yes I wasn't able to find anything with the part number "1098". If you're worried, test one LED first, the way I did it in the beginning of the video.
The difference in connections is more about which pins are connected to GND on your microcontroller (since we are flipping the positive and negative pins of the LEDs). Basically swap around all the pins I had connected to GPIO with all the pins I had connected to GND. As for resistors, as long as each LED has its own resistor somewhere in its circuit, that'll do the job.
very cool interested to see how the commercial drivers works do you know?
Hello and thank you for your comment! What do you mean by "commercial driver"? Not really sure what that's referring to in this context.
@@NERDfirst Hi i mean for example the
8x8 LED Matrix MAX7219 that simplify the use in only 5 pins
Hello again! if I'm understanding the datasheet correctly, the MAX7219 consists of an 8-bit decoder to decode a number into its individual bits, plus scanning mechanism to scan the lines. Datasheet here: www.sparkfun.com/datasheets/Components/General/COM-09622-MAX7219-MAX7221.pdf
You can emulate that effect yourself using shift registers! I've done a video on that here: czcams.com/video/NM7wXta8crM/video.html
Is it better to scan the rows then the cols or cols then rows...i am getting some leds dimly lit where i have no pixels set in my array. what is the best method?
Hello and thank you for your comment! Ideally, you'll want to scan in such a way that each resistor takes on the current from a maximum of one LED at any given moment.
This is the easiest way to think of things, as resistors can also be placed at either the rows or the columns.
1) multiplexer 2) how aboit colors? Everyrhing x 3?
Hello and thank you for your comment! I haven't tried this with a multiplexer, but I've introduced the shift register method in this next video: czcams.com/video/NM7wXta8crM/video.html
For colors, I've unfortunately never worked with a color matrix so I can't say. You'll have to look up the datasheet for that one.
Hello friend, can we make max7219 led dot array using ws2812 b, or any suitable LEDs. I have 2 nos max7219 4 in 1,what i want to do, just removed led array and make separate bid size display, to use as a wall clock, thank you.
Hello and thank you for your comment! I don't think it'll work for WS2812 since they already have control circuitry on board and already accept data input for easy control rather than raw signals like this.
At any rate, the max7219 is designed for matrix-style LEDs like the ones shown in the video, so unless you can find one that is pin-compatible, doing a swap like this is probably not a good idea.
@@NERDfirst thanks
look at what i found today! gold
Hello and thank you very much for your comment! Glad you liked the video =)
Sir can you please show the connection diagram i beg you by the way great and most important very simplified code thanks in advance
Hello and thank you for your comment! You can refer to 2:50 where I show the pinout of each pin. Alternatively, you can search for the name of the part to get the formal pinout diagram.
Can someone help me find the problem? I connected the second from the right pin on the side with no text to one of the pins in an Arduino uno. Then I connected the one after (3rd pin from the right) to the Arduino and set the first pin to low with a resistor in between and the second pin to high. Nothing happened.
I also want to add that it’s a really good video and good explanations. Thanks!!!
Hello and thank you for your comment! Glad to be of help =)
Regarding your problem, you might want to snap a picture instead, I really can't make much sense out of your description. Might be good to say what you're expecting too instead of "nothing happened".
can we use shift register ? For interfacing with arduino nano
Hello and thank you for your comment! Yes indeed, that is a great way to work with these matrices - See the follow up video for more: czcams.com/video/NM7wXta8crM/video.html
Sir the program compiled successfully but when I am inserting the 5v pin in the Arduino then the lights on the Arduino are not glowing.
Please sir help me😭😭😭😭
Hello and thank you for your comment! If the lights on your Arduino go off (or become very dim) when you make a connection, this usually indicates a short circuit somewhere. Check your connections.
@@NERDfirst yes sir it was and now it's working thank you very much sir
3:33 that pun
Heh, that wasn't intended at all!
Hello bro, nice video. Can you help me with something? Im trying to scroll some text in the led matriz but I can not use the max7219, can you give me some advice or do you have a video with that topic?
Hello and thank you for your comment! If you're not using a "helper IC" like the MAX7219, then you're in full control of what gets displayed on the matrix (ie. You're just turning pixels on and off). In fact there really isn't any notion of "text", so to speak. You'll just have to repeatedly redraw the letters you are displaying manually.
@@NERDfirst Thanks for replying, do you know any way to redraw the letters? I have been trying with some examples I have found on internet but none of them works with what im doing, I am supposed to control the led matriz with a mcp23017 so I havent found a way to make that "redraw" using the port expansor.
Hmm... Are you able to draw anything on the display at all? You should probably start here. Before thinking about text, try and just get the same smiley face from the video up on the display first.
Once you're familiar with how to light up the individual pixels according to what you want, then you can translate the problem to text. At that point, you'll have to figure out how every character is drawn (ie. Which pixels to light up, and which not to). For scrolling text, keep track of "where" you are on the string, and draw the character indicated at that point based on your logic.
It's possible to program maths formula in this
Hello and thank you for your comment! If you mean to display math formulas, then yes, though you'll have to draw it out yourself.
Are you able to change colour of the led?
Hello and thank you for your comment! The LED matrix used in the video doesn't support this. However, I've seen variants that come with red and green LEDs or even RGB LEDs so you can change the color.
@@NERDfirst alright thanks!
hey, das programm für den arduino ist nicht beim link was soll ich tun, ich brauche das programm und falls man auch eine lybary braucht brauche ich sie auch, es währe nett wenn du mir helfen würdest, denn ich kann meine led matrix seit 2 jahren nicht benutzen
hey, the program for the arduino is not at the link what should i do, i need the program and if you also need a lybary i need it too, it would be nice if you would help me, because i have been able to use my led matrix for 2 years Do not use
Hello and thank you for your comment! I was able to find the code in the link. Click the bitbucket link, click the "Smiley" folder, and click the "Smiley.ino" file.
@@NERDfirst OK thanks, you hab a cool kanal
can you explain how the code workS?
Hello and thank you for your comment! Your question is quite broad so I'll answer broadly as well - The code performs the "scanning" behavior described in the video. Let me know if you're unsure about specific areas of code.
can I use the nano to control all 8*8 led? how?
Hello and thank you for your comment! You can, but you'll need a little bit of external help - I don't believe the Nano itself has enough pins to drive the matrix on its own (you'll need 16 pins!), but you can use components like the Shift register to help you. I've done a video on that as well here: czcams.com/video/NM7wXta8crM/video.html
where can i find the code? the link doesnt work
Hello and thank you for your comment! Thank you for bringing this to my attention - I recently revamped my site and some links broke.
For now, have the direct Google Drive link to the code: drive.google.com/folderview?id=0B2Ia5aQpQ8CnY1Z2Z3pKVGdUc1k
12:00 Shift Registers 74HC595?
Hello and thank you for your comment! Indeed! I talk more about that here: czcams.com/video/NM7wXta8crM/video.html
F###ing amazing!!!
Hello and thank you for your comment! Glad to be of help =)
@@NERDfirst : loved the video dude ... Thanks.
You're welcome!
how many colors does this has
Hello and thank you for your comment! The matrix shown in the video only has one color (red). You may find other models with two colors (Red and Green) or even RGB.
They could be powered by using only 6 pins
Hello and thank you for your comment! Indeed I discuss this in another video where I use 3 data pins plus power: czcams.com/video/NM7wXta8crM/video.html
just use 8 shift registers
Hello and thank you for your comment! Indeed! See the sequel here where I explore a few methods including running two of these matrices with several shift registers: czcams.com/video/NM7wXta8crM/video.html
nice
Thank you for your comment! Glad you liked the video =)
999 likes making it 1000
Informative... but presentation would be even better without all the "you know" and "well"...
Hello and thank you for your comment! Yeah, I need to watch my fillers for sure =)
You cool is nice
thanks bro
You're welcome! Glad you liked the video =)
:-0 woah
Hello and thank you for your comment! Hope you enjoyed the video =)