Forum - MCS Electronics

 

FAQFAQ SearchSearch RegisterRegister Log inLog in

16x32 RGB LED matrix panel
Goto page 1, 2  Next
 
Post new topic   Reply to topic    www.mcselec.com Forum Index -> Share your working BASCOM-AVR code here
View previous topic :: View next topic  
Author Message
O-Family

Bascom Member



Joined: 23 May 2010
Posts: 108
Location: Japan

japan.gif
PostPosted: Sun Jan 11, 2015 2:43 pm    Post subject: 16x32 RGB LED matrix panel Reply with quote

Adafruit 16x32 RGB LED matrix panel Control program.
https://learn.adafruit.com/32x16-32x32-rgb-led-matrix/overview

8 colors is limited, but it also works with SRAM little Mega chip.
Cascade connection is possible to four pieces with a panel.
Use the graphic LCD font of BASCOM.
Any font also possible.



Drawing test demo video.
http://youtu.be/34qNlktiFP8

Examples of production circuit video.
http://youtu.be/CWLSfWztm2k
http://www.ne.jp/asahi/o-family/extdisk/RGB_LED_Panel/RGB_LED_Panel_V2_Cir-En.pdf


Last edited by O-Family on Mon Jan 29, 2018 9:32 am; edited 1 time in total
Back to top
View user's profile Visit poster's website
yahi92

Bascom Member



Joined: 23 Feb 2014
Posts: 25

PostPosted: Mon Apr 06, 2015 11:11 am    Post subject: Reply with quote

Hello O-Family

thanks for sharing.

Could you please guid how can I change the program for 1R (single color)P10 module?

thanks.
Back to top
View user's profile
O-Family

Bascom Member



Joined: 23 May 2010
Posts: 108
Location: Japan

japan.gif
PostPosted: Mon Apr 06, 2015 1:34 pm    Post subject: Reply with quote

Hi yahi92

What kind of circuit composition is the module?
Are there a catalog of goods and a manual?

O-Family
Back to top
View user's profile Visit poster's website
yahi92

Bascom Member



Joined: 23 Feb 2014
Posts: 25

PostPosted: Mon Apr 06, 2015 2:58 pm    Post subject: Reply with quote

Thanks for answering

Yes there is schematic.

Thanks again.
Back to top
View user's profile
O-Family

Bascom Member



Joined: 23 May 2010
Posts: 108
Location: Japan

japan.gif
PostPosted: Tue Apr 07, 2015 1:04 am    Post subject: Reply with quote

The circuit composition is similar, so there is a possibility that work without change.
I think it can be changed so that it may match your LED by a little change.
Back to top
View user's profile Visit poster's website
yahi92

Bascom Member



Joined: 23 Feb 2014
Posts: 25

PostPosted: Tue Apr 07, 2015 4:18 am    Post subject: Reply with quote

So could you please help me to change it?
thanks.
Back to top
View user's profile
O-Family

Bascom Member



Joined: 23 May 2010
Posts: 108
Location: Japan

japan.gif
PostPosted: Tue Apr 07, 2015 10:33 am    Post subject: Reply with quote

I do not have the P10 LED.
Therefore, at first you operate a program of the RGB LED, please show whether become what result.
Back to top
View user's profile Visit poster's website
sangwoo

Bascom Member



Joined: 19 Nov 2016
Posts: 1

PostPosted: Fri May 04, 2018 2:08 pm    Post subject: thanks for sharing!! Reply with quote

Hello O-Family
thanks for sharing!!

Is it possible to scan 1/16?
My panel is 1/16 scan with A, B, C, D.
I don\'t know how to code it as ASM
Back to top
View user's profile
O-Family

Bascom Member



Joined: 23 May 2010
Posts: 108
Location: Japan

japan.gif
PostPosted: Sun May 06, 2018 1:52 pm    Post subject: Reply with quote

Hi, sangwoo

This project is made for a 16x32 dot panel.
When changing to a 32x32 dot panel, it is necessary to change the drawing subroutine and the interrupt routine greatly.
Many efforts are necessary to correct it from the structure of the display memory.
If you challenge it, I can give you advice.

Best regards
O-Family
Back to top
View user's profile Visit poster's website
Paulvk

Bascom Member



Joined: 28 Jul 2006
Posts: 1068
Location: SYDNEY

australia.gif
PostPosted: Sat May 12, 2018 2:46 pm    Post subject: Reply with quote

Hello O-Family
A little help with 16 x 64 panels one color it almost works
with Ledcolor = 0 : Ledback = 1
just need to push out 8 characters each time
Regards Paul
Back to top
View user's profile
O-Family

Bascom Member



Joined: 23 May 2010
Posts: 108
Location: Japan

japan.gif
PostPosted: Sun May 13, 2018 9:04 am    Post subject: Reply with quote

Hi,Paulvk

Thank you for your comment.
By changing the [Const] line at the beginning of this program, you can connect panels and display 16x32 , 16x64 , 16x96 , 16x128.

Since sangwoo request is 32 dots on the Y axis, it is necessary to double the LED refresh rate.
Back to top
View user's profile Visit poster's website
Paulvk

Bascom Member



Joined: 28 Jul 2006
Posts: 1068
Location: SYDNEY

australia.gif
PostPosted: Mon May 14, 2018 9:10 am    Post subject: Reply with quote

Hello O-Family
Its not that easy as change constants my display has A , B , C , D connections
the D selects the second line of displays
The first line displays but when the second is to be displayed the D needs to be a high
my display has 74hc595 x 8 for 16 led modules
I am slowly reading through your ASM trying to understand it
I have no experience with assembler yet
but at one time no basic and taught myself
I will keep working and see how I go
Regards Paul
Back to top
View user's profile
O-Family

