Hall Sensor Matrix - Supply problem

Hey guys,

The last few days I built a 8x8 hall sensor matrix. Therefore, I used the hall effect switch "A3144EUA". The rows are connected to a multiplexer which multiplexes a voltage of 5V. the columns are connected to a demultiplexer, offering an input for the arduino. The arduino pin is read via INPUT_PULLUP.

In my tests without multiplexer I had a very nice behavior. At about 3cm distance from the sensor to my magnet the switch toggled. Now that I multiplex them I have to come as close as 1,5cm. This is really bad for my project. I meassured the supply voltage which has dropped to 1.7V in the matrix. Although, I increased the delay to 200ms before each toggle at the multiplexers, I can not get it working with the distance of 3cm.

Why is that? There are no resistors or anything else. Do the multiplexers restrict the voltage?!

The only solution I thought of, would be supplying the voltage directly, not through the multiplexer, and toggle them with transistors connected to the multiplexer instead. What do you think, would that help?

Hi, I think your problem is because you are multiplexing the supply to the hall effect devices, they have a turn on time. That is, they do not work instantly, but after a certain time, by that time you are possibly turning the supply back off, so it only is detecting and with low sensitivit for a very short time. Try slowing you multiplex rate right down, and see if the range increases. You may have to trade speed for sensitivity. Even go as low as 1 or 2 seconds between steps just to check the theory out. If you are using your meter to measure the supply to the devices, then it will read low because the supply is now pulsed, not DC. What IC are you using to switch the 5V supply? Hope this helps...Tom..... :)

Thank you for your answer.

Like described I set the time to 200ms resulting in the same low distance. At the moment I'm at work. What I want to try later is, to manually configure the 4051 within the code to use a constant output-port. Then it should be easy to check you thesis. Thank you!

I now tested it like described above, manually setting the mux and demux. Same behavior (short distance only). I any current or voltage dropped at the 4051s? Thats the only thing I can think of :/

Next step is trying to supply voltage to one row of sensors via direct voltage toggled by a transistor.

Okay my final thoughts, maybe someone can second that, are: The ground pin of the sensors are constantly connected to ground. That said, I suppose, that the current is split between these sensors constantly. That would mean, that the sensors would not be supplied with enough current. A solution would then be, to synchronize the ground pins with the chosen row. That would need an additional multiplexer. Can someone follow my thoughts, second them or disprove them?

I finally tested 4 of the 8 rows by putting instead of the direct multiplexer outpin a transistor which offers 5v from the 5v Pin of the Arduino with the base to the multiplexer, in front of it. This works like a charm, at least for four of them on the breadboard. I hope this will still be true if I solder all 8. Not sure why it is more effective than directing the 5V throught the mux.

It sounds to me that the multiplexer you were using had too high a resistance for switching the +5V supply to 8 Hall sensors without causing a significant voltage drop. This is not surprising, because general purpose multiplexer ICs are intended for switching signals, not power.

If you have 8 Arduino pins available, then you can use them to drive 8 PNP transistors (with base resistors) to switch the 8 supply lines. Otherwise, I suggest a 74HC138 3-to-8 line demultiplexer chip driven from 3 Arduino pins, and use the 8 outputs from that to drive the 8 PNP transistors through base resistors.

Thank you, for your answer and support. Since I am new to this stuff (more of a programmer) this is news to me. I thought multiplexer just pass through.

Nevertheles, I already have wired the 4051 multiplexer. Thus, I am going to use it to control the transistors, which worked fine for 4 on the breadboard like described, and I am very optimistic, that it will for 8 on the final chip.