Arduino Mega и DS18b20 не все выводы работают

GAS
Offline
Зарегистрирован: 04.09.2013

К Arduino Mega подключил DS18B20, на выводах 20, 21 работает.

на других, опробовал порядка 10 выводов, - не работает.

Пользовался как OneWare, так DallasTemperature.

В чем подводный камень?

Плата новая, выводы рабочие, на 22 помигал светодиодом.

Клапауций
Offline
Зарегистрирован: 10.02.2013

Подводный камень в протоколе по которому данный датчик общается с контроллером.

Что бы ориентироваться во множестве аппаратных различий выводов дуины распечатайте себе плакат и смотрите что и как отличается.

http://reaktor23.org/_media/files/arduino-mega2560-r3-pinout.svg

В вашем случае - аппаратные SDA, SCL.

axill
Offline
Зарегистрирован: 05.09.2011

Клапауций пишет:

В вашем случае - аппаратные SDA, SCL.

при работе с ds18d20 I2C не используется, используется чисто програмный 1wire протокол, так что теоретически обязано работать на любых цифровых входах-выходах

GAS
Offline
Зарегистрирован: 04.09.2013

Была  аппаратная проблема. Начинал я с выводов 20, 21 (SDA, SCL), а там видно подтягивающие резисторы есть и их хватает для работы DS18b20. А мною припаяный smd резистор между выводами датчика оказался непропаян, и датчик на остальных выводах не опрашивался.

olivergreen
olivergreen аватар
Offline
Зарегистрирован: 15.08.2016

Да, действительно не на всех пинах работает... В моем случае из 5 опробованных заработал на 25 (много других занято). Но в чем таки дело, почему не работает на любом цифровом IO пине?

b707
Offline
Зарегистрирован: 26.05.2017

olivergreen пишет:

Да, действительно не на всех пинах работает... В моем случае из 5 опробованных заработал на 25 (много других занято). Но в чем таки дело, почему не работает на любом цифровом IO пине?

У автора исходного сообщения проблема оказалась в плохой пайке, а вовсе не в том, что какие-то "выводы не такие". Думаю и у вас нечто похожее. Пишите, на каких у вас не работает - проверю

olivergreen
olivergreen аватар
Offline
Зарегистрирован: 15.08.2016

Спасибо за ответ!

Проблема решена, хотя и большими нервами )
Как это часто бывает - я поверил коммерческому продукту ) В общем когда начал все проверять, проверил питание на шилде (тот что arduino mega shield v2.0). На ранее указанных пинах оказалось отсутствует напряжение. В результате выяснил, что линия питания от 36 до 45 пина просто не присоединена к общей шине +5В. Чуть позже начав поиски в англоязычном сегменте, нашел ветку на официальном форуме как раз о том же.

Кстати, это проблема всех шилдов. У меня таких несколько, все одинаково.

А ведь если задуматься, проблема весьма коварна. Если начинающий захочет проверить светодиодом, то наверняка сделает это с помощью digitalWrite() и он будет работать ) 

Решение проблемы в принципе очевидное - либо накинуть перемычку с линии питания +5В неиспользованного пина на любой пин питания из 36 по 45, либо запаять перемычку с обратной стороны между 35 и 36 пинами. 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Вот так всегда: вдруг, откуда ни возьмись, появляется шилд, о котором раньше не было ни слова.

Тема то о Меге, а не о шилде.