Answer the question
In order to leave comments, you need to log in
How to carry digital sensor more than 50 meters from Arduino?
There is a ds18b20 digital temperature sensor connected to the Arduino at a wire distance of up to 15 meters, everything works well. (I used a twisted pair power cable.)
At a distance of 25 meters, frequent interruptions in readings from the sensor. More than 50 meters the sensor does not send a signal.
And I need to take four such sensors from Arduino, each one hundred meters. (for the length of an agricultural farm)
I read that a long wire works like a capacitor and the digital signal disappears in it.
What can be done.
Answer the question
In order to leave comments, you need to log in
Of the simple solutions - to reduce the value of the pull-up resistor. For convenience, you can use a variable resistor type 3296 at 4.7 kOhm. The 1-wire bus will operate with a pull-up resistor of 1 kΩ or more.
1-wire protocol can transmit data at a distance of up to 500 m, but!
- you need to use a shielded twisted pair
- use a special driver
- do not use parasitic power
- sensor connection topology - common
bus + connect not just to the arduino leg, but through the driver.
There is an application note on
that topic, and a diagram of an advanced 1-wire network driver.
Although if you estimate the cost of a cable, drivers, then it might really be better to do it by radio or your own protocol over a wire.
Use radio communication, modules for communication at 50 meters cost a penny, and you can raise almost a full-fledged UART via radio on them.
Use twisted pair or shielded wire. If that doesn't work, you'll have to use something like xbee or rs-485
1-wire is not intended for such distances. This pseudo-protocol is only suitable for distances of no more than a meter from the microcontroller.
If you need to spread it so much, then it’s easier to take a cheap MK (say, STM8S003 - just a penny) and a level converter (RS-232, CAN or RS-485 - whichever is more to your liking), and connect it - so that the protocol is more decent, and the transmission of data over diphlinia occurred. Well, or even radio, as suggested.
RS-485 is suitable for this distance. You will need to use a second Arduino, which will be a "smart" sensor and will be connected to the first through converter chips. Or, if communication with a PC is required, use the RS-485->USB converter and then the second board is not required.
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question