Интерфейс I2C не работает, не понимаю почему (rs 485 тоже)

Тема в разделе "Arduino & Shields", создана пользователем yozhikov.d, 24 мар 2019.

  1. yozhikov.d

    yozhikov.d Нерд

    Ну собсна понеслась) Есть у кого-нибудь рабочая библиотека, для общения через интерфейс rs 485, желательно на протоколе модбас?
     
  2. znamen

    znamen Guest

    Модбас пока не обязательно.То потом.
     
  3. znamen

    znamen Guest

    Пока народ откликается, и чтоб время не терять. Возьми осцилограф и посмотри на Максе входы и выходы . Там
    вообще есть какое нибудь шевеление.?
     
  4. yozhikov.d

    yozhikov.d Нерд

    Так вот проблемка,его нет( я бы сразу так сделал, я писал вроде об этом. Завтра соберу на Uno осциллограф, делал так уже от безвыходности
     
  5. ИгорьК

    ИгорьК Гуру

    Если это не последняя в жизни поделка на мк - купите логический анализатор. Всяко полезнее осциллографа для нашего дела.
     
    DIYMan и parovoZZ нравится это.
  6. yozhikov.d

    yozhikov.d Нерд

    А они так же миллионы, как и осциллографы стоят?
     
  7. ИгорьК

    ИгорьК Гуру

    Допросите али и выберите по карману.

    Даже самый недорогой в 90% случаев будет полезнее чем осциллограф.
     
  8. znamen

    znamen Guest

    Да возьмите за 5 минут спаяйте на 555 таймера ждущий одновибратор с перезапуском- вот Вам и логический
    элементарный пробник. Светодиод на выход не забудьте. Для данной задачи -с головой. А временные диаг
    раммы рассматривать потом осцилографом будете.
     
  9. ИгорьК

    ИгорьК Гуру

    И вам тоже рекомендую :) Особенно вам :)
     
  10. Daniil

    Daniil Гуру

    SoftwareSerial не подозрительная библиотека.
    Библиотеки с rs485 смысла нет - тот же юарт (условно(!) serial) с выводом rede.
    контроль, конечно, нужен. Но сейчас это излишне. Передатчик посылает данные раз в 250мс.
    Приемник в любом случае очищает свой буфер при наличии 2ух и более байт в буфере.

    Я бы на месте ТС соединил бы ардуинки без max485 и проверил бы код. (причем, при убирании максов код редактировать нет необходимости). И если при работе на uart (почему, собственно, с этого и не начали изучать интерфейсы?) всё будет правильно, то можно переходить на rs485
     
  11. znamen

    znamen Guest

    Так у меня есть и анализатор и осцилограф. Обижаете.
     
  12. znamen

    znamen Guest

    Для меня все библиотеки(это касается не только ардуиновских) с которыми я не работал-есть подозрительные. Таков мой чисто субъективный принцип.
     
    Daniil нравится это.
  13. Daniil

    Daniil Гуру

    совершенно аналогично, только, я с ней работал)
     
    znamen нравится это.
  14. znamen

    znamen Guest

    Семен-Семеныч. Сейчас будет все работать. Подтяните 6 ногу максса через сопротивление 560 Ом к плюсы
    (Это нога А) . 7 ногу Макса через такое же сопротивление к минусу. (Это нога В) и 120 Ом между А и В.
    Иначе работать не будет. Эта мысль пришла мне в голову после сообщения Данила,когда он сказал,что
    библиотека рабочая. Данила ставлю тебе "Мне нравится" И на слейве так же.
    Когда в посте 10 я говорил о волновом сопротивлении,я имел ввиду сопротивление между
    выходами А и В. А о специфической подтяжка и к плюсу и к минусу из головы вылетело-старею.
     
    Последнее редактирование модератором: 24 мар 2019
  15. Daniil

    Daniil Гуру

    Ну, на счет подтяжек, то я пользовался этой статьей. (ранее не выкладывал, т.к. её нужно было найти...)
     
  16. znamen

    znamen Guest

    Так Вы статью читали? Или подтягивали?
     
  17. znamen

    znamen Guest

    Вот схема,которая мною применялась на десятках устройств. Это автоматический адаптер RS485. Который
    вообще не требует управляющего сигнала переключения направления передачи. Этот сигнал формируется
    автоматически. Для управления только RX и. TX. Управляется обыкновенным Serialom.
     

    Вложения:

    Daniil нравится это.
  18. Daniil

    Daniil Гуру

    И то, и то.
    Спасибо!
     
  19. yozhikov.d

    yozhikov.d Нерд

    Всем добрый день!) В общем ситуация следующая:
    Накинул я сопротивлений по схеме, даже емкости добавил на питания - не заработало, прозвонил всю схему на короткие + перепроверил все подключения - все отлично, похоже дело в коде. Дальше
    Убрал схемку с максами, подключил напрямую согласно коду - не заработало, светодиод не горит и в сериал ничего не пишет. Выходит проблема в коде? PS осциллограф еще не собирал
    Код (C++):
    //Мастер
    #include <SoftwareSerial.h>

    //#define DIR 8 // прием\передача
    SoftwareSerial RS485 (11, 10); // RX, TX
    int del = 70;

    void setup(){
      Serial.begin(9600);
      RS485.begin(9600); // SoftwareSerial

      //pinMode(DIR, OUTPUT);
    }

    void loop(){
       
    //digitalWrite(DIR, HIGH);
      delay(del);
        RS485.write(2); //  ID
        RS485.write(3); // отправляем второй байт,
      delay(del);  
       }
    Код (C++):
    //Слейв
    #include <SoftwareSerial.h>

    //#define DIR 8

    const byte ID = 2;
    SoftwareSerial RS485 (11, 10); // RX, TX

    void setup(){
      Serial.begin(9600);
      RS485.begin(9600); // SoftwareSerial
    // pinMode(DIR, OUTPUT);
      pinMode(5, OUTPUT);
    // digitalWrite(DIR, LOW); // включаем прием
    }

    void loop(){

    if (RS485.available() >= 2) {
       byte id = RS485.read();
        Serial.print(id);
        if (id == ID){
            byte val = RS485.read();
            if (val == 3) {
              digitalWrite(5, HIGH);
                delay(150);
              digitalWrite(5, LOW);
                delay(150);
                 digitalWrite(5, HIGH);
                delay(150);
              digitalWrite(5, LOW);
                delay(150);
                 digitalWrite(5, HIGH);
                delay(150);
              digitalWrite(5, LOW);
                delay(150);
             }
         
            }
        else {
          RS485.flush();
        //  digitalWrite(5, HIGH);
        }
    }
    }
     
     
    Последнее редактирование: 27 мар 2019
  20. znamen

    znamen Guest

    Серьёзные проблемы. Давайте договоримся о правилах решения проблемы. Вы слушаете только меня.
    На сторонние реплики не реагируете. Диалог ведете исключительно со мной и строго выполняете мои реко
    мендации. Если вы согласны ,я готов Вам помочь. Если нет-то к Гурям.
     
    Последнее редактирование модератором: 26 мар 2019