Несколько устройств на одной Serial шине

Mysterious
Offline
Зарегистрирован: 25.09.2012

Господа гуру подскажите пожалуйста как можно реализовать следующую задачу:

Есть одна мастер ардуина к ней планируется подключить несколько других ардуин слейвов которые должны:

- слушать мастера, слышать все его команды и програмно разбирать моя/не моя команда
- передавать мастеру команды
- не видеть других слейвов
- не иметь своего жесткого адреса
- не иметь отдельного провода для управления собой
- подключаться, отключаться, перезагружаться, на гарячуу, не влияя на шину

Идея была использовать для этого Serial шину. То есть к TX мастера подлючаются все RX всех слейвов и к RX мастера - соответственно все TX всех слейвов. Все на одной сторости 19200.  Устройств не много 4-10шт 
устройства общаются не очень часто, примерно раз в 1-5сек наборами из 2-10байт. Где первые 2 байта это команды и каждый из слейвов(если от мастера) сам решает реагировать на неё или нет, тоже саомое и от слейвов к мастеру. Информация не очень критичная, переодически дублируется.
Serial выбрал потому что дебажить удобно и тестировать.

Пытался собрать такую схему на 3х ProMini мастер истольковал softSerial остальные хардварный. 
Два между собой отлично работают, 3 уже никак ( Может резисторов на поддтяжку добавить или еще чего? не хочется просто городить велосипедов или юзать шину типа запрос - ответ. Ну или каждому девайсу еще по пину навешивать (

(и еще, это не очередной "умный дом" :) )

Vasia.Z
Vasia.Z аватар
Offline
Зарегистрирован: 30.11.2013

http://ru.wikipedia.org/wiki/UART

Через Serial у вас это не получится, увы.

Используйте SPI или I2C (=TWI) 

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Ну при осторожном и внимательном подходе - можно. У вас проблема в объединении в шину... электрическая нестыковка. Делайте так - тх всех слейвов обединяете на rx мастера через диоды направленные в сторону слейвов. Ножку мастера rx подтяните к питанию через резистор 1-10kom. Получится монтажное и. Тх мастера просто подключайте к rx ведомых. Естественно речь идет не о rs232, а о uart процессоров.

axill
Offline
Зарегистрирован: 05.09.2011

можно сделать но только нужны две вещи:

- поменять физичекий уровень. Выходы RX/TX ардуины физически это TTL/UART. Он не расчитан на подключение многих устройств. Есть ряд микросхем/чтандартов которые позволяют TTL заменить на физический уровень с возможностью подключения многих устройств. Один из них - RS485, например на микросхеме max485

- придумать или взять готовый протокол общения на такой шине (какой-нибудь модбас)

xstramento
Offline
Зарегистрирован: 19.10.2013
Mysterious
Offline
Зарегистрирован: 25.09.2012

Благодарю. Буду пробовать. Отпишусь о результатах, вдруг кому еще пригодится.

Есть правда еще одна особенность которую я забыл указать: все работать должно от одного 3.7v (Li-Pol) акуммулятора. А ST485BD да и MAX485D, они на 5v к сожалению.

xstramento
Offline
Зарегистрирован: 19.10.2013

Mysterious пишет:
Благодарю. Буду пробовать. Отпишусь о результатах, вдруг кому еще пригодится.

Есть правда еще одна особенность которую я забыл указать: все работать должно от одного 3.7v (Li-Pol) акуммулятора. А ST485BD да и MAX485D, они на 5v к сожалению.

примените повышающий преобразователь  DC-DC Converter Step Up Module 1-5V to 5V 500mA

другие повышающие DC-DC

модули TTL232-RS485

 

Mysterious
Offline
Зарегистрирован: 25.09.2012

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

xstramento
Offline
Зарегистрирован: 19.10.2013

Mysterious пишет:
Спасибо, но использование повышающей платы неприемлемо. Это лишние потери для аккумулятора, и не хочу усложнять ею схему.

тады ой

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Используйте мой совет. Будет работать без танцев с бубном. Диод как раз вам и поможет развязать физический уровень. А можно еще проще. Этот прием да же в апнотах атмеловских описан. Раз у вас клиенты с софтверным последовательным интнрфейсом, то для передачи 0 переключите ногу тх на выход и установите на ней 0, а для передачи 1 - переключите эту ногу на вход. Таким образом когда на шине объединится несколько процессоров не будет колизий по электрическим нагрузкам.

Mysterious
Offline
Зарегистрирован: 25.09.2012

brokly пишет:

Используйте мой совет. Будет работать без танцев с бубном. Диод как раз вам и поможет развязать физический уровень. А можно еще проще. Этот прием да же в апнотах атмеловских описан. Раз у вас клиенты с софтверным последовательным интнрфейсом, то для передачи 0 переключите ногу тх на выход и установите на ней 0, а для передачи 1 - переключите эту ногу на вход. Таким образом когда на шине объединится несколько процессоров не будет колизий по электрическим нагрузкам.

что-то вы меня малость запутали. Я собирался по вашему совету просто поставить на всех TX всех слейвов по диодику в сторону к RX мастера с подтяжкой на плюс. А RX слейвов к ТХ мастера, без изменения, как делал раньше. Упрощать думаю не надо. потому как эту же шину я буду использовать для отладки через usb-uart платку, которю я могу просто подключить как один из слейвов (как я планировал)

Echo free
Offline
Зарегистрирован: 10.03.2014

Mysterious пишет:

brokly пишет:

Используйте мой совет. Будет работать без танцев с бубном. Диод как раз вам и поможет развязать физический уровень. А можно еще проще. Этот прием да же в апнотах атмеловских описан. Раз у вас клиенты с софтверным последовательным интнрфейсом, то для передачи 0 переключите ногу тх на выход и установите на ней 0, а для передачи 1 - переключите эту ногу на вход. Таким образом когда на шине объединится несколько процессоров не будет колизий по электрическим нагрузкам.

что-то вы меня малость запутали. Я собирался по вашему совету просто поставить на всех TX всех слейвов по диодику в сторону к RX мастера с подтяжкой на плюс. А RX слейвов к ТХ мастера, без изменения, как делал раньше. Упрощать думаю не надо. потому как эту же шину я буду использовать для отладки через usb-uart платку, которю я могу просто подключить как один из слейвов (как я планировал)

brokly пишет:

Ну при осторожном и внимательном подходе - можно. У вас проблема в объединении в шину... электрическая нестыковка. Делайте так - тх всех слейвов обединяете на rx мастера через диоды направленные в сторону слейвов. Ножку мастера rx подтяните к питанию через резистор 1-10kom. Получится монтажное и. Тх мастера просто подключайте к rx ведомых. Естественно речь идет не о rs232, а о uart процессоров.

 

ДИОДЫ БУДУТ РАБОТАТЬ  ЕСЛИ ДЛЯ Tx Slave АКТИВНЫЙ УРОВЕНЬ = 0

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Просто я описал два способа. Один с диодами, второй без, но с программными заморочками. Во втором способе диоды не нужны, потому что логический 0 - 0 ТТЛ, а логическая 1- высокоимпедансное состояние ножки процессора. Картинка из предидушего поста соответствует первому способу, все правильно.

Кстати да работать будет если активный уровень ноль. А если нужна единица, то нужно перевернуть диоды в обратную сторону, а подтяжку сделать к нулю :-) Так же нужно поступить и с софтверным способом. Запрограммировать высокий логический уровень как 1 ttl, aлогический 0 как высокий импеданс, переключая, для передачи 0 ножку проца на вход.

