Много датчиков к одной плате

tomas111
Offline
Зарегистрирован: 01.03.2018

Добрый день, хочу подлючить к одной ардуинке много разных датчиков но не знаю получится или нет. Подскажите у кого был опыт подлючение много датчков к одной плате? Схему примерную накидал. Возможно что то не точно...

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

что то у вас с терминологие странное - GSM/GPS/ESP - это датчики?

spa-sam
Offline
Зарегистрирован: 14.12.2012

Замените arduino nano и esp8266 на esp32

 

tomas111
Offline
Зарегистрирован: 01.03.2018

andycat пишет:

что то у вас с терминологие странное - GSM/GPS/ESP - это датчики?

Да, но какие не знаю.

spa-sam пишет:

Замените arduino nano и esp8266 на esp32

Размеры и программирование в чем? Нужна компактность.

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

tomas111 пишет:

Да, но какие не знаю.

Понимаете ли, любое устройство или какой либо предмет поектируется для исполнения какой либо цели/задачи.

Невозможно что либо посоветовать пока вы сами не опишите зачем вам вообще это.......поиграться? начните с простенького, светодиодиком поморгайте, моторчиком покрутите...потом уже переходите к более сложному.

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

tomas111, UART - это не тот интерфейс, к которому можно подключить много разных датчиков. Посмотрите лучше в сторону I2C или SPI.

Voodoo Doll
Voodoo Doll аватар
Offline
Зарегистрирован: 18.09.2016

tomas111 пишет:
Подскажите у кого был опыт подлючение много датчков к одной плате?

Камня два:

1. Несовместимость по gpio портам. Лечится разносом. Например, есть SPI устройство, не удосуживающееся по отпусканию SS/CE снимать подтяжку (переводить в высокоимпедансное состояние) MISO/MOSI и/или SCK. Решается перевешиванием на другие 4 провода, ибо софтварный SPI возможен на любых проводах.

2. Несовместимость программная, она же коллизии таймеров, она же совместный доступ к памяти/регистрам, она же "несовместимость библиотек". Принципиально не лечится, но есть заведомо рабочие, нероняемые при прямых руках устройства. Например, работает TLC5940 и сериал, RF24 и сериал. TLC+RF24 не работает - ну кажись тут вывод очевиден: берём две ардуины, на одной поднимаем TLC5940 синтезаторы ШИМ, на другой радиосвязь по RF24, связываем эти две в единое целое через сериал.

Возможностей для этого - до чёрта и больше: манчестер, сериал, битбанг gpio (считаем флагом digitalRead порта), EasyTransfer, программный сериал (SoftwareSerial), программный SPI (shiftIn(), shiftOut()), IRRemote, звук, ультразвук, и т. д. и т. п. Гугланите и читайте. Советую крайне полезную страницу, называется playground.arduino.cc - там всё написано. Всмысле, вообще всё, что когда либо пробовалось подключаться, плюс перечислены все глюки.

Алсо, возражу

andriano пишет:
UART - это не тот интерфейс, к которому можно подключить много разных датчиков

Защищаете TXы резисторами, если кому-то из датчиков припрёт одновременно с чьим-то нулём дать в линию единицу, чтобы порты не пожгло, и можно читать их сколько влезет, главное как-то различать кто есть кто. Придумаете протокол с кодом устройства или по синтаксису их парсить (но работа со строками - моветон, ибо кушает память). Главное чтобы провода не слишком длинные.

Если непонятны мои термины, то вот основное:

Много (туземцами обозначается как числительное, следующее за 7) - больше одного. 2 (два) - это для микроконтроллера "много".

Длинные провода - провода длиннее двух метров.

Высокие частоты - частоты выше десятков килогерц, бпс выше 19200 бит/с.

Высокая разрядность - любые действия с типом float вообще и деление в частности.

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

Voodoo Doll пишет:

 

Сударыня, Вы уж извините меня, но главная проблема здесь в том, что афтор даже не понимает, а что он делает. 

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

Voodoo Doll пишет:

Алсо, возражу

andriano пишет:
UART - это не тот интерфейс, к которому можно подключить много разных датчиков

Защищаете TXы резисторами, если кому-то из датчиков припрёт одновременно с чьим-то нулём дать в линию единицу, чтобы порты не пожгло, и можно читать их сколько влезет, главное как-то различать кто есть кто.

Это как?

Во-первых, Ваше "припрет" - это единственно возможный режим работы UART - если устройство ничего не передает, то оно держит на своем выходе TX как раз единицу.

Теперь представим несколько устройств, TX которых "защищены" резисторами. Пусть, для определенности - 3. Пусть, для определенности, эти устройства не пытаются передавать одновременно, т.е. когда одно устройство передает, другие - молчат, т.е. держат на своем выходе "1". Тогда на входе RX Arduino будет сигнал с уровнем, изменяющимся от 3.3 до 5 В, что однозначно будет воспринято входом как "1". Т.е. Ардуина в этом случае в принципе неспособнеа что-то принять.

Voodoo Doll
Voodoo Doll аватар
Offline
Зарегистрирован: 18.09.2016

mykaida, это точно

andriano, логика "активный ноль" делается из логики "активная единица" инверторами, держу в курсе :) А вообще надо будет сделать такое, чтобы проверить, что как работает. Часто спрашивают.

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

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

И второе: даже если Вы инвертируете сигнал, то сумма от трех передатчиков через 3 резистора будет изменяться в пределах от 0 до 1.7 В, что будет восприниматься обычным цифровым входом как постоянный "0". Т.е. даже при изменении протокола сигнал приниматься не будет.

tomas111
Offline
Зарегистрирован: 01.03.2018

andycat пишет:

tomas111 пишет:

Да, но какие не знаю.

Понимаете ли, любое устройство или какой либо предмет поектируется для исполнения какой либо цели/задачи.

Невозможно что либо посоветовать пока вы сами не опишите зачем вам вообще это.......поиграться? начните с простенького, светодиодиком поморгайте, моторчиком покрутите...потом уже переходите к более сложному.

С чего вы решили что не понимаю? Я накидал схему в которой хотел бы увидеть функционал. По конктреным моделям не смотрел. Решил спрсоить сперва воозможно это или нет. 
 
tomas111
Offline
Зарегистрирован: 01.03.2018

andriano пишет:

tomas111, UART - это не тот интерфейс, к которому можно подключить много разных датчиков. Посмотрите лучше в сторону I2C или SPI.

 

Понял, спасибо!
 
Мне нужно устройство с большим обвесом. Где можно получить координаты (GPS), отправить их по каналу GSM. Получать данные по wifi обрабатывать и выводить на экран. Тут ещё не хватает камеры которая могла бы транлировать всё в wifi сеть.
spa-sam предложил не плохой вариант. Возможно это самое лучшее решение. Но вторым фактором это стоит размер самого девайся.
 
sadman41
Offline
Зарегистрирован: 19.10.2016

Опять на ардуину 4K камеру вешают... 

tomas111
Offline
Зарегистрирован: 01.03.2018

sadman41 пишет:

Опять на ардуину 4K камеру вешают... 

 

Нет, 4К камера мне не нужна.