Thank you Mario for the inspiration. I tried another solution because I didn't understood the need of the "-abs(...)" part of code and I have also two problems with your code: the text was mirrored (as other said) and I didn't want to turn the matrix 90° to see the text in the right way. So I share here my solution: .... void loop() { movecol = 0; while(movecol
Tip: when looping trough the columns first SelectRow(0) which effectively deselects all rows then set the columns and after that select the actual row. This will prevent the pixels 'bleeding' from the previous row
Hi when i tried 1 +ve and 1-ve 3 to 4 led was on.i think my metrix pin out is not similar as yours can you do another metrix pin out as led metrix 1088BS
Bro I was able to use ur logic to make my own code after looking at ur code with a raspberry Pi and two 74hc595n ICs to control a led matrix in c++ with pigpio Library. Thank you so much bro❤😊
@@marios_ideas I see now its already been commented on below, its at 3:48 to 4:04. NB: Im searching for code for a mini word clock using this size LED matrix, Arduino controller , RTC breakout board and no multiplexer if can assist?
This should be straight forward. You either stack 4 MAX7219 with the matrixes yourself or you can buy the modulesready to use. And then look at the Parola library. It is meant for scrolling the text but I think if you look at the library examples and figure out how to just display the content without writing low level complicated code. Then you just create string out of RTC output and send it to the matrixes. Alternatvely you can wait few weeks as this is one of the videos I am planning to do in the neerer future
this is the same concept of how letters, symbols or images were displayed on screens when commodore was used...... or on modern monitor screens when you press any key on keyboard?
By decreasing the delay. I have not watch this video in a long time. But I am fairly certain there is delay(variable); line anad the variable is set to a certain value and the it is decreased so the delay inbetween frames gets smaller
The loop x5 is for persistance of vision. You display a current 8x8 part of the text with the two inner loops . If you did not have the thrird loop the loop function would complete and you would go to execute loop function with the changed position. That would mean that the text would scroll way to quickly and you would not see the right effect. With that extra loop you are displaying each position 5 times slowing down the scol. You could even make this 5 a variable changed with potentiometer and theis way you can control the speed of scrolling. If it was e.g. 7 the scrolling would be slower
I would be quite complex. you would connect the rows of both matrixes together and connect them to 8 pins of Arduino. And then connect all 16 columns to Arduino 16 pins. so you need 24 pins. I think in this case Arduino Uno and Nano are out of the question and you need Arduino Mega. It is easier with the MAX7216 :)
In this video you have the exact layout of columns from C1 to C8 so If you add another the columns of this display become C9-16. You connect rows of both displays so R1 is connected to R9 R2 to R9 and so on. But thie you ave to program multiplexing accross both matrixes. So the code would be different
Thanks, i will be using omega and the 16 pins, my matrix is home made using one color leds . I just need your test code you did to see if all led is working to be tied or map to a Pot . The sequence will be control with the Pot . Not automatic as demonstrated here
@@marios_ideas I mean it's more accurate if there are separate buttons for letters,like can u just tell me the extra components needed to implement it,I'll try to figure out the rest😄😄, thanks for ur reply 👍🏻
@Mohammed Kamran @Mohammed Kamran This will be crazy amount of work. I would simplyfy this by using something like this ruclips.net/video/Iueek8hVl8E/видео.html to type the message. Not sure you want to type on the display in real time or prepare the static message to display
My bad ... Doing a video like that is not that difficult to make a mistake like this. You moste often notice it when video is already cut and uploaded. So not the firs mistake and probably not the last one.Please check the code and there you will find actual connectivity data .
@@marios_ideas :-) No problem - I just followed the video closely and saw that there was one spot you never mentioned so I stuck it in there. I never got the program to upload to the board so I had to go another way anyway.
Looking for some minor advice. I am working on a matrix project where I plan to create my own matrix, entirely. Obviously the concept is the same. I then plan to use the matrix on a project I am working on and am looking for an Arduino alternative. Reason being the project does not require the full functionality of the Arduino, just the clock, memory, and cpu functions. I also plan to mass produce this project (To a minor extent) with that being said I need a budget alternative to the Arduino, looking for a variation of something opensource that i could base my motherboard off of. Any tips or idea? Thanks in advance.
Well then you need to have three or four sligtly different 8x8 maps that make the animation and display them one by one. Just like you would do any stop motion animation. If you liked this video please give it a like. It hals me a lot
Please check a space invaders animation I did in my different video It was not for 8x8 led matrix but the concept is the same. ruclips.net/video/VbEGfZIjpdg/видео.html
If you select a row and send Low signal to it with Select row function that connects all cathodes of leds in that row to ground and then if you select a column by sending High signal to it meaning all anodes are connected to 5 v. Then for LED which is in place that this colum and row crossess electricity can frlow and it lits
Hello! super clear video, thank you very much. I'm a bit confused, did you mean to write C1, C1, C1... in the definition of the bottom function at 7:15 ? Because C1, C2, C3... i thought was what you meant, but im not sure. Otherwise very clear video!
Sure. I uploaded STL file here create.arduino.cc/projecthub/mdraber/controlling-8x8-led-matrix-without-drivers-libraries-585371?ref=user&ref_id=1474727&offset=4 under CUSTOM PARTS AND ENCLOSURES. Let me knwo if you could download it?
set_led_in_active_row(i+1,marios_ideas [j] [(i+position)+abs((i+position)/54)*54]); firs of all i want to thank you about the content it was useful for me and taught me the way of matrices are working but i still got problem with understanding the way of scrolling text and main thing that i didn't understanding is this line that i mention it in the top how did you dealing with columns and why there's a subtraction mark ( - )between [ (i + position )and ( i + position / 54 )* 54] i will be grateful if you explain it for me thanks
It is fairly simple. You always display 8x8 leds this in the video is shown by moving yellow farme if I am not mistaken. The exact 8 columns to be displayed is selected by variable position. It indicates which is the first column to display and then 7 subsequent columns are displayed as well. When the loop function is executed we increase the position by one so next time around we display 8 columns shifted by one to the right. So this is all great as long as position is within 54 columns of the Mario's Ideas bitmap. Loop is executed indefinetly so soon you may look at position being equal e.g to 1000. Then we are dividing the position by 54 and take the absolute value from that division and then multiply it by 54 and substract it from position. This way we remove equivalent of all 54 led cycles that happened before and this way we achieve the smooth transition so the text starts all over again. Did I make myself clear?
Don't forget to like the video if you enjoyed it. It helps me a lot with youtube algorithm. This video also shows doing things a bit harder way. Please check also this video ruclips.net/video/SGjQ-E3UD7AD/видео.htmlon't forget to like the video if you enjoyed it. It helps me a lot with youtube algorithm. This video also shows doing things a bit harder way. Please check also this video ruclips.net/video/SGjQ-E3UD7A/видео.html. I will also in the future do a video on parola library which is dedicated to scrolling text on multiple matrixes like this one
Hello Mario, thanks very much for this nice video. but I want to ask about SelectRow(j+1); and Set_LED_in_Active_Row(i+1 ,Cat[j][i]); why j+1 and i+1 I didn't got this, would you please identify it for me. thanks for your effort.
it's because the i and j variables begin at the value of 0 at the beginning of the for loop and when they reach 7 which is < 8 the loop ends so basically their values are from 0 to 7 the +1 is to enter a number from 1 to 8
Be careful, this circuit is wrong, you need to put drivers for both the positive and negative poles of the LEDs with a resistor to avoid overloading the microcontroller with current... and then there is a problem in the software called "led ghosting" where some leds are turned on with lower brightness when they should be turned off.
You are amazing, I could not find any resource that helped me understand this concept, then I found this video :)
Glad you liked it!
@@marios_ideas please explain c1 in se led active in row function
Finally a video that got my LED matrix to work, Thank You......
Great :) If it was off help don't forget to like it:)
Thank you Mario for the inspiration. I tried another solution because I didn't understood the need of the "-abs(...)" part of code and I have also two problems with your code: the text was mirrored (as other said) and I didn't want to turn the matrix 90° to see the text in the right way. So I share here my solution:
....
void loop() {
movecol = 0;
while(movecol
Tip: when looping trough the columns first SelectRow(0) which effectively deselects all rows then set the columns and after that select the actual row. This will prevent the pixels 'bleeding' from the previous row
Thanks for the tip. I know exatly what you mean by bleeding. I will connect the components again and see what differenence it makes:)
You are a genious! Thank you so much
My man with the good ideas😄
this is the only video that works. if you don't have 2 breadboards try to get 16 dupont wires and connect them
Hi, a very good and clear explanation video. You are using common cathode matrix, but the circuit diagram at 0:36 , is a common anode matrix, right?
Rats ... missed that. you are right. Thanks for spotting this.
Hi when i tried 1 +ve and 1-ve 3 to 4 led was on.i think my metrix pin out is not similar as yours can you do another metrix pin out as led metrix 1088BS
Bro I was able to use ur logic to make my own code after looking at ur code with a raspberry Pi and two 74hc595n ICs to control a led matrix in c++ with pigpio Library. Thank you so much bro❤😊
Thanks Mario, very helpful. this video inspired me, to create snake with the 8x8 led matrix.
Glad this video was of help:)
Very well explained - great help. NB: You have both r6 and r5 going to d7 - r5 needs to go to d6 ;)
Can you point to the exact time in the video.
@@marios_ideas I see now its already been commented on below, its at 3:48 to 4:04. NB: Im searching for code for a mini word clock using this size LED matrix, Arduino controller , RTC breakout board and no multiplexer if can assist?
@@alheeley Updated the video description. Thanks for spotting this.
This should be straight forward. You either stack 4 MAX7219 with the matrixes yourself or you can buy the modulesready to use. And then look at the Parola library. It is meant for scrolling the text but I think if you look at the library examples and figure out how to just display the content without writing low level complicated code. Then you just create string out of RTC output and send it to the matrixes. Alternatvely you can wait few weeks as this is one of the videos I am planning to do in the neerer future
@@marios_ideas But any way of tackling it with no multiplexer? No Maxx chip?
Thanks! Why does row1 start at R2? And why do columns use hex after 13?
Thank you Mario. But our Matrix is in another castle!
this is the same concept of how letters, symbols or images were displayed on screens when commodore was used...... or on modern monitor screens when you press any key on keyboard?
How does the displaying of leds speed up over time in the second example?
By decreasing the delay. I have not watch this video in a long time. But I am fairly certain there is delay(variable); line anad the variable is set to a certain value and the it is decreased so the delay inbetween frames gets smaller
Thanx for the explaination, Mario... very clear...
Glad it was helpful!
this is the perfect thing I was looking for.
Glad you found it useful:)
i am not understanding C1 in set led active row function
Hi, excelent video.
When i tried the text scrolling, the text scroll to the other direction (move right to left). Why this is happening?
It maybe because of the different pinout of max7219 module.
Cheers Mario Dude! TFS, GB :)
Thanks:)
thanks for your explanation
i understand a little bet
but may point is split into tow things
first one
why there's loop x
The loop x5 is for persistance of vision. You display a current 8x8 part of the text with the two inner loops . If you did not have the thrird loop the loop function would complete and you would go to execute loop function with the changed position. That would mean that the text would scroll way to quickly and you would not see the right effect.
With that extra loop you are displaying each position 5 times slowing down the scol. You could even make this 5 a variable changed with potentiometer and theis way you can control the speed of scrolling. If it was e.g. 7 the scrolling would be slower
4:08 how would you map this exact 16 pin setup to a Pot is what i would like to know 4:08
I would be quite complex. you would connect the rows of both matrixes together and connect them to 8 pins of Arduino. And then connect all 16 columns to Arduino 16 pins. so you need 24 pins. I think in this case Arduino Uno and Nano are out of the question and you need Arduino Mega. It is easier with the MAX7216 :)
In this video you have the exact layout of columns from C1 to C8 so If you add another the columns of this display become C9-16. You connect rows of both displays so R1 is connected to R9 R2 to R9 and so on. But thie you ave to program multiplexing accross both matrixes. So the code would be different
Thanks, i will be using omega and the 16 pins, my matrix is home made using one color leds . I just need your test code you did to see if all led is working to be tied or map to a Pot . The sequence will be control with the Pot . Not automatic as demonstrated here
hi Mario. Nice video. How do you do the diffusion panel?
I have a 3d printer. Design it in Tinkercad
@@marios_ideas Thank you! and for the explanation in the video.
How can I connect 26 buttons and make a keyboard,like each button should trigger different LEDs to display different letter patterns?
that seems a bit too complicated and you would need. not sure why you need 26 buttons
@@marios_ideas I mean it's more accurate if there are separate buttons for letters,like can u just tell me the extra components needed to implement it,I'll try to figure out the rest😄😄, thanks for ur reply 👍🏻
@Mohammed Kamran @Mohammed Kamran This will be crazy amount of work. I would simplyfy this by using something like this
ruclips.net/video/Iueek8hVl8E/видео.html to type the message. Not sure you want to type on the display in real time or prepare the static
message to display
@@marios_ideas alright I'll check it out,thanks for ur help😄😄
Why if we choose row 1 & column 1, R1 is low and C1 is high, shouldn't both of them be high, could someone explain it please?
The electricity flows from positive (+ or 5V) to Negative (- or GND). This is why to activate the row we send low and to activate column we send HIGH
@@marios_ideas thanks!
At min 4:04 you say R5 to D7 - but at 3:48 you already said R6 to D7 ...?
My bad ... Doing a video like that is not that difficult to make a mistake like this. You moste often notice it when video is already cut and uploaded. So not the firs mistake and probably not the last one.Please check the code and there you will find actual connectivity data
.
@@marios_ideas :-) No problem - I just followed the video closely and saw that there was one spot you never mentioned so I stuck it in there. I never got the program to upload to the board so I had to go another way anyway.
Looking for some minor advice. I am working on a matrix project where I plan to create my own matrix, entirely.
Obviously the concept is the same. I then plan to use the matrix on a project I am working on and am looking for an Arduino alternative. Reason being the project does not require the full functionality of the Arduino, just the clock, memory, and cpu functions. I also plan to mass produce this project (To a minor extent) with that being said I need a budget alternative to the Arduino, looking for a variation of something opensource that i could base my motherboard off of. Any tips or idea? Thanks in advance.
ATtiny85? It has just few pins costs below 1EUR and is Arduino compatible
@@marios_ideas THAT'S PERFECT, Thank you!!!
Amazing! Thanks so mucth i learn very muthc but how can make efects for exmple the move the somthing in his body or pacman open and close the mouth?
Well then you need to have three or four sligtly different 8x8 maps that make the animation and display them one by one. Just like you would do any stop motion animation. If you liked this video please give it a like. It hals me a lot
Please check a space invaders animation I did in my different video It was not for 8x8 led matrix but the concept is the same.
ruclips.net/video/VbEGfZIjpdg/видео.html
I don't understand something though. You have not connected anything to a ground pin. How can current flow? Or am I missing something?
If you select a row and send Low signal to it with Select row function that connects all cathodes of leds in that row to ground and then if you select a column by sending High signal to it meaning all anodes are connected to 5 v. Then for LED which is in place that this colum and row crossess electricity can frlow and it lits
Hello, for me it worked out that i had to swap the highs and lows. Otherwise it worked perfectly!thanks
Hello! super clear video, thank you very much. I'm a bit confused, did you mean to write C1, C1, C1... in the definition of the bottom function at 7:15 ? Because C1, C2, C3... i thought was what you meant, but im not sure. Otherwise very clear video!
Of course. Thanks for spotting this. I will add info in the comment section.
If you go to the code link you will see that there everthing is ok.
Wow fantastic! Thank you. Would it be possible to use your file for the 3D print?
Subscriber :)
Sure. I uploaded STL file here create.arduino.cc/projecthub/mdraber/controlling-8x8-led-matrix-without-drivers-libraries-585371?ref=user&ref_id=1474727&offset=4
under CUSTOM PARTS AND ENCLOSURES. Let me knwo if you could download it?
@@marios_ideas Perfect, thank you so much. It downloaded and opened in Cura just fine :)
How do i convert a custom text into the integer array?
The way I did it here is very time consuming. But check my other video. ruclips.net/video/oZDFh95Tt_E/видео.html
Hi, really love your project. how do I generate my own array of bits to display the text of my choice. thanks
The way I did it here is very time consuming. But check my other video. ruclips.net/video/oZDFh95Tt_E/видео.html
09:58 why is there polish? (im from poland btw)
Moźe dlatego że też jestem Polakiem:)
@@marios_ideas to fajnie :) świetny poradnik, nawet dla początkujących
set_led_in_active_row(i+1,marios_ideas [j] [(i+position)+abs((i+position)/54)*54]);
firs of all i want to thank you about the content it was useful for me and taught me the way of matrices are working
but i still got problem with understanding the way of scrolling text
and main thing that i didn't understanding is this line that i mention it in the top how did you dealing with columns
and why there's a subtraction mark ( - )between [ (i + position )and ( i + position / 54 )* 54] i will be grateful if you explain it for me
thanks
It is fairly simple. You always display 8x8 leds this in the video is shown by moving yellow farme if I am not mistaken. The exact 8 columns to be displayed is selected by variable position. It indicates which is the first column to display and then 7 subsequent columns are displayed as well. When the loop function is executed we increase the position by one so next time around we display 8 columns shifted by one to the right. So this is all great as long as position is within 54 columns of the Mario's Ideas bitmap. Loop is executed indefinetly so soon you may look at position being equal e.g to 1000. Then we are dividing the position by 54 and take the absolute value from that division and then multiply it by 54 and substract it from position. This way we remove equivalent of all 54 led cycles that happened before and this way we achieve the smooth transition so the text starts all over again. Did I make myself clear?
Don't forget to like the video if you enjoyed it. It helps me a lot with youtube algorithm. This video also shows doing things a bit harder way. Please check also this video ruclips.net/video/SGjQ-E3UD7AD/видео.htmlon't forget to like the video if you enjoyed it. It helps me a lot with youtube algorithm. This video also shows doing things a bit harder way. Please check also this video ruclips.net/video/SGjQ-E3UD7A/видео.html. I will also in the future do a video on parola library which is dedicated to scrolling text on multiple matrixes like this one
Now I understand thanks to you!
You are welcome:)
Hello Mario, thanks very much for this nice video.
but I want to ask about
SelectRow(j+1);
and Set_LED_in_Active_Row(i+1 ,Cat[j][i]);
why j+1 and i+1
I didn't got this, would you please identify it for me.
thanks for your effort.
it's because the i and j variables begin at the value of 0 at the beginning of the for loop
and when they reach 7 which is < 8 the loop ends
so basically their values are from 0 to 7
the +1 is to enter a number from 1 to 8
Thanks, Mr. Mario
Glad you liked it
Please give me last code please 🥺
The link to the code is in video description
@@marios_ideas yes but last program isn't available 🥺 please give me sir
The subscribe one? Unfortunately i did not save this Design
Buen vídeo lo entendí bien a pesar de q no hablo ingles
Thx:)Give video a like if you enjoyed it. It helps to grow my channel
thank you
thanks
you are welcome;)
Thx
My pleasure:) like and subscribe to my channal. Also consider supporting it.
Be careful, this circuit is wrong, you need to put drivers for both the positive and negative poles of the LEDs with a resistor to avoid overloading the microcontroller with current...
and then there is a problem in the software called "led ghosting" where some leds are turned on with lower brightness when they should be turned off.
This is a very old video. I am aware of those issues. Isn’t that problem also called “led bleeding”?
Автор, тебе нужно не видео для ютуба записывать а для начала научиться не писать говнокод
Give me the link to your code, I will start there:)
@@marios_ideas «запахи кода» - можешь начать с этого
thanks
You're welcome.