Echo free
Offline
Зарегистрирован: 10.03.2014

brokly пишет:
Просто я описал два способа. Один с диодами, второй без, но с программными заморочками. Во втором способе диоды не нужны, потому что логический 0 - 0 ТТЛ, а логическая 1- высокоимпедансное состояние ножки процессора. Картинка из предидушего поста соответствует первому способу, все правильно.

Кстати да работать будет если активный уровень ноль. А если нужна единица, то нужно перевернуть диоды в обратную сторону, а подтяжку сделать к нулю :-) Так же нужно поступить и с софтверным способом. Запрограммировать высокий логический уровень как 1 ttl, aлогический 0 как высокий импеданс, переключая, для передачи 0 ножку проца на вход.

 

 

brokly пишет:
Просто я описал два способа. Один с диодами, второй без, но с программными заморочками. Во втором способе диоды не нужны, потому что логический 0 - 0 ТТЛ, а логическая 1- высокоимпедансное состояние ножки процессора. .

Slave не синхронны между собой и без диодов - надежный способ убить TX

Без диодов можно так:

 

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

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

Echo free
Offline
Зарегистрирован: 10.03.2014

brokly пишет:
Вот та картинка которая зачеркнута будет работать, если правильно запрограмировать активный и не активный уровень вывода. Внимательно читайте то что я написал.  

