I still dont understand the need for transistors for the grounds. When I want to ground a layer I just send a LOW signal to that layer. When I want to turn the layer off I send a HIGH to the layer. A 5V HIGH shouldn't be enough voltage to reverse bias the led so it shouldn't hurt it.
The digital pins from the arduino can only sink(/source) up, up to 40mA. If I turn on 25 LEDs on one layer the total current that need to be sinked by the digital pin would be 25*13mA = 325mA, this is far too much for a digitalpin. Instead I use NPN transistors, the collector from the transistor is connected to each layer of the cube. The emitter is connected to ground from the arduino (Ground from the arduino can sink up to around 450 mA on USB) and the base is connected to a digital pin on the arduino (in my case to the shift register). Now I am able to turn on 25 LEDs on one layer without frying something. The other advantage from transistors is the way how the ground is turned on/off, I send a HIGH signal to the base from the transistor so it switches the selected layer to ground. Because I can use HIGH instead of LOW (what you mentioned) it makes it easier to program.
Nice job with the build and assembly Wondertiger.
What current are you seeing from the 74HC595 outputs?
Set an LED high and measure the voltage across a 220 resistor.
I'd expect something like 2.8V/220 = 12.7ma if your LEDs have a Vf of 2.2V and you're actually gettiing 5V out of the 74CH595.
I did a measurement with a cheap digital volt meter and it came around 2.5V. I think I should invest in a better multimeter in the first place (a buddy of mine has an industrial fluke that works really well he said, maybe I should look for something like that) to get some accurate readings
WonderTiger:
I did a measurement with a cheap digital volt meter and it came around 2.5V. I think I should invest in a better multimeter in the first place (a buddy of mine has an industrial fluke that works really well he said, maybe I should look for something like that) to get some accurate readings
There are many reasons one might want to upgrade to say a fluke DMM (I own 3) but for the kind of stuff your doing with a typical arduino project a simple cheap DMM (unless defective) will not be a big deal as far as accuracy goes. Like any tool, it's not so much the tool but rather knowing how to use it properly and understanding it's limitations. The biggest draw back of modern DMM is that it always displays a number even when the number being displayed doesn't mean what you might expect it to or want it to mean. Measuring the output of a active PWM pin is one example of a improper measurement for a DMM, it will display a number but it doesn't mean what you think it means.
I absolutely agree with the statement you made. However I think a good meter will be a good investment though (for my study and other projects in the future) even if it isnt really meaningful for now yet.
WonderTiger:
You're absolutely right with the statement you made. However I think a good meter will be a good investment though(for my study and other projects in the near future) even if it isnt really meaningful for these kinds of projects yet.
I agree mostly about good test equipment being a near lifetime investment that will pay good dividends for a long long time. After working for decades in the electronics industry I found that fluke meters and tektronix scopes were all I ever wanted to own for personal use.
But the point is that arduino beginners should be encouraged that their first purchase to make after their arduino board is a DMM, well before obtaining any other components and/or modules for their various projects. So the $10 DMMs serve a good purpose in at least getting them started on the right path. Many young people starting out just can't yet afford the investment costs of say a Fluke meter, but can swing for a $10 DMM which is much better then no DMM at all which all too many appear to have.
Been a while I posted something here. Last weeks I was very busy with school (we are developing a weighing scale). However I managed to make a very easy animation for my cube :), enjoy:
I've recently built a similar 4x4x4 cube. I'm having some trouble with ghosting on the cube (it seems that the cathodes are not turning off quickly enough). The way it manifests is that when I turn on a pair of a new anode plane and a new cathode column, the LED which at the intersection of the new plane and the old column, lights up for a brief moment. This results in ghosting. It is most likely a hardware problem, but I want to make sure that it's not a software problem. Have you had any kind of similar ghosting problem? Would it be possible for me to see your code, maybe I'll get some insights about what I might be doing wrong...
I have not seen 'ghosting'on my cube. However if I light up 1 layer, the layer above the lit one will shine very dim. But this is due the light goes through the bottom of the LEDs.
Yes, I have the shine-through effect too, but that's not a big problem and there's not much you can do about it anyway. Thank you for the code! I will check it.
I have noticed that you use shiftOut() instead of the SPI library that I use. Theoretically the SPI library's methods are faster, but I'll try out shiftOut() too, who knows, maybe it makes a difference...