|
|
View previous topic :: View next topic |
Author |
Message |
mekohler
Joined: 07 Dec 2007 Posts: 1
|
LED Matrix Table, Debug help! |
Posted: Fri Dec 07, 2007 1:40 am |
|
|
Been working on an LED matrix table for a few months, with the help of some guy I found online. Here is the circuit schem:
http://www.injektilo.com/Circuit%20Progress/Final%20Circuit.jpg
The matrix itself is composed of a 25 cubicles (5 x 5)...each cubicle has 6 LED's in parallel (although the schem shows 8)
http://www.injektilo.com/Circuit%20Progress/8%20Led%20Matrix%20Exampl.jpg
Everything works, but the LED's are not as bright as when I initially tested each cubicle with a 9V battery. You can barely tell when a cubicle is lit through the table's diffusive glass!
Here is the PIC code...in this example I first have the lower leftmost cubicle light up, then all of them...this can be changed to as many patterns and stuff as I want, obviously:
Code: |
#include <pic.h>
__CONFIG(INTIO & WDTDIS & PWRTEN & MCLRDIS &
UNPROTECT \
& UNPROTECT & BORDIS & IESODIS & FCMDIS);
int i, j, k, n, Dlay, CurLetter;
const char Letters[] = {
0b10000,
0b00000,
0b00000,
0b00000,
0b00000,
0b11111,
0b11111,
0b11111,
0b11111,
0b11111};
main()
{
PORTA = 0; // All Bits are Low
PORTC = 0b000001; // Start With Top Left
CMCON0 = 7; // Turn Off Comparitors
ANSEL = 0; // Turn Off ADC
TRISA = 0b101000; // RA5/RA3 Inputs
TRISC = 0;
CurLetter = 0; // Start With first char
while (1 == 1) // Loop Forever
{
for (Dlay = 0; Dlay < 25; Dlay++)
for (i = 0; i <5>> 2) & 0b010000;
PORTC = j & 0b111111;
PORTA = k + i;
for (n = 0; n < 259; n++); // 4ms Delay
}
CurLetter = (CurLetter +1) % 2; //Increment Letter
|
Now I used resistors in the 6 parallel LED's assuming they would get 12V, here are some measurements I made having row 1 and column 1 lit all the time:
Voltage:
1) From PSU Ground to 1 cubicle COLUMN input: 5.25 V
2) From PSU Ground to 1 cubicle ROW input: 3.85 V
3) From ROW input to COLUMN input of a cubicle: .86V (I dont think this means anything, since this is an incorrect way to measure V)
Current:
4) Removing one LED cubicle in the all lit column and connecting column output of LED below and column input of LED above to the meter: 2.53 using 20mA setting/resolution
5) Removing one LED cluster in the all lit row and connecting row ouput of LED to the left and row input of LED to the right to the meter: 12.17 using 20mA setting/resolution
6) Removing the top left LED cubicle and connecting row output from my UNL chip and column output from LED cluster below it: 116 using 200 mA resolution
The guy I am working with says he think the problem lies in the coding...that I am using pulses instead of just on or off states. I'm not sure how to find the duty cycle or account for it. I just want to find a way to make them brighter, as they are 12000mcd LED's.
I know this is alot of information, but I am all finished, It's just too damn dim!
A video of it not in my table with partitions...it looks brighter in the camera but it's not bright enough to really shine through diffusive glass irl.
http://www.youtube.com/watch?v=kuMaE_b4Wg4 |
|
|
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
|
|
|
SET
Joined: 15 Nov 2005 Posts: 161 Location: Glasgow, UK
|
|
Posted: Fri Dec 07, 2007 10:14 am |
|
|
Code: | CurLetter = 0; // Start With first char
while (1 == 1) // Loop Forever
{
for (Dlay = 0; Dlay < 25; Dlay++)
// I doubt this next line compiles..
for (i = 0; i <5>> 2) & 0b010000;
PORTC = j & 0b111111; // why AND with 1's?
PORTA = k + i; // what changes 'k'?
for (n = 0; n < 259; n++); // 4ms Delay
}
// end of while, so CurLetter never changes..
CurLetter = (CurLetter +1) % 2; //Increment Letter |
|
|
|
|
|
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
|
Powered by phpBB © 2001, 2005 phpBB Group
|