Работать будет, но схема потенциально опасная для выходов (верхний рис)

Желательно хотя бы резисторами 100-200 Ом подстраховаться (нижний рис)

 

 

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Нет никакой опасности.После ресета все ноги атмеги сконфигурированы как входы. Для передачи активного уровня просто конфигурируем ногу на вывод ttl единицы,  для передачи 0 переводим ногу опять на чтение. Таким образом на шине, самое страшное, что может произойти это несколько процессоров выставят на шине 1, не думаю что возникнут фатальные токи :-) Но резисторы воткнуть можно, не больше 10 ом, при большем сопротивлении на динной шине работать не будет.

Echo free
Offline
Зарегистрирован: 10.03.2014

brokly пишет:
Нет никакой опасности.После ресета все ноги атмеги сконфигурированы как входы. Для передачи активного уровня просто конфигурируем ногу на вывод ttl единицы,  для передачи 0 переводим ногу опять на чтение. Таким образом на шине, самое страшное, что может произойти это несколько процессоров выставят на шине 1, не думаю что возникнут фатальные токи :-) Но резисторы воткнуть можно, не больше 10 ом, при большем сопротивлении на динной шине работать не будет.

Если один мк выставит 1, а другой 0  вот и есть КЗ в масштабе мк.

А почему не больше 10 Ом, токи ведь небольшие  до 50 мА на все выводы мк  суммарно

5В/10 ом=0,5 А

5В/100 ом= 0,05 А (50 мА)

5В/(100+100) ом=0,025 А (25 мА)

 

 

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Вы читаете что я пишу ?! Или это разговор глухого со слепым. Никто не выставит 0, потому что в софтвернй реализации вместо установки логического ноля я предлагаю переключать порт на вход !!!!!!!!!!!!!!!! 

Echo free
Offline
Зарегистрирован: 10.03.2014

brokly пишет:
Вы читаете что я пишу ?! Или это разговор глухого со слепым. Никто не выставит 0, потому что в софтвернй реализации вместо установки логического ноля я предлагаю переключать порт на вход !!!!!!!!!!!!!!!!

Пафос не уместен, никогда не говорите никогда. Может быть ошибка программиста или сбой техники.

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

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

QQEVSKIY
Offline
Зарегистрирован: 12.02.2014

brokly пишет:
И почему не больший резистор уже обяснено. Закон ома мне еще в школе преподавали. Считать ток кз без учета схемы выходного контура ноги - слишком опрометчиво. Плотно занимался реализацией 1-ware, клиента. А значит софтверная реализация. Там ничего в электрическом плане не отличается от предложенного здесь, все работает. Я прекрасно понимаю о чем говорю. Вы же только предполагаете. Какой, блин пафос... чукча не читатель, чукча писатель (цы). Повторю, после сброса процессора все его ноги настроены на выход. В какой момент вдруг с какого то перепуга возникнет замыкание... вы уже не знаете что придумать ?

мне говорили про brokly -  у него нет высшего радиоэлектронного образования

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Конечно. Я водитель автобуса. А еще психиатр недоучка.... вы сильно больны. Вам никто не поможет. Кстати, сплетни - один из грехов.

Mysterious
Offline
Зарегистрирован: 25.09.2012

Итак, результаты тестов готовы. Тестировал на 1 мастере и 2 слейвах

Испоьзовал схему с диодами и подтяжкой в 10К к плюсу. Диоды взял простоые ограничивающие, на 15в кажется.

Скетч прилагаю. Пабросал, хотя можно было бы и пооптимальнее конечно ))) Он один для всех устройств. просто ставим перемычку пин 10 к плюсу если мастер и к минусу если слейв. Перемычку пин 9 к прюсу если первое устройство и к минусу если второе (номер устройства не принципиален, можно 2 первых или вторых стелать) На пин 2 каждого слейва вешаем светодиод. A0 и A1  мастера это соответственно TX и RX к которым подключаем слейвы (я не использовал основкую шину потому что во моем проекте именно так и будет, отбельная софтварная шина)

