PLEASE put resistors in series with the LEDs. LEDS ARE NOT INCANDESCENT LAMPS!!
PLEASE put resistors in series with the LEDs. LEDS ARE NOT INCANDESCENT LAMPS!!
Charles Linquist
Even so, depending on how much current you push thru the LEDs there might be (probably is) to much current going into B0-B3. If the LED current is 10mA and you set B4-B7 there will be a total current of 40mA going into B0-B3 when you pull them low. That's beyond the specification for the PIC I/O pin.It does not show on my drawing but I have a resistor on each led's anode
Yes I realized that's what you meant after responding. I am presently in a test environment and just using a LED bar graph type and pushing +/-5mA
My final product will probably have transistors for each row/col.
If I can just understand how to code using BAM, the rest will be simple. I have read many websites about BCM/BAM but for some reason I am not getting it. I have yet to find the one explanation that will have probably just a slight difference in the way it is explained that I will understand.
I don't want to just copy some code to make it work, I want to understand and manipulate this at ease.
Mike
If you are driving some LEDs directly without any resistor, you should be pulsing it.
This subject differs from designer to designer.
Some argue that it is wrong.
Some say that it is perfectly normal.
Some argue the people (not the subject) who say it is perfectly normal.
Some argue the people back, not the subject.
So why don't you try driving your LEDs without any resistor but using some PWM freq like MIBAM?
And then if your circuit collapses, then have some resistor and try again.
Post your result here.
A similar LED - Resistor - PWM relationship complexity had been gone on this forum.
"If the Earth were a single state, Istanbul would be its capital." Napoleon Bonaparte
I was looking at MIBAM but then moved away due to its limitations:
I am planing to use 64 LEDs (maybe more) and I am trying to keep the components to minimal.@ 4Mhz, you can only run 4 LEDs MAX. This can be useful for RGB LED's on small chips.
@ 20Mhz, you can run 20 LEDs since there are more instructions available per period.
@ 48Mhz, you can run 48 LEDs, and anywhere in-between you can have the equivelant number of LEDs to match the OSC frequency.
If you attempt to use too many LEDs for a specific OSC frequency, the program will give a warning to indicate the results will be "Blinky".
I haven't figured out if the above limitations apply to MIBAM or BAM. I am still searching for a good BAM explanation.
Mike
I think I am starting to understand BAM and I am not sure this applies to what I need to do.
Fist I should specify, I indicated in the subject "flying star" as the french that I am but "Shooting star" is more appropriate.
I don't really need to dim any LEDs although it might give an extra quality effect, I only need to turn on and off each LED independently within 64+ LEDs and I was able to do this one by one but failed to have more than one row of LEDs on at the same time.
Mike
If you are using 64 LEDs via a matrix, then you only need 8 I/O for MIBAM output.
For the video you posted, you need MIBAM.
Last edited by sayzer; - 23rd December 2011 at 17:04.
"If the Earth were a single state, Istanbul would be its capital." Napoleon Bonaparte
I'm trying...
One MIBAM output (B0) going to a resistor then a LED which is then connected to VDD
Using a PIC16F628A with this code the LED remains on with no dimming.
What am I doing wrong?Code:@ __config _INTOSC_OSC_NOCLKOUT & _WDT_OFF & _MCLRE_ON & _LVP_OFF & _CP_OFF clear DEFINE OSC 8 INCLUDE "MIBAM.pbp" ' Mirror Image BAM module ;____[ For 12F/16F only - Interrupt Context save locations]_________________ wsave var byte $20 SYSTEM ' location for W if in bank0 ;wsave var byte $70 SYSTEM ' Alternate save location for W ' if using $70, comment out wsave1-3 ' --- IF any of these next three lines cause an error ?? ------------------- ' Comment them out to fix the problem ---- ' -- The chip being used determines which variables are needed ------------- wsave1 VAR BYTE $A0 SYSTEM ' location for W if in bank1 wsave2 VAR BYTE $120 SYSTEM ' location for W if in bank2 ;wsave3 VAR BYTE $1A0 SYSTEM ' location for W if in bank3 '---DO NOT change these----------------------------------------------------- ssave VAR BYTE BANK0 SYSTEM ' location for STATUS register psave VAR BYTE BANK0 SYSTEM ' location for PCLATH register TRISB = 000000 PORTB = 0 LED1 VAR byte BAM_COUNT CON 1; How many BAM Pins are used? Speed CON 20; Smaller = Faster Brightness CON 200; Max DutyCycle ASM BAM_LIST macro ; Define PIN's to use for BAM BAM_PIN (PORTB,0, LED1) ; and the associated Duty variables endm BAM_INIT BAM_LIST ; Initialize the Pins ENDASM Main: FOR LED1 = 0 to Brightness -1 ' Ramp up 1 by 1 PAUSE Speed NEXT FOR LED1 = Brightness to 1 STEP -1 ' Ramp down 1 by 1 PAUSE Speed NEXT GOTO Main End
Mike
Bookmarks