Serial.Опрос 2-ух датчиков через rx и tx

romchik123
Offline
Зарегистрирован: 20.10.2019

Добрый день!

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

Заранее спасибо!

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

RS485

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

romchik123 пишет:

Добрый день!

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

Заранее спасибо!

\

Отключать ненужный датчик. Реализовать можно разными способами в зависимости от того что у вас за датчики.

romchik123
Offline
Зарегистрирован: 20.10.2019

Два ADXL 345

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

romchik123 пишет:

Два ADXL 345

ADXL 345?? А причем, тогда, здесь RX/TX? Этот чип может общаться с МК или по I2C или по SPI. Если поключать по I2C то нужный датчик выбирается программно, нужно только у них разные адреса перемычкой выставить. А если по SPI то сигналы CS заводятьсч на разные пины и при подаче на соответствующий пин LOW датчик активируется.

romchik123
Offline
Зарегистрирован: 20.10.2019

А как найти эту перемычку и выставить разные адреса двух датчиков,если библеотекой датчик ограничен адресом 0x53?

nik182
Offline
Зарегистрирован: 04.05.2015

Библиотека не может ограничить адрес. При замыкании 12 ноги микросхемы адрес меняется. Пытливый ум может залезть в библиотеку и поменять адрес. Но скорее всего в библиотеке есть метод установки адреса при инициализации. Просто надо открыть библиотеку и посмотреть. Это нужно Вам. Нам лезть и разбираться нет времени.  

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

romchik123 пишет:

А как найти эту перемычку и выставить разные адреса двух датчиков,если библеотекой датчик ограничен адресом 0x53?

В режиме I2C для выбора адреса используется пин SDO датчика. 

romchik123
Offline
Зарегистрирован: 20.10.2019

А как тогда через пин SDO датчика менять их,если адреса то одинкаовые 0x53
Извеняюсь за свою тупость,я в первые решил 2 датчика реализовать.
Заранее спасибо за помощь.

nik182
Offline
Зарегистрирован: 04.05.2015

Линия ALT_ADDRESS отвечает за адрес акселерометра на шине I2C. При высоком логическом уровне на линии, акселерометру присваивается 7-ми битный адрес со значением 0011101, при низком уровне 1010011.

Из двоичного в шестнадцатеричный переведёте или? 

romchik123
Offline
Зарегистрирован: 20.10.2019

Получается что при высоком уровне получается адрес 0x1D
А при низком уровне присваивывается адрес 0x53
Я вас так понял?

nik182
Offline
Зарегистрирован: 04.05.2015

Да. Правильно. Подключены одновременно. Создаете два экземпляра объекта с разными именами и адресами. И обращаететесь поочередно или к тому, которому надо. 

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

romchik123 пишет:

А как тогда через пин SDO датчика менять их,если адреса то одинкаовые 0x53
Извеняюсь за свою тупость,я в первые решил 2 датчика реализовать.
Заранее спасибо за помощь.

Открываем даташит (https://www.analog.com/media/en/technical-documentation/data-sheets/ADXL345.pdf) и читаем черным по белому

With the ALT ADDRESS pin high, the 7-bit I2C address for the device is 0x1D, followed by the R/W bit. This translates to 0x3A for a write and 0x3B for a read. An alternate I2C address of 0x53 (followed by the R/W bit) can be chosen by grounding the ALT ADDRESS pin (Pin 12). This translates to 0xA6 for a write and 0xA7 for a read.

 

Если не заешь англицкий языка, то google translate в помощь.

romchik123
Offline
Зарегистрирован: 20.10.2019

А как теперь схему соединения или код написать чтоб переключались?

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

romchik123 пишет:

А как теперь схему соединения или код написать чтоб переключались?

Лучше всего - руками и с участием головы. Все, что необходимо вам уже разжевали. Что теперь и в рот сами положить не можете?

romchik123
Offline
Зарегистрирован: 20.10.2019

Я программист,а не человек который разбирается в электротехнике.
Мои познания в пайке и все что связанно с электронникой = 0
Это надо для человека который мне спаяет схему,чтоб я ее запрограммировал.

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

romchik123 пишет:

Я программист,а не человек который разбирается в электротехнике.
Мои познания в пайке и все что связанно с электронникой = 0
Это надо для человека который мне спаяет схему,чтоб я ее запрограммировал.

А умение пользоваться гуглом в познания программиста не включены?

https://www.google.com/search?hl=&site=&q=подключение+устройств+i2c