#include <SoftwareSerial.h>
#define rxPin A1
#define txPin A0
#define modePin 10
#define modeStatPin 9
#define ledPin 2
bool master = false;
byte nSlave = 1;
SoftwareSerial tinnySerial(rxPin, txPin);

void setup(){
	pinMode(modePin, INPUT);
	pinMode(modeStatPin, INPUT);
	pinMode(ledPin, OUTPUT);
	delay(5);
	Serial.begin(9600);
	if(digitalRead(modePin)){
		master = true;
		tinnySerial.begin(9600);
	}else{
		if(digitalRead(modeStatPin)) nSlave = 2;
	}
}

void loop() {
	if(master){
		if(Serial.available()){
			while(Serial.available()){
		        tinnySerial.write(Serial.read());
		    }
		}
		if(tinnySerial.available()){
			while(tinnySerial.available()){
		        Serial.println(tinnySerial.read());
		    }
		}
	}else{
		if(Serial.available()){
			while(Serial.available()){
		        switch(Serial.read()){
		        	case '1':{
		        		if(nSlave==1) {
		        			digitalWrite(ledPin, HIGH);
		        			delay(50);
		        			digitalWrite(ledPin, LOW);
		        		}
		        	} break;
		        	case '2':{
		        		if(nSlave==2) {
		        			digitalWrite(ledPin, HIGH);
		        			delay(50);
		        			digitalWrite(ledPin, LOW);
		        		}
		        	} break;
		        	case '3':{
		    			digitalWrite(ledPin, HIGH);
		    			delay(50);
		    			digitalWrite(ledPin, LOW);
		        	} break;
		        }
		    }
		}
		if(random(0,1000)==42){
			Serial.print(nSlave);
		}
	}
  
}

С этим кодом все работает!!! )
Тестировал на 3х Arduino Pro Mini 328 3.3v 8mHz

Мониторил основно serial порт мастера. туда, как и полагается в последних стороках кода, с разной переодичностью слейвы сливают свой номер. А если передать "1" или "2" то блымнет светодиод на слейве у которого такой номер. Если отправить "3" то блымнет на обоих.

Так что спасибо всем кто помогал )

Echo free
Offline
Зарегистрирован: 10.03.2014

Mysterious пишет:
Итак, результаты тестов готовы. Тестировал на 1 мастере и 2 слейвах

Испоьзовал схему с диодами и подтяжкой в 10К к плюсу. Диоды взял простоые ограничивающие, на 15в кажется.

ограничивающие то есть TVS или стабилитрон ?

 

 

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Это должны быть обычные диоды, можно диоды шотки. Никаких супрессоров или стабиллитронов использовать нельзя. Они просто не откроются и никакой просадки на землю не будет. У нас в тролейбусах делают именно так ! Если линия будет длиннее нескольких метров, возникнет много помех, в этом случае можно не стесняясь уменьшать подтяжку до 1 кома.

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

А что бы работало БЕЗ ДИОДОВ, в softwareserial.cpp нужно заменить две функции

tx_pin_write на

#if _TriState_TX
void SoftwareSerial::tx_pin_write(uint8_t pin_state)
{
  if (pin_state == LOW)
    *_transmitPortRegister &= ~_transmitBitMask; // включаем ногу тх как выход с установленным 0
    *(_transmitPortRegister+1) |= _transmitBitMask; 
    *_transmitPortRegister &= ~_transmitBitMask;
  else
    *(_transmitPortRegister+1) &= ~_transmitBitMask; // переключаем ногу на вход в высокоимпедансном состоянии
}
#else
void SoftwareSerial::tx_pin_write(uint8_t pin_state)
{
  if (pin_state == LOW)
    *_transmitPortRegister &= ~_transmitBitMask;
  else
    *_transmitPortRegister |= _transmitBitMask;
}
#endif;


И функцию setTX на
void SoftwareSerial::setTX(uint8_t tx)
{
#if _TriState_TX
  pinMode(tx, INPUT); // нога TX будети по умолчанию в высокоимпедансном состоянии
#else
  pinMode(tx, OUTPUT);
  digitalWrite(tx, HIGH);
#endif
  _transmitBitMask = digitalPinToBitMask(tx);
  uint8_t port = digitalPinToPort(tx);
  _transmitPortRegister = portOutputRegister(port);
}

 Задействовать отключение диодов