Bascom Member



Joined: 23 May 2010
Posts: 108
Location: Japan

japan.gif
PostPosted: Mon May 14, 2018 1:53 pm    Post subject: Reply with quote

Hi,
I wrote a comment in the assembler code of the interrupt routine.
To set the Y axis to 32 dots, change the part where the row address is set to the port and the maximum value from 8 to 16.
Please question as for the unclear point.
Code:

   '
   '  ************************************
   '  * Timer2 Compare Match A interrupt *
   '  ************************************
   '
$notransform On                                             'Do not automatically correct instructions that use R23 or R0.
   '
$asm
Tint2a:
   PUSH R2
   IN R2,SREG                                               'Saved status register.
   PUSH R0
   PUSH R1
   PUSH XL
   PUSH XH
   ;
   LDS XL,{rowadr}                                          'Read the row address of the LED buffer.
   LDI XH, Ledbuff_Length                                   'Number of horizontal axis bytes of LED buffer. (32 horizontal dots * number of panels + scroll buffer)
   MUL XH,XL                                                'Calculate the position of the LED buffer.
   Loadadr Ledbuff(1) , X                                   'RGB LED panel The start address of the data buffer.
   ADD XL,R0                                                'Add the row address to the LED buffer.
   ADC XH,R1
   ;
   LDS R0,{Transfer_Length}                                 'The number of bytes to transfer to the LED buffer.
Tint2a1:
   LD R1,X+                                                 'Read lit data from the LED buffer.
   Out Panel_rgb , R1                                       'Set RGB data.
   SBI Panel_clk_p, Panel_clk_b                             'Set the RGB LED panel [CLK] to [H].
   CBI Panel_clk_p, Panel_clk_b                             'Set the RGB LED panel [CLK] to [L].
   DEC R0
   BRNE Tint2a1                                             'If Transfer end for the number of horizontal axis bytes? Else
   ;
   LDS XL,{rowadr}                                          'Read row address.
   SBI Panel_oe_p, Panel_oe_b                               'Set the RGB LED panel [OE] to [H]. (Turn off all LEDs)
   SBI Panel_lat_p, Panel_lat_b                             'Set the RGB LED panel [LAT] to [H].
   CBI Panel_lat_p, Panel_lat_b                             'Set the RGB LED panel [LAT] to [L].
   ;
   CBI Panel_a_p, Panel_a_b                                 'Set the row address to the port.
   CBI Panel_b_p, Panel_b_b
   CBI Panel_c_p, Panel_c_b
   SBRC XL,0
   SBI Panel_a_p, Panel_a_b
   SBRC XL,1
   SBI Panel_b_p, Panel_b_b
   SBRC XL,2
   SBI Panel_c_p, Panel_c_b
   INC XL                                                   'Increase row address.
   ANDI XL,$07
   STS {rowadr},XL                                          'Save the row address.
   ;
   POP XH
   POP XL
   POP R1
   POP R0
   Out Sreg , R2                                            'Return status register.
   POP R2
   CBI Panel_oe_p, Panel_oe_b                               'Set the RGB LED panel [OE] to [L].
   RETI
$end Asm


   '
   '  ************************************
   '  * Timer2 Compare Match B interrupt *
   '  ************************************
   '
$asm
Tint2b:
   PUSH R24
   SBI Panel_oe_p, Panel_oe_b                               'Set the RGB LED panel [OE] to [H].
   LDI R24,$FF
   STS {Ledintf},R24                                        'Set the LED display interrupt generation flag.
   POP R24
   RETI
$end Asm
   '
$notransform Off
 
Back to top
View user's profile Visit poster's website
Paulvk

Bascom Member



Joined: 28 Jul 2006
Posts: 1068
Location: SYDNEY

australia.gif
PostPosted: Tue May 15, 2018 12:01 pm    Post subject: Reply with quote

Hello O-Family
Thank you for making time
the comments help understand what the program is doing
I was beginning to understand it
With my display I need to send the 64 bytes for first row
then bring "D" to high
then send bytes 65 to 128

I only have one color display RED
R1 is the only data input
there are 8 x 74hc595
and two 74hc138 to run the rows

Regards Paul
Back to top
View user's profile
O-Family

Bascom Member



Joined: 23 May 2010
Posts: 108
Location: Japan

japan.gif
PostPosted: Wed May 16, 2018 12:20 am    Post subject: Reply with quote

It just changes the DMA cycle from 8 to 16.
According to the structure of the LED buffer, only the bits of Red need be used.
Of course, also need to change the drawing subroutine.
Code:

   ;
   CBI Panel_a_p, Panel_a_b                                 'Set the row address to the port.
   CBI Panel_b_p, Panel_b_b
   CBI Panel_c_p, Panel_c_b
   CBI Panel_d_p, Panel_d_b
   SBRC XL,0
   SBI Panel_a_p, Panel_a_b
   SBRC XL,1
   SBI Panel_b_p, Panel_b_b
   SBRC XL,2
   SBI Panel_c_p, Panel_c_b
   SBRC XL,3
   SBI Panel_d_p, Panel_d_b
   INC XL                                                   'Increase row address.
   ANDI XL,$0F
   STS {rowadr},XL                                          'Save the row address.
   ;
 
Back to top
View user's profile Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic    www.mcselec.com Forum Index -> Share your working BASCOM-AVR code here All times are GMT + 1 Hour
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You cannot download files in this forum