I've connected an Arduino Uno to a MAX7219 IC, which is connected to only one standard 8x8 LED matrix, and an ADXL355 3-axis accelerometer. I use the matrix initially, and turn on all LEDs, while taking the "rest" values for the accelerometer to base all other calculations on. However, what happens is the current spike the LEDs create messes up the values - they become closer to 300, instead of the 230 they settle on when the spike is over. I've tried preventing this by adding up to a 5-second delay between the LEDs turning on and the rest values being measured. However, the problem still persists, though to a somewhat lesser extent.
Are there any methods to prevent this more effectively?
-
3It seems to be a voltage drop issue. Potential solutions: add decoupling caps in your circuit, if not enough, use distinct power supply for MAX7219.jfpoilpret– jfpoilpret2016年10月22日 05:51:02 +00:00Commented Oct 22, 2016 at 5:51
1 Answer 1
Adding a distinct power supply for the MAX7219, as suggested by @jfpoilpret, solved the issue.
-
I think you can just run the accelerometer from the 3.3V supply. The 3.3V should remain pretty stable, even if there is some voltage droop on the 5V.Gerben– Gerben2016年10月22日 15:05:44 +00:00Commented Oct 22, 2016 at 15:05
-
@Gerben My particular accelerometer was in fact rated for 3.3V, so it was already connected there. The spike was still, IMO, unacceptable.naiveai– naiveai2016年10月22日 17:53:25 +00:00Commented Oct 22, 2016 at 17:53
-
Weird that the noise or drop propagated to the 3.3V. You could also try adding some more capacitors. That is, unless you're okay with adding a second power-supply, of course.Gerben– Gerben2016年10月22日 19:07:26 +00:00Commented Oct 22, 2016 at 19:07