Problems with OneWire protocol

Hi,
I am building an induction heater controlled by an Arduino UNO.
The intention is to use a DS18b20 temperature sensor to check that the circuit does not overheat.
The induction heater is controlled by a Fostek relay with a trigger tension of 3V Vcc minimum. The relay is on pin 6.
The DS18b20 Data pin is connected to pin 15.

When I poll the temperature sensor on pin 15 (or any other pin, I tried several) via

sensors.getTempCByIndex(0)

the tension on pin 6 raises so much that it triggers the relay.

The temperature sensor connected to +5V, GND and Data (Pin 15) with a 4K7 resistor between Data and +5V

It seems to me that when the sensor gets polled, the level of all the pins is raised above 3V.

Any help is much appreciated.

Stefano

Your post was MOVED to its current location as it is more suitable.

Could you also take a few moments to Learn How To Use The Forum.

Other general help and troubleshooting advice can be found here.
It will help you get the best out of the forum in the future.

Hi,

It looks like the problem was the polling interval.

Reducing the read frequency by using asynchronous reads with a 120 msec polling interval fixed the problem.

Stefano

The DS18B20 requires between 94 and 750 ms (depending on selected resolution) to do a single temperature conversion. If you need fast temperature readings, you're using the wrong sensor.

Hi,
Thank you for your answer.
I need one reading/sec, so the DS18b20 works for me.
What I did not know is that if you try to poll it faster that its conversion time allows for, it sends a spike that raises the tension of other pins to ca. 3Vcc.

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.