Skip to content
  • Категории
  • Главная
  • Документация
  • Последние
  • Пользователи
Collapse
  1. Главная
  2. Raspberry Pi
  3. Много различных датчиков и RPI

Много различных датчиков и RPI

Запланировано Прикреплена Закрыта Перенесена Raspberry Pi
19 Сообщения 1 Posters 275 Просмотры
  • Сначала старые
  • Сначала новые
  • По количеству голосов
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • piP Не в сети
    piP Не в сети
    pi
    написал в отредактировано
    #6

    Совершенно верно. I2C- это последовательная шина. Каждое устройство на ней имеет свой уникальный адрес. Когда вы хотите обратиться к какому-то устройству, вы передаёте адрес этого устройства, по которому это устройство и определяет, что именно с ним вы и хотите поговорить.

    1 ответ Последний ответ
    0
    • piP Не в сети
      piP Не в сети
      pi
      написал в отредактировано
      #7

      ОК! На данном этапе я понял что, для того что бы определить все подключенные устройства к RPI по протоколу I2C необходимо воспользоваться командой i2cdetect. С ее помощью мы получим «адрес» конкретного устройства и с помощью команды i2cget задавая конкретный «адрес» нашего устройства возможно считывания данных на конкретном устройстве.
      Поскольку I2C являться последовательной шиной, то для того что бы считать данные с N – устройств необходимо обратится к N1 – устройству, затем к N2 – устройству и так далее с шагом +1.

      Я вот только не понимаю как все эти N+1 – устройство правильно подключить к самой плате RPI?

      1 ответ Последний ответ
      0
      • piP Не в сети
        piP Не в сети
        pi
        написал в отредактировано
        #8

        Где:
        Master- это RPi
        Slave- куча ваших датчиков
        SDA- это P1-03 на RPi
        SCL- это Р1-05 на RPi

        1 ответ Последний ответ
        0
        • piP Не в сети
          piP Не в сети
          pi
          написал в отредактировано
          #9

          То есть, другими словами это может быть некая «палата» в которую «впаиваются» 4ри провода от каждого отдельного датчика и сама плата подключена к RPI посредству SDA и SCL?

          1 ответ Последний ответ
          0
          • piP Не в сети
            piP Не в сети
            pi
            написал в отредактировано
            #10

            Нет.
            Это длинный кабель с 3-4 жилами, к которому подключаются все устройства, в том числе и RPi.

            1 ответ Последний ответ
            0
            • piP Не в сети
              piP Не в сети
              pi
              написал в отредактировано
              #11

              Но в принципе можно и типа хаба сделать, тогда это будет платка, как вы и написали.

              1 ответ Последний ответ
              0
              • piP Не в сети
                piP Не в сети
                pi
                написал в отредактировано
                #12

                Мне кажется что платка является оптимальным решением, так появляется возможность «централизованного» управление всеми датчиками. На плату подается отдельное питания для датчиков, а SDA и SCL подключены последовательно, и на выходе уже подключены SDA и SCL уже непосредственно к RPI.

                С точки зрение проводо-затрат это выйдет дороже, но зато если один из датчиков выходит из строя остальные остаются работать.

                А есть ли какие-то ограничение на кол-во устройств подключенным к шине I2C ?

                1 ответ Последний ответ
                0
                • piP Не в сети
                  piP Не в сети
                  pi
                  написал в отредактировано
                  #13

                  А есть ли какие-то ограничение на кол-во устройств подключенным к шине I2C ?

                  127

                  1 ответ Последний ответ
                  0
                  • piP Не в сети
                    piP Не в сети
                    pi
                    написал в отредактировано
                    #14

                    Я вот посидел, почитал еще... и возник вопрос, допустим если использовать протокол I2C, повесить на него порядка 5 датчиков температуры, считывать данные будет без проблемно.
                    А как быть с потокомерами (счетчиками воды)? Допустим взять INS-FM19 которые при подаче воды начинает выдавать RPM сигнал, как его считывать в реальном времени, ведь соединение последовательное?

                    1 ответ Последний ответ
                    0
                    • piP Не в сети
                      piP Не в сети
                      pi
                      написал в отредактировано
                      #15

                      Можно данные датчика считывать микроконтроллером, установленным непосредственно у датчика, а сам микроконтроллер уже подключить по I2C к RPi. А можно сам датчик непосредственно продключить к RPi через GPIO.

                      1 ответ Последний ответ
                      0
                      • piP Не в сети
                        piP Не в сети
                        pi
                        написал в отредактировано
                        #16

                        "С точки зрение проводо-затрат это выйдет дороже, но зато если один из датчиков выходит из строя остальные остаются работать."
                        Они в любом случае остаются работать. Хоть десять выйдут из строя, они полностью независимы друг от друга. И даже вполне возможно "горячее" подключение-отключение.
                        Поймите, наличие или отсутствие, исправность или неисправность вообще не колышат соседние i2c устройства, кроме мастера. Вам же привели картинку.
                        Почитайте здесь.

                        1 ответ Последний ответ
                        0
                        • piP Не в сети
                          piP Не в сети
                          pi
                          написал в отредактировано
                          #17

                          127
                          А если 10-битную адресацию использовать?

                          Тут уже при желаниях товарища больше надо думать о емкости его конструкции. Чтоб не перевалить за 400пФ. Только у кабеля, например, UTP5e емкость в среднем 40 нФ/км, а еще сверху емкости датчиков.

                          1 ответ Последний ответ
                          0
                          • piP Не в сети
                            piP Не в сети
                            pi
                            написал в отредактировано
                            #18

                            Кстати, а вас случаем датчики не одинаковые будут? А то вполне можете попасть на одинаковые адреса.

                            1 ответ Последний ответ
                            0
                            • piP Не в сети
                              piP Не в сети
                              pi
                              написал в отредактировано
                              #19

                              датчики температуры я бы взял с шиной 1-wire типа ds18b20, датчиков на шину можно посадить дофига даже с паразитным питанием, подключить к rpi тоже довольно просто (мне больше нравится вариант конвертера 1w->i2c)

                              rpm можно обрабатывать через прерывания gpio см. http://dev.mrkva.eu/rpi/

                              1 ответ Последний ответ
                              0

                              • Войти

                              • Нет учётной записи? Зарегистрироваться

                              • Login or register to search.
                              • Первое сообщение
                                Последнее сообщение
                              0
                              • Категории
                              • Главная
                              • Документация
                              • Последние
                              • Пользователи