Adatum
Авг
20
2014

Подключение конвертера RS-485 в TTL к Arduino

Добрый день написать эту статью меня с подвигло то что не нашёл в интернете нормального описания подключения конвертера RS485 на микросхеме max485 к Ардуине.
Собственно что мы имеем это сама платка RS-485 на max485 и USB to rs485 конвертер.

Контакты RE и DE обедняем при подачи на них сигнала они будут переводить конвертер из режима чтения в режим передачи. R0 подключаем к RX0 Arduino. DI подключаем к TX1 Arduino.
USB to rs485 конвертер меняет режим автоматически, в обычном пежиме он читает с шины, как только поступает сигнал с ком порта переходит в режим передачи.

Скачать драйвер под конвертер usb-to-RS485 на чипсете CH341 bkb CH340

Скачать драйвер

max485 RS-485 Умный дом

Схема подключения

Возможно подключение как одного так и нескольких конвертеров RS-485 to TTL.
test789

Текст скетча.

#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); // Выводим что приняли с других устройств
  }

}
 

Фото устройства

2014-08-20_12-47-00
ajnj

Ну и напоследок видео демонстрация

Идея позаимствована от сюда http://arduino-info.wikispaces.com/SoftwareSerialRS485Example

Оставить комментарий

*

  • Автор, ну хоть немного исправь грамматические ошибки! Читать страшно…
    А за картинки — спасибо :)

  • Возможно ли работать посредством ардуины напрямую с оборудованием через rs485 без дополнительного преобразователя? Написать скетч, в котором будет преобразование.

  • И за что вы так запятые не любите?)

  • …ошибка. не byte a buffer.

  • Автор, обьясни по шагам основной цикл программы. Не понятно для чего запущен цикл while, что за значение 100 в квадратных скобках и почему оно находится после переменной byte типа char. Обьясни как можно подробнее. Спасибо!

  • Добрый день!
    Прошу прошение за вторжение.Ребята у меня такой вопрос. Можете подсказать? В данный момент у меня 1 Уно, 1 Нано и МАХ485, колесо от мопеда периметром 154 см. вместе с этой колесо креплен диск с прорезами, колич. прорезов 30 шт. индуктивный датчик. Скорость вращения колесо такая что частота импульсов меняется от 0 -1500 Гц. Мне надо на расстоянии 20 метров подсчитать количества импульсов и выводит на ноутбук. На логических элементов и 7 сегментном все нормально, но с ардуиной и СиШарпом как можно осуществить чтобы без ошибочно в реальное время подсчитать и выводить на экран? Заранее Спасибо.

  • Добрый день!
    Что то не получается с этим шилдом
    https://www.sparkfun.com/products/12965
    Есть ли разница между вашим и этим?

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

    • Пример показывает как в обе стороны передавать.

  • yuler да все отлично будет работать! если не нажимать кнопки одновременно, вам нужна помощь в написании скетча?

    • yuler да все отлично будет работать! если не нажимать кнопки одновременно, вам нужна помощь в написании скетча?
      ______________________________________________

      Здравствуйте Дмитрий! был б очен рад если поможете написанием скетча и с польной консултацией по подключения. А одновременное нажатие для начало первого варианта не помеха. Можно пока в инструкции лабораторных работ указать порядок выполнения работы.

    • Дмитрий мне сейчас надо ехать на работу. Я б хотел с Вами вечером обсуждать эту тему до конца если не против.

    • Дмитрий добрый вечер. Как там с моей просьбой? Сможем ли выделить время и обсуждать тему?

  • Я так и не понял в чем конкретно вопрос. На компьютере достаточно RS-485, Ардуино

    УНО не нужно но в этой схеме есть одна проблема из за которой я отказался от RS-485 в своем проекте, если slave одновременно отправляют показания от на мастера приходит «каша».

    • Здравствуй Дмитрий. на двух словах вопрос такой: От 10и до 12и шт. Ардуино нано и один компьютер в одном учебном классе. На каждой плате нано по 1 ной кнопки. По нажатии этой кнопки соответствующая плата нано отправил данные к компьютеру. данные могут быт разными (результат измерения, напряжение, и.т.п.

  • Доброго дня уважаемые! Сначало эту просьбу о помощи уже который раз

    видимо я ошибочно отправил не туда куда надо. По этому не получив

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

    Вашей помощи. Я в основном занимаюсь электроникой и программированием

    на C#. По этому мне легче работать на этой платформе. В основном я

    делал компьютерное управление лабораторных стендов по физике и т.п. Я

    их делал раньше на ЛПТ и ЮСБ портом.
    За основу брал обвертка Атмега16 ЮСБ, из статьи Кухтецского. Я их

    незначительно переделал печатных плат под ДИП корпуса т.к. в моем

    возрасте зрение не позволит не ошибаться в мелких деталях и переделал

    программу ХОСТа под своей нужды. Но они все работали отдельно со

    своими компьютерами. Когда я изучал и делал одну автономную

    лабораторию без компьютера с помощью Ардуино УНО мне понравилось его

    гибкость и легкость перепрограммирования. Поэтому мне поручили сделать

    сеть лабораторных стендов по категориям с одним компьютером.
    Значит у меня задача такая: Это еще предварительный проект.
    В классе имеются один компьютер, Ардуино УНО(мастер) и от 6ти до 10ти

    лабораторные стенды. У всех установлены Ардуино нано(слейвы) атакже ЖК

    дисплей 16х2. каждый студент выполняет разные виды лаб.работы. На

    каждом стенде находится кнопки для выбора значении, строго

    установленным названием. например: U1. U2.. I1..и.т.д. А в программе я

    их обозначу как переменный st1_u1, это значит стенд1-напряжение1

    и.т.д. Если пятый стенд тогда: U1. U2.. I1..и.т.д. А в программе я их

    обозначу как переменный st5_u1,st5_i1 это значит стенд5. напряжение1,

    ток1 и.т.д.это грубо говоря.
    Кроме этих кнопок на стендах находится еще по одной кнопки которое по

    нажатие эту кнопку нано должен отправлять значении выбранных по

    рабочим кнопкам к компьютеру по rs485. У меня сейчас в наличии Ардуино

    УНО(может быт УНО мне не нужен будет т.к. я думаю можно прямо отправит

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

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

    действия пока не понятно. С интерфейсом rs485 я еще не раза неработал

    но по схеме вижу это помоему лучший вариант. По этому не могу выбирать

    простой и дешевый вариант чтобы на половине пути небыли непредвиденные

    проблемы.
    Условия применения такая: От компьютера до последного стенда

    максимально 10-12м. количества слейвов от 6ти до 12ти шт., линия

    передача rs485, приоритет компонентам дешевизм т.к. учебные заведении

    это не производства, менще количество протянутых проводов желателно на

    rs485 (и еще беспроводной на ик мне понравилас но с протоколом пока

    неизвестно когда количество слейвов больше) и в конце

    помехоустойчивость.

  • А мне вот интересно, у меня уже используются пины RX и TX для общения блютус модулем, можно ли эти модули rs485 подключить к другим ножкам дуины для создания сети?

  • Купил TTL радиомодем вместо RS-485 для подключения к электросчетчикам. Пришлось докупить преобразователь как на картинке- 485-ttl. И нигде не нашел описания как его подключать. теперь вроде понимаю. Спасибо.

    • а можно поподробней, как радиомодем подключали, у меня такой же интерес. Или, что еще может пригодиться, как rs485 to wifi сделать на arduino…

  • Мелкое уточнение, на концах шины (2 провода к которым подключены все модули) должны стоять «заглушки» из резисторов, если используется витуха UTP5, то вроде 100Ом .. иначе может появиться «отражение» посылаемых данных

    • Это для скоростей 65к и выше. На 9600 этот резистор в 100ом всё убъёт

  • Спасибо, лично мне все понятно.
    А что касается комментариев 123ksn — то это известный всему интернету нытик и склочник с огромным самомнением. Наберите его ник в поисковике и вы увидите много форумов, где его просто банили, т.к. человек совершенно не умеет общаться.

  • По моему в описании RS485 я встречал требования чтобы у модулей была общая масса, хотя могу ошибаться нужно пробовать.

  • Мне интересно как устройства подключены к источнику питанию.
    У них отдельные источники с общим GND, либо полностью независимые.
    Будет ли схема работать если к примеру каждая ардуино будет питаться от своего аккумулятора?

    Спасибо

    • Будет ли схема работать если к примеру каждая ардуино будет питаться от своего аккумулятора?

      Будет! Это точно.

  • Отвечаю дорогой 123ksn. Т.к я как и многие другие пользуются готовыми модулями то не считаю нужным выкладывать не схему не топологию печатной платы USB-RS485 т.к это готовый модуль который продается в Китае за копейки .4) да скетч нужно залить в Arduino 5) Что мы увидим прекрасно видно на видео, но на всякий случай поясню.Плата Arduino определиться как один ком порт конвертер USB-RS485 как второй и открыв два окна мониторинга порта. Мы сможем передавать сообщения между ними через интерфейс RS485. Спасибо за комментарий, не стесняйтесь если что не понятно.

  • Хреновая статья. Написана для таких же умных/тупых как сам автор.
    Поясняю. 1)Где схема USB-RS485? 2)Где топология печатной платы 3)Где прошивка 4)Текст скетча — это программа, которую нужно залить в ардуино? 5)Что мы увидим, залив скетч?
    Короче, о многом надо догадываться или предполагать, или искать где-то в интернете. Такое чувство, что где-то скопировал и тупо у себя выложил. Извините за прямоту.

    • Лишь бы обо*рать .. мне к примеру всё прекрасно понятно )))
      Статья нормальная, да и сама идея «удобного дома» интересная … у меня крайне похожая схема :)