#define _TriState_TX 1

Код не пробовал, так что аккуратнее. 

Echo free
Offline
Зарегистрирован: 10.03.2014

brokly пишет:
Это должны быть обычные диоды, можно диоды шотки. Никаких супрессоров или стабиллитронов использовать нельзя. Они просто не откроются и никакой просадки на землю не будет. У нас в тролейбусах делают именно так ! Если линия будет длиннее нескольких метров, возникнет много помех, в этом случае можно не стесняясь уменьшать подтяжку до 1 кома.

стабилитроны и однонаправленные TVS ( они же подавители, супрессоры, ограничительные) должны работать (автор пишет про ограничение 15В, оно в отрицательной области и не мешает),

хотя наилучшим решением и  тем более для мк с питанием 3,3В будут диоды Шоттки

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Что в отрицательной области ? Стабилитрон на 15 вольт до 15 вольт не будет пропускать через себя какой либо значительный ток. Супрессор откроется лавинообразно при разности потенциалов не менее 15 вольт. В нарисованном включении (кстати нарисованы именно диоды), ничего работать не будет, при 5 вольтах ток не потечет. Echo free, Вы меня удивляете ! Я хоть и водитель тролейбуса, но не больной как QQEVSKIY и лечиться не собираюсь. Кстати мне говорили про QQEVSKIY -  у него нет никакого образования.

Echo free
Offline
Зарегистрирован: 10.03.2014

brokly пишет:
Что в отрицательной области ? Стабилитрон на 15 вольт до 15 вольт не будет пропускать через себя какой либо значительный ток. Супрессор откроется лавинообразно при разности потенциалов не менее 15 вольт. В нарисованном включении (кстати нарисованы именно диоды), ничего работать не будет, при 5 вольтах ток не потечет. Echo free, Вы меня удивляете ! Я хоть и водитель тролейбуса, но не больной как QQEVSKIY и лечиться не собираюсь. Кстати мне говорили про QQEVSKIY -  у него нет никакого образования.
с больными и троллейбусами ничем помочь не смогу,

А стабилитрон и однонаправленный TVS (если не вдаваться в технологические отличия) в положительной области напряжения эквивалентны диоду. То, что происходит в характеристике при напряжении ниже минус 15 В  (это ограничение по словам автора темы) не важно, это напряжение для ардуино 3,3 В недостижимо

У диода обратное напряжение пробоя еще выше.

 

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Я не виноват, что вы не знаете что такое тролейбус. Это не то же самое что троллейбус. Я вам не могу помочь с пониманием. Напрягитесь и поставьте эксперимент. Вам поможет ! навсякий случай обратите внимание на ориентацию диода в вашей же картинке ;) на всякий случай задумайтесь для чего можно использовать такое волшебное включение стабиллитрона или супрессора на 15 вольт в ТТЛ цепях. Я знаю два типичных применения супрессора и столько же стабиллитрона. И мне как водителю троЛейбуса было бы интересно знать ваше мнение о третьем, придуманом вами, способе примениения... очень интересно. 

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

Mysterious
Offline
Зарегистрирован: 25.09.2012

У меня под рукой оказались стабилитроны, их и использовал. Но думаю что лучше было бы использовать шотки.

Echo free
Offline
Зарегистрирован: 10.03.2014

brokly пишет:

Я не виноват, что вы не знаете что такое тролейбус. Это не то же самое что троллейбус. Я вам не могу помочь с пониманием. Напрягитесь и поставьте эксперимент. Вам поможет ! навсякий случай обратите внимание на ориентацию диода в вашей же картинке ;) на всякий случай задумайтесь для чего можно использовать такое волшебное включение стабиллитрона или супрессора на 15 вольт в ТТЛ цепях. Я знаю два типичных применения супрессора и столько же стабиллитрона. И мне как водителю троЛейбуса было бы интересно знать ваше мнение о третьем, придуманом вами, способе примениения... очень интересно. 

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

