How to increase strength of data signal in Arduino?

Hi guys,

I have a project in that i used Ultrasonic Sensor,
its working fine on breadboard, but when i adding long wires approx. 12 meters
then it's losing its sending data strength which i feel!!!

Please Any Solution!

"Please Any Information" about components used, schematics, code etc.

Your sensor, does it connect over I2C with your controller? If so, you'll need to rethink things. I2C was never intended to bridge such large distances. You might get away with it (with sufficiently strong pullups; let's say 1k2 or so, and let's use shielded cable while we're at it), but it'll always be a borderline solution, and it's certainly not the preferred one.

So again, let's see some actual information about the project so we can understand the boundary conditions under which it needs to work.

My bet is that it is an HC-SR04 sensor on 12 meter wires.

That should be fairly easy to extend to that cable length!

Are you sure about that, bearing in mind the voltages, currents and frequencies involved together with the fact that that the remote unit will need to be powered via the 12 metre cable

If power is available at the remote end then I would favour putting an Arduino there and using a wireless solution of some kind to send the sensor values to where they are needed or the results after processing if that is more convenient for the purpose of the project.

It's not a very sensitive signal. Datasheet says 'TTL', but it looks like ordinary 5V high. The timings aren't as exciting as they may seem either with 58us delay per cm of distance measured, so the cable length isn't going to be a factor in delays (signal travels at a half to a third of the speed of light - not a problem).

I'd start by simply using shielded cable (some repurposed Cat5/Cat6 shielded UTP would do nicely) to bridge the distance and then see how that goes. Scoping the signal will help trace down what the problem is; lack of strengths, reflections? If additional measures are needed they might be as simple as including a 22r suppressor resistor in the signal lines to deal with any reflections.

yes right

By browsing I found Rs-485 Module to extend strength of data signal, but its need to add both side a Sender and Receiver


This solution giving high cost, I want just boast data signal

in my project there is only one arduino Nano Board and HC-SR04 Sensor

The exact cause of your problem is not clear yet, and therefore the most effective solution is also difficult to determine.

Do you have an oscilloscope?

I propose two options:

  1. Use wires with bigger diameter. It should decrease its resistance thus signal should not weaken to much. But such a long wire and low voltage means it is prone to external noise.

  2. Use transistors to switch higher voltage and then use the same transistors to lover it at the receiver. Unless the data is bi-directional, then you need to use smarter circuits. (I may create circuit diagram if you are interested in this solution)

1 Like

That's not going to help. Resistance isn't the problem since these are signals and no significant dissipation occurs on either end of the line.

Higher voltage isn't necessarily the solution. If you mean, try to reduce the impedance, then yes. But this doesn't necessitate a higher voltage at all.

Again, determining the nature of the problem should precede wildly suggesting 'solutions'.


Thanks bro I changed that long cable with CAT5 Cable

and its working 100% Thank you so much.

1 Like

Which likely is not thicker than what you used, nor did you change the voltage. So the thanks goes to...who exactly?

I used 12 mt electric wire which use in home wiring then i replace with CAT5 cable which use in Internet connection.

Thanks to you all.

Shielded or unshielded?

Anyway, good to hear it works now!

1 Like