Между ардуино и PC около 100 метров. Чем соединить?

i_demidov
Offline
Зарегистрирован: 22.08.2016

Добрый день!

Я новичок работе с ардуино и не как не могу сообразить как соединить ардуино и PC на большом растоянии. У меня световое табло фритроникс, я написал программу на C# которая посылает на виртуальный COM порт арудуины то что нужно выводить на табло, а ардуино это читает. Все хорошо, но вот только от табло до компьютера около 100 метров (чуть меньше). Боюсь USB такое растояние не вытянет. 

Можно через конвертор перекинуть RS232 в RS485, а у компьютера в обратную. Но вот не могу сообразить как сделать это с USB, там же ком порт виртуальный. Будет ли работать если взять конвертер USB - RS232-RS485, а у компа конвертировать в обратную RS485->RS232, и в компьютер? Будет ли ардуина так же понимать команды с этого порта?

Если нет посоветуйте решение.

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

будет.

ВН
Offline
Зарегистрирован: 25.02.2016

Вообще-то RS232 напрямую перекидывается в  RS422, это требует еще одну витую пару, т.е. всего две витых пары,  но обеспечивается полный дуплекс до километра.

i_demidov
Offline
Зарегистрирован: 22.08.2016

Ну проблема не в том чтобы перекинуть RS232 в RS422 или 485, таких конверторов в магазинах хоть лопатой греби. А вот ubs -> RS232.

Я не совсем понимаю суть конвертирования. Если взять USB выход с ардуино, конвертировать его в RS232, то потом я смогу подключить этот RS232 к стандартному ком порту и скетчи будут без проблем заливатся?

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013
ВН
Offline
Зарегистрирован: 25.02.2016

i_demidov пишет:
Я не совсем понимаю суть конвертирования. 

USB  сложный для реализации протокол, поэтому его напрямую в простых процессорах обычно не используют, а используют UART(ы), в смысле логики работы это тот же  RS232 только в логических уровнях, а не +-12В в линии.

serge73
serge73 аватар
Offline
Зарегистрирован: 08.10.2014

А не проще поставить Ethernet-шилд и передовать по ниму, отказавшись от RS232.

Возможно у вас уже есть раядом коммутаторы и тянуть ничего ну нужно, а если и придется то по стандарту 100м витой пары сигнал пробъет гарантированно. Плюсами могут стать универсальность подсоединения, удаленный доступ с любой точки планеты. Высокие скорости передачи данных. Надежность передачи. Где-то можно использовать Wi-Fi

i_demidov
Offline
Зарегистрирован: 22.08.2016

Спасибо большое. Закажу. Далее работа будет как если бы Ардуино был соединен с компом через USB и виртуальный ком? При установке USB в комп нужно будет поставить драйвера и будет создан вируальный ком порт?
 

 
#define SerialTxControl 10   //RS485 управляющий контакт на arduino pin 10
#define RS485Transmit    HIGH
#define RS485Receive     LOW  
char buffer[100];
void setup(void) {
  Serial.begin(9600);
   pinMode(SerialTxControl, OUTPUT);  
   digitalWrite(SerialTxControl, RS485Transmit); 
   Serial.println("TEST");  
  delay(100); 
  digitalWrite(SerialTxControl, RS485Receive);   
}
 
void loop(void) {
   
  digitalWrite(SerialTxControl, RS485Receive);  // читаем данные с порта
   
 int i=0; if(Serial.available()){delay(100);
while( Serial.available() && i< 99) 
{ buffer[i++] = Serial.read();} buffer[i++]='\0';}
  if(i>0)
  {
   
  Serial.println(buffer); // Выводим что приняли с других устройств
  }
 
}

Точно так же смогу отослать с компа строки, и читать их в цикле ардуино?

 
i_demidov
Offline
Зарегистрирован: 22.08.2016

Если честно не значю что такое UART и TTL хотя купил 3 разных модуля. Судя по тому что читал это что-то такое обычное как тройник для розетки что не кто не удосужевается расписать что это такое. Был бы очень признателен если бы вы расказали в чем тут суть. 

Ну вот например отрывок из Википедии 

узел вычислительных устройств, предназначенный для организации связи с другими цифровыми устройствами. Преобразует передаваемые данные в последовательный вид так, чтобы было возможно передать их по цифровой линии другому аналогичному устройству. Метод преобразования хорошо стандартизован и широко применяется в компьютерной технике (особенно в встраиваемых устройствах и системах на кристалле (SoC)).

Это описание помоему подойдет без изменение к еще сотни других устройсв и протоколов)))

i_demidov
Offline
Зарегистрирован: 22.08.2016

Ну как бы я тоже думал об этом. Но тут дело в том что Ethernet-шилд - почти сам комптютер. В нем куча всякого не нужного. Веб сервер с централизированной панелью управления для умного дома на нем развернуть - это да. А чтобы для 4-х светодиодных табло. Так то у меня есть файфай модули. Но дело в том что табло стоит на улице, а помещение в котором стоит компьютер обшито алюминием который жутко экранирует сигнал. 

ВН
Offline
Зарегистрирован: 25.02.2016

i_demidov пишет:
Далее работа будет как если бы Ардуино был соединен с компом через USB и виртуальный ком? При установке USB в комп нужно будет поставить драйвера и будет создан вируальный ком порт? 

Да. Большинство плат ардуино именно так и работает с ИДЕ.

Основоное про UART в вики расписано, только читать и разбираться, т.к. это базовый протокол.

TTL - транзисторно-транзисторная логика, в описании модулей часто упоинается для определения питания (+5В)  и уровней сигналов (0, +5В).