Проблема

Тема в разделе "Arduino & Shields", создана пользователем Stempler, 7 июл 2019.

  1. Stempler

    Stempler Нерд

    Доброго всем времени суток, пытаюсь с помощью Arduino UNO принять данные по UART и передать их.
    Что получается. входящие данные в ардуину - символы (#,v), или же если в DEC - числа 35 и 118.
    Я пытаюсь каждое число запихнуть в массив и передать их дальше через Tx, отслеживая логическим анализатором. но в результате на выходе получается 0 и 0. Прикладываю скетч, искренне прошу помощи разобраться, мучаюсь уже 5 дней...
    Код (C++):
    int8_t a[2];
    int i;
                         
    void setup() {
            Serial.begin(9600);  
    }
    void loop() {
            if (Serial.available() > 0) {



    Serial.readBytes((char *)a, 2); // в a[0] первая переменная, а в a[1] вторая

    Serial.setTimeout(100);

    for (i = 0; i < 2; i = i + 1) {
      Serial.print(a[i]);
    }

      delay(2000);


            }            }
     

    [​IMG]
     
    Последнее редактирование: 7 июл 2019
  2. b707

    b707 Гуру

    это код приемника. Выкладывайте еще код передатчика
     
  3. Stempler

    Stempler Нерд

    Кода передатчика к сожалению нету, т.к это модуль управления заводской). Все чем располагаю - это данные с лог анализатора.
    [​IMG]
    http://www.fotolink.su/v.php?id=eeae80e3cc41f4aaacbf545e43b29f05
    [​IMG]
     
  4. b707

    b707 Гуру

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

    Stempler Нерд

    хм. Честно говоря, после того как Вы сказали - не уверен...
    Ардуину "колупаю" чуть больше двух недель, так что еще нуб нубом). Если посоветуете в какую сторону копать, буду премного признателен.
     
  6. b707

    b707 Гуру

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

    Stempler Нерд

    Анализатор использую - салае логик, там настроек не очень то и много. Про параметры передачи абсолютно ничего не известно... Только то, что на скриншоте прикрепленном сверху...
     
  8. Stempler

    Stempler Нерд

  9. ИгорьК

    ИгорьК Давно здесь Команда форума

    Салеае вам выдал две цифры. Он сейчас имеет какие-то настройки, иначе ничего бы не выдал. Смотрите ЕГО настройки.

    Если эти две цифры по здравому смыслу и устройству не подходит - увеличивайте скорость приема данных в настройках в анализатора.
     
  10. b707

    b707 Гуру

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

    Пока вы не определите параметры сигнала - вы очень долго можете разбираться, почему ардуина "не принимает"
     
    Последнее редактирование: 7 июл 2019
  11. ИгорьК

    ИгорьК Давно здесь Команда форума

    У вас справа есть шестерёнки Asinc Serial - настройки там
     
  12. Stempler

    Stempler Нерд

    а может такое быть, что битрейт 122?
     
  13. Stempler

    Stempler Нерд

    Пишет что битрейт 122, 8 бит, 1 стоп бит
     
  14. ИгорьК

    ИгорьК Давно здесь Команда форума

    Покажите скриншот и расскажите что за устройство вы читаете. Какого вы заставляете хрустальные шары тереть.
     
  15. Stempler

    Stempler Нерд

  16. b707

    b707 Гуру

    ну значит логиканализер такой определил.
    Зайдем с другой стороны - те данные, что прочитал логик анализер - вот эти ваши байты 35 и 118 - похожи на те, что должны приниматься с прибора?
     
  17. Stempler

    Stempler Нерд

    Расскажу то, что известно. Этот прибор - плата управления, состоящая из двух частей. Одна - управление основное (датчики, тэны, дамперы), вторая часть - управление инверторным мотором. Между этими частями стоит оптрон, на который и приходит этот сигнал. Проверял осциллографом, всего там бывает два сигнала. Один на запуск, второй на стоп. Никакой технической информации о плате нет, т.к сами понимаете, коммерческая тайна завода ЛДжи. Все что есть, это осцилл, анализатор и желание))
     
  18. b707

    b707 Гуру

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

    Займитесь чем-нибудь более полезным.
     
    Последнее редактирование: 7 июл 2019
    arkadyf и ИгорьК нравится это.
  19. parovoZZ

    parovoZZ Гуру

    А скрин с лог анализатора нельзя ещё меньше сделать?
    Рецепт - посылай в интерфейс детерминированную посылку, в лог анализаторе ставь маркеры на начло посылки и конец. Затем по времени пересылки известного количества бит вычисляешь скорость передачи.
     
  20. Stempler

    Stempler Нерд

    В ардуине я только начал разбираться и это первый проект, все с чего то начинали. У меня были другие языки программирования.
    Про то что скорости бывают разные - я знал, но не думал что это может отразиться на считывании. Я в курсе что существуют другие, SPI, I2C. Но в этом случае, это Serial. Я и удивился что скорость такая низкая..