Прикрутить onewire интерфейс к аналоговму пину

Тема в разделе "Arduino & Shields", создана пользователем Nekto_nikto, 10 сен 2020.

  1. b707

    b707 Гуру

    я хренею, дорогая редкция...
    Ребята, aki и a1000 - вы с ним возитесь, а он, оказывается, просто резистор не поставил

    все туториалы, значит, твердят, что без резистора работать не будет - но нашему Дартаньяну пофиг, ему резистор поставить влом. Вместо этого он будет 30 сообщений на форуме всем мозг выносить.

    Хватит пургу нести. Нет никакой проблемы с 1-вайром на аналоговых пинах! За три года один единственный "счастливчик" отписался, который наверняка тоже перепутал пины или забыл припаять резистор. Если бы проблема реальна существовала - на форумах был бы шквал откликов. Могу привести пример пресловутого гайвера, который три года продвигает "контроллер для теплицы", где датчик DS18b20 стоит и без проблем работает на пине A0. Этот контроллер повторили тысячи и никто не жаловался, что 1-вайр несовместим с аналоговыми пинами.
    Такая проблема только у вас.
     
    Последнее редактирование: 12 сен 2020
    Airbus нравится это.
  2. a1000

    a1000 Гик

    Да нет, не совсем так. Ноль мы на контрллере делаем сами, выставляем на пине ноль. Если нужна единица - отпускаем шину и единица формируется подтягивающим резистором. По крайней мере в приведённом видео объясняют так.
    Скажу больше - нет даже аналоговых пинов. :) Все пины (кроме Vcc, AVcc, GND и AREF) цифровые. Так, что с организацией 1 wire на любом из них проблем не должно быть ни разу.
     
    Airbus нравится это.
  3. asam

    asam Гик

    Даже на пинах А6 и А7 у наны?
     
  4. Nekto_nikto

    Nekto_nikto Нерд

    Ну что сказать, в переходнике который прислали китайцы с нерабочим датчиком, вставлен резистор на 4,65K в качестве подтягивающего и какой то радиоэлемент между GND и VCC, который не прозванивался, поэтому думаю что тупо конденсатор. Конденсатор я на всякий случай выпаял и подключил рабочий датчик с этим подтягивающим резистором к пину 2, на котором температура определялась без подтягивающего резистора, но реакции НЕ БЫЛО, равно как и на пине 3. А вот БЕЗ подтягивающего резистора на 2 пине датчик работает как ни в чем не бывало, на 3 тишина.
     
  5. parovoZZ

    parovoZZ Гуру

    Конденсатор не является радиоэлементом.

    Переводится на вход? Тогда да...
     
  6. Nekto_nikto

    Nekto_nikto Нерд

    Собственно нарыл схему этой платы и все стало проясняться, почему с подтягивающим резистором вообще не работает, все потому что там подтяжка уже в самой плате есть, но и пины от MEGA2560 подключаются через резисторы 1K. Изображения прикрепляю.
     

    Вложения:

  7. akl

    akl Гуру

    я так понимаю это плата для чпу-станков, а в эти разъемы подключаются концевики, соответственно эти резисторы и кондеры - фильтр антидребезга. конечно это дико мешает общению с датчиком. с нужного пина надо кондер убрать для начала, тогда должно заработать
     
  8. Nekto_nikto

    Nekto_nikto Нерд

    :D разобрались.
    Правда там дело было не в конденсаторах, а в резисторах на 1K, на D2 резистора вообще нет, поэтому он и отрабатывает нормально, D14 к слову тоже, а вот остальные из-за резисторов не работали. Подпаял перемычку между двумя ножками сборки резюков, и один порт проснулся. Изображения прикрепляю.
    Спасибо всем кто участвовал в обсуждении.
    [​IMG]
    [​IMG]
    после выпайки группы резисторов, начал работать только 18 пин, остальные нет, возможно потому что качество моей пайки оставляет желать лучшего, может быть по другим причинам, не знаю :/
     
    Последнее редактирование: 12 сен 2020
  9. a1000

    a1000 Гик

    Интересно получается. Глянул на распиновку atmega328 в корпусе tqfp32. Действительно ADC6 и ADC7 не являются выходами цифровых портов. Век живи - век учись.
     
  10. issaom

    issaom Гуру

    Покупайте нану от Амперки и будет вам счазье на пинах А6 и А7
     
  11. b707

    b707 Гуру

    а что, у "наны от амперки" пины А6 А7 - цифровые? ссылку можно?
     
  12. b707

    b707 Гуру

    вот как полезно, оказывается, дать человеку волшебный пендель :) Сразу схеиа платы нашлась...

    А не будь моего эмоционального выступления - мы, может, еще неделю обсуждали бы, почему onewire не работает на пине A3

    А все почему? - да потому что великие педагоги утверждают - обучение лучше всего идет ЧЕРЕЗ ЭМОЦИИ!
     
  13. issaom

    issaom Гуру

    Я же выкладывал проект на ней - вы даже мне там замечания по коду писали....
    Они там не просто цифровые, а там еще и 2-й аппаратный SPI висит
     
  14. b707

    b707 Гуру

    там МК другой, значит - то есть это не Нано, строго говоря
     
  15. ИгорьК

    ИгорьК Гуру

    До какого же состояния вас ранее опустили, гуру?
     
  16. issaom

    issaom Гуру

    Если работать из под среды Arduino IDE, то вообще пофигум, плата полностью обратно совместима с оригинальной Nano и если вдруг не хватило пару пинов можно установить как замену без какой-либо головной боли.
     
  17. a1000

    a1000 Гик

    Вы имеете ввиду Iskra Nano Pro? Тогда да, там стоит ATmega328PB. В неё много чего нового добавили. В нём 2 USART, 2 TWI, 2 SPI, 5 таймеров. К существующим портам B, C и D добавили порт Е (правда 4 битный). В связи с этим его в 28-пиновом корпусе нет, только 32 пина.
     
  18. issaom

    issaom Гуру

    Спасибо за инфо - но даташит на ATmega328PB я читал - собственно поэтому и рекламирую, так по функционалу плата даже лучше чем новая оригинальная Nano Every (не говоря уже про ценник) Правда доступ к этим интерфейсам доступен только при работе через регистры, а из среды Arduino IDE можно блинкать светодиодом на пинах А6 и А7 используя штатные функции.
     
  19. Nekto_nikto

    Nekto_nikto Нерд

    Скажите пожалуйста а не пробовал ли кто нибудь уже вешать на одну OneWire шину датчик DS18B20 и AM2320?
    Спрашиваю т.к. пробую сейчас это сделать, но обнаружил, что в присутствии DS18B20, AM2320 отрабатывает нормально, а вот DS18B20 даже не определяется при присутствии на шине AM2320. А если AM2320 убрать, то на том же скече работает как надо. Думал что AM2320 что то замыкает другому датчику, однако измерения сопротивелний показали
    Код (C++):
    Без датчика AM2320
    GND-VCC        1,61K
    GND-Signal    6,51K
    VCC-Signal    4,69K

    с датчиком AM2320
    GND-VCC        1,61K
    GND-Signal    6,51K
    VCC-Signal    4,69K
     
  20. a1000

    a1000 Гик

    Вы ничего не путаете?
    Датчик am2320 работает по протоколу I2C а DS18B20 по однопроводной линии связи, используя протокол интерфейса 1-Wire.