1. попробуйте взять готовую библиотеку
в менеджере библиотек в ардуино, если в поиск ввести ds18b20 есть несколько библиотек, у каждой есть примеры
2. попробуйте сделать print-откладку, или в serial, или на lcd
в loop() между функциями поставьте print-ы с разным текстом и посмотрите на какой функции зависает
потом уже таким же образом разобраться где в функции зависает.
3. использовать watchdog для борьбы с возможными последствиями зависаний.
так же, возможно это не программная, а аппаратная проблема
чем питается ардуина, есть ли фильтрация питания, силовые элементы (реле 220) и цепи далеко ли расположены?