Для водителей троллейбусов главными являются не знания, а умения и рабочие навыки, полученные в СПТУ. Пытаюсь донести ло вас простые вещи:  в положительной области ВАХ поведение диода, стабилитрона и 1-направленного TVS одинаково, а при заявленных ТС параметрах (15В )  левая часть ВАХ и обратное напряжение не важны для микроконтроллера с питанием 3,3В.

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Вы пугаете меня своим умом... Я то дурак дорогу к википедии не знаю... Вы с таким умным видом спрашивали какие именно стабилитроны применил топикстартер,  конечно это ооочень важно... Только не нужно это.  Вы этого понять не хотите, все чем то со мной меряетесь. Я тут предложил решение вы и с ним спорили... сначала... чего то про резисторы рассказывали. Вы сюда зачем ходите нервы потрепать нормальным водителям тролейбуса ? Самоутвердится ? Как то глупо и смешно получается, не находите ? Крику с вас много, а смыслу нетути.  За то рисуете хорошо, может вы не учитель русского, а преподаватель по изо ? Устал я от вас, пойду делом займусь

Mysterious
Offline
Зарегистрирован: 25.09.2012

Воу-Воу!!! Поздержаней господа )  Эта тема не стоит того чтобы меряться у кого диод круче )
Решение на мой вопрос найдено, всем спасибо. 

Мир.Труд.Март )

Echo free
Offline
Зарегистрирован: 10.03.2014

brokly пишет:
Вы пугаете меня своим умом... Я то дурак дорогу к википедии не знаю... Вы с таким умным видом спрашивали какие именно стабилитроны применил топикстартер,  конечно это ооочень важно... Только не нужно это.  Вы этого понять не хотите, все чем то со мной меряетесь. Я тут предложил решение вы и с ним спорили... сначала... чего то про резисторы рассказывали. Вы сюда зачем ходите нервы потрепать нормальным водителям тролейбуса ? Самоутвердится ? Как то глупо и смешно получается, не находите ? Крику с вас много, а смыслу нетути.  За то рисуете хорошо, может вы не учитель русского, а преподаватель по изо ? Устал я от вас, пойду делом займусь
троллейбусное чудо вы на другую букву

brokly пишет:
Это должны быть обычные диоды, можно диоды шотки. Никаких супрессоров или стабиллитронов использовать нельзя. Они просто не откроются и никакой просадки на землю не будет.
Просадка у вас в голове. Слушайте внимательно - стабилитроны или TVS на напряжение более 5В в данном случае использовать можно.

 

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Был, видел, думал еще можно что то поправить, ошибся. Здоровья вам.

Echo free
Offline
Зарегистрирован: 10.03.2014

brokly пишет:
Был, видел, думал еще можно что то поправить, ошибся. Здоровья вам.

человеку рабочей специальности вполне простительно  сначала утверждать:

brokly пишет:
Это должны быть обычные диоды, можно диоды шотки. Никаких супрессоров или стабиллитронов использовать нельзя. Они просто не откроются и никакой просадки на землю не будет

но потом передумать и после просадки в голове " да я , да вот , да птичка в рот, понимаете  я ошибался"

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Спасибо что разрешили, ваше высочество !  Куда вы без нас тупых люмпхенов. И зад то сами подтереть не сможете. Будете копаться в викепедии и пытаться резисторы примострятич туда куда они как корове седло :-) Умник недоразвитый :-) Расти-учись-закаляйся может и выдет что из осталопа :-) Мудо ты на букву `ч` :-)

Зы кстати мудо на букву ч чем нибудь отличается от чуда на букву м ? 

Echo free
Offline
Зарегистрирован: 10.03.2014

brokly пишет:
Спасибо что разрешили, ваше высочество !  Куда вы без нас тупых люмпхенов.

Упорный ты, обкакался таким заявлением, но признаться стыдно.

brokly пишет:
Это должны быть обычные диоды, можно диоды шотки. Никаких супрессоров или стабиллитронов использовать нельзя. Они просто не откроются и никакой просадки на землю не будет. У нас в тролейбусах делают именно так ! Если линия будет длиннее нескольких метров, возникнет много помех, в этом случае можно не стесняясь уменьшать подтяжку до 1 кома.

А википедию тебе полезно читать так как основ не знаешь

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Я то упорный, а ты умытый. Читай википедию, я там для тебя пишу :-) Я, кстати,  тут не какаю и не писаю в отличии от тебя. Мне иногда удается кому нибудь помочь. Тебе, прости, помочь не смогу. Тебе дорога к дипломированному психоаналитику или к психиатру. Только они тебя из твоей грязи вынут... тебя кто то обидел сильно... но это тема для другого форума. Да же твой ник об этом кричит... бедный ты бедный... мне правда жаль тебя.

