Барометр и акселерометр одновременное подключение

Тема в разделе "Схемотехника, компоненты, модули", создана пользователем Diana2001, 19 авг 2020.

  1. Diana2001

    Diana2001 Нуб

    Как мне одновременно подключиться барометр и акселерометр? Оба подключаются к А4 и А5. Можно ли настроить, чтоб к другим пинам подключались. Очень нужно чтобы они работали вместе, ничего не получается найти(((
     
  2. ivan_alexoff

    ivan_alexoff Гик

    Diana2001, она же Yulia2001, а что и где ищете?
     
  3. b707

    b707 Гуру

    Diana2001, она же Yulia2001, вам же вроде обьяснили на ардуино.ру..
    Почитайте про протокол I2C - к одним пинам А4 и А5 можно одновременно подключать много устройств

    нет
     
  4. Diana2001

    Diana2001 Нуб

    Что?:eek:
     
  5. ivan_alexoff

    ivan_alexoff Гик

    ну у вас
    Вот и расскажите где и что вы ищете
     
    Daniil нравится это.
  6. Diana2001

    Diana2001 Нуб

    Как на практике будет выглядить подключение и скетч, если я хочу чтобы у меня выводилось и ускорение и высота? Адреса датчиков известны, как выглядит обращение? В теории дается только схема подключения, без программной части
     
  7. parovoZZ

    parovoZZ Гуру

    ответ

    Засылается адрес датчика, затем команда, затем отбой и ждём ответа от датчика. Очень подробно я рассказываю здесь
    http://forum.amperka.ru/threads/Суперэкономичный-беспроводной-монитор-Т-и-rh.17221/#post-199357
     
  8. b707

    b707 Гуру

    подключение на практике будет выглядеть так же, как в теории :)

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

    a1000 Гуру

    Ну не стоит так категорично. А если вручную расписать протокол? Software serial ведь реализован. Да и аппаратной реализации 1-Wire в 8 - 328 ATmega нет. Пишут вручную. Не спорю - протокол попроще, но всётаки :):)
    Вы каждое устройство в отдельности работать заставили? Если да, то код в студию.
     
  10. b707

    b707 Гуру

    да разве категорично? - а если учесть уровень ТС? :) для Дианы на этот вопрос ответ "нет" без вариантов :)
    Подумайте. если они штатно не могут завести два датчика на шине - им ли советовать фофтовый I2C ? :)
     
  11. a1000

    a1000 Гуру

    В данном конкретном случае вы абсолютно правы. Это я так - "в принципе" возможно. :)
    Да и аппаратная реализация I2C в ATmega несколько странная. У меня создаётся впечатление, что когда у разработкиков дошли руки до I2C они уже порядочно устали и решили не заморачиваться. Сделали всего одно прерывание на все случаи жизни.
     
  12. parovoZZ

    parovoZZ Гуру

    А сколько надо?
     
  13. a1000

    a1000 Гуру

    К примеру для USART - три прерывания. Окончание передачи, окончание приёма и даже на опустошение UDR. А в I2C вариантов море а прерывание одно. И начинаем перебирать в обработчике все варианты регистра TWSR. А их что-то около трёх десятков. Не спорю, абсолютно все перебирать не надо, часть отсекаются по режиму (MASTER, SLAVE). Но всёравно обработчик получается громоздкий.
     
  14. parovoZZ

    parovoZZ Гуру

    Один вектор на грядку прерываний - это нормально. Вот так выглядит обработчик прерывания от таймера у MSP430:
    Код (C++):
      switch(__even_in_range(TB0IV,TB0IV_TBIFG))
      {
          case TB0IV_NONE:

              break;                             // No interrupt
          case TB0IV_TBCCR1:

              break;                             // CCR1 not used
          case TB0IV_TBCCR2:

              break;                             // CCR2 not used
          case TB0IV_TBIFG:                      // overflow

              break;
          default:

              break;
      }
     
  15. OldKryptos

    OldKryptos Гик

    Акселерометр и барометр подключаются к Ардуино параллельно на одни и те-же входы. Как правило, по умолчанию в библиотеках для этих устройств прописаны разные адреса и конфликтов по этой части нет. Но использовать готовые методы в лоб, для получения данных, вряд-ли получится. Проблема в разной скорости получения данных с этих устройств. Акселерометр имеет свой процессор и данные выдает быстрее чем барометр, а данные барометра контроллер Ардуино получает "сырыми" и поэтапно. Сначала температура (быстро), затем "кажущееся" давление (уходит много времени), и после этого Ардуино по этим параметрам своими силами рассчитывает "истинное" давление.
    В общем, если хотите использовать свое устройство на парашютистах или в ракетах, нужно "подламывать" библиотеки под свои хотелки по части грамотного получения данных, не тормозя основной процесс. Хотя возможно, что можно найти код в сети.
    А подключение вообще не проблема.