Передача данных между ардуино

Тема в разделе "Arduino & Shields", создана пользователем TiMoN816, 14 июн 2021.

  1. parovoZZ

    parovoZZ Гуру

    Да ничем не кончится. Электронику в авто проектируют специалисты и она проходит сертификацию.
     
  2. b707

    b707 Гуру

    TiMoN816, интересно, если в коде для Нано первую строчку в loop()
    Код (C++):
    NANO.write(bSerial.rxRead());
    заменить на
    Код (C++):
    bSerial.print(bSerial.rxRead());
    что-нибудь изменится? - проверьте, если не сложно

    не ошиблись? в коде библиотеки вроде 9, 10, 11 (PB1, PB2, PB3)
     
    Последнее редактирование: 16 июн 2021
  3. b707

    b707 Гуру

    на митсубиши аутлендер, если фигачить все подряд в КАН - очень быстро загорается "чек".
    Это как минимум :)
     
  4. TiMoN816

    TiMoN816 Нерд

    Понимаю, что не отсылаю в шину авто! Авто и мега разные пины.
     
  5. TiMoN816

    TiMoN816 Нерд

    Да, ошибка, подключено правильно, написал Вам не правильно.
     
  6. TiMoN816

    TiMoN816 Нерд

    Насчет попробовать заменить строку... От Вас я только и слышу, что я все делаю не правильно, хотя Вы просто плохо читаете, что я пишу. Даже как-то обидно стало. Написал к каким пинам подключено, а Вы плохо прочитав уже осудили. В общем нет желания проверять... Извините.
     
  7. parovoZZ

    parovoZZ Гуру

    а как максимум?
     
  8. b707

    b707 Гуру

    Зря вы обижаетесь. я вас не троллю.
    Я вполне допускаю, что что-то неправильно понял.
    Уточните, какие именно "разные пины у авто и меги"?
    ну нет, так нет. Я исключительно из любопытства спросил
     
  9. TiMoN816

    TiMoN816 Нерд

    Нано общается с авто через пины 9,10,11.
    Между 2 ардуино: Нано gnd tx и Мега gnd rx.
    Вечером попробую поменять строку на вашу.
     
  10. TiMoN816

    TiMoN816 Нерд

    Сейчас читаю статьи как работать со String(), чтобы сравнивать имеющийся код с тем, что приходит с авто.
     
  11. TiMoN816

    TiMoN816 Нерд

    Код (C++):
    void setup(){
    Serial.begin(250000);
    }

    void loop(){
    if(Serial.available()){
    String ch;
    ch =Serial.readString();
    ch.trim();
    if(ch=="AVCLan"){
    SerialWrite("OK");
    }
    }
    }
    Пока получилось так, работает, но не подходит, так как если задержка между принятыми данными меньше 1сек, то 90% всего принятого не сравнивается, а просто пропускается. И похоже ещё буфер переполняется, т.к. выставив задержку в 1,5 сек, 5-6 значений сравнивается, а потом на 4-5 сек мега будто зависает, а потом опять начинает сравнивать.
     
  12. b707

    b707 Гуру

    А ссылки на схему той платы, куда Нано вставлена - не дадите?
    не, тогда пока не надо, сначала дайте схему глянуть :)
     
  13. b707

    b707 Гуру

    не стоит использовать readString()
    этот пример гляньте
    https://habr.com/ru/post/357890/

    Если получится, подскажу как модифицировать
     
  14. TiMoN816

    TiMoN816 Нерд

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

    Вложения:

    • shem1_1.png
      shem1_1.png
      Размер файла:
      10,3 КБ
      Просмотров:
      95
  15. TiMoN816

    TiMoN816 Нерд

    Хорошо, вечером посмотрю, спасибо.
     
  16. b707

    b707 Гуру

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

    Уберите из своего кода SoftwareSerial(), работайте через аппаратный Serial. он у вас свободен
     
  17. TiMoN816

    TiMoN816 Нерд

    Спасибо! А подскажите пожалуйста, между аппаратным и софт есть разница во времени обработки?
     
  18. b707

    b707 Гуру

    вообще обычно аппаратный быстрее.

    После выкладывания схемы что-то у меня вообще непонятки - если у вас порт Сериал используется только для вывода - зачем вам вообще две ардуины? Что мешает с Нано выводить не на Мегу, а сразу в терминал?
     
  19. TiMoN816

    TiMoN816 Нерд

    Чтобы вы понимали задумку, хочу так и оставить мега и нано. Нано будет только читать шину, и чтобы ее больше не нагружать и избежать каких либо задержек в считывание, т.к. при включении зажигания идёт самое большое количество строк и с очень большой скоростью,поэтому все будет выполнять Мега. Она будет выводить на экран андроид показания положения печки, скорость вентилятора, температуру, настройки звука, расход, моментальный расход. Будет отвечать за автоматическое складывание зеркал.
     
  20. b707

    b707 Гуру

    возможно это имеет смысл.

    Ответте тогда на вопрос - Мега будет выводить какие-то данные в Сериал?
    Если да - то надо поправить код и выбрать на Меге РАЗНЫЕ порты для ввода и вывода.
    Если нет - мега не нужна. можно поставить вместо нее вторую нано Хотя если планируется экран и связь с андроидом... лучше Мегу :
     
    Последнее редактирование: 17 июн 2021