Echo free
Offline
Зарегистрирован: 10.03.2014

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

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Приложи себе пару резисторов к голове, может поможет, ты же везде их применяешь, да же взамен диодов :)  Можно и вилкой суп хлебать, но это решение идиотов. Как и супрессоры вместо диодов. Читай, образовывайся http://go-radio.ru/supressor.html .  Да и на заметку тебе, если ты реально считаешь, что троль твое призвание, то и тут ты ошибаешься. Зарегистрировать пару ников и изображать из себя умную толпу у не очень умного человека все равно не получится :)

Итог, мое предложение с диодами работает, не взирая на то что ты хотел ставить резисторы и кричал что все сгорит. Мое предложение без диодов то же работает, хоть ты и вспомнил закон ома. Кстати ты то чем топикстартеру помог, только тем, что путал его ? А потом зацепился за меня ? Встало у тебя ? Или все напрасно ? :)

Echo free
Offline
Зарегистрирован: 10.03.2014

brokly пишет:
Приложи себе пару резисторов к голове, может поможет, ты же везде их применяешь, да же взамен диодов :)  Можно и вилкой суп хлебать, но это решение идиотов. Как и супрессоры вместо диодов.

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

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

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Надоело... Можно и гланды удалить через задницу, автогеном :) Тебе же топикстартер написал, что это из-за отсутствия диодов. Про младшего научного ты грамотно зарядил. Сразу понятны твои комплексы. Ну сходи к врачу не мучай себя :) 

Пионер
Offline
Зарегистрирован: 04.02.2019

brokly пишет:

Ну при осторожном и внимательном подходе - можно. У вас проблема в объединении в шину... электрическая нестыковка. Делайте так - тх всех слейвов обединяете на rx мастера через диоды направленные в сторону слейвов. Ножку мастера rx подтяните к питанию через резистор 1-10kom. Получится монтажное и. Тх мастера просто подключайте к rx ведомых. Естественно речь идет не о rs232, а о uart процессоров.

Пытаюсь подключить три PZEM004T v1 к ардуино УНО.

Как понял из прочитанного на форуме-на PZEM004 нужно поменять адреса (чтобы на всех трех они были разные) а потом , обращаясь к каждому устройству по его адресу ,считывать данные с каждого.

С одним модулем PZEM004 проблем нет-читаем без проблем .

С тремя - толком ничего не нашел ни примеров , ни подключения. И решил каждому PZEMу присвоить свой уникальный номер при помощи скетча из примеров(192.168.1.1, 192.168.1.2, 192.168.1.3). А потом в новом  скетче(без команды pzem.setAddress(ip))- сделать последовательный опрос каждого модуля.

Но  как подключить все это ?

Ув.brokly - подойдет ли ваш способ подключения трех PZEM004 к одному UART(hardserial) ардуины?

 

Mysterious
Offline
Зарегистрирован: 25.09.2012

Думаю нет, в вашем случае лучше использовать или камень с несколькими UART или несколько SofwareSerial.

b707
Offline
Зарегистрирован: 26.05.2017

Пионер, вы с дуба рухнули? Что за IP адреса на Сериал шине?...?
Ну и бред
Почитайте хоть что-нибудь, прежде чем такие вопросы задавать

sadman41
Offline
Зарегистрирован: 19.10.2016

b707, у pzem - это штатная фича. Китайцы-разработчики накидались веществ и придумали... На самом деле, конечно, там не никакого ip-адреса нет, просто четырехбайтовый идентификатор в пакете, который передается по UART, похож на IP и в мануале так приводится: 192.168.1.1

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

b707
Offline
Зарегистрирован: 26.05.2017

Пипец.... то что тут кто-то обкурился - очевидно :) ну значит это не Пионер. Приношу извинения

sadman41
Offline
Зарегистрирован: 19.10.2016

Да, согласен. PZEM с UART - вещь специфическая. Вроде как и ставится в параллель, но как - сам производитель открыто не рассказывает. Поэтому начинаются извращения с хардварным моддингом счётчиков.