M202md08a futaba люминисцентный дисплей

Тема в разделе "Arduino & Shields", создана пользователем blackflash2009, 21 апр 2020.

Метки:
  1. blackflash2009

    blackflash2009 Нерд

    b707 можно с вами связаться как то по другому ?
    я не магу ее установить
    если что почта мая Blackflash2009@yandex.ru
    при установке библиотеки Выбранная папка/zip файл не содержит корректных библиотек
     
    Последнее редактирование: 26 июн 2020
  2. b707

    b707 Гуру

    Пардон, это не библиотека. Сорри, я имел в виду ту. а которую ссылался Ариадна.
    Прежде чем лезть в дебри - вы все-таки ответьте - как вы собираетесь подключаться к дисплею.? есть на нем разъем RS485?
    Есть у вас модуль 485? Или вы будете подпаиваться напрямую к дисплею, как нарисовано на фотографиях?
    Просто тут в ветке уже обсуждается три разных способа подключения и для каждого свой код.
     
  3. blackflash2009

    blackflash2009 Нерд

    Подключится хотелось бы через порт RS485 который находится распаянным на дисплей (на дисплее стоит микросхема A176b отвечает за порт RS485) через модуль Модуль MAX485CSA, RS-485 TTL к RS485 MAX485CSA
    Можно и в обход (снять микросхему A176b и подавать команды на прямую в мк дисплея )
    Смотря что легче.
    Темы есть но дисплей у них другой с маим они не совпадают вообще Мой сложней в программирование.
     
  4. b707

    b707 Гуру

    Вопрос не в том. что "легче". Выбор зависит от того, есть ли у вас отдельный модуль RS485 для ардуино. Если есть - используйте первый вариант, если нет и купить негде (неохота ждать) - то можно и по второму, если уверены. что сумеете подпаятся к микросхеме.
    А в плане программирования эти два варианта абсолютно равноценны. более того, код для ардуино будет одним и тем же.
    Что касается кода, проще всего вязть код для Меги из статьи и переделать его для уно. Для этого понадобится все вызовы Serial1 заменить на Serial. а вызовы Serial повесить на СофтСериал
     
  5. blackflash2009

    blackflash2009 Нерд

    модуль RS485 для ардуино модуль есть Подпоятся вообще без проблем
    Не поканает код не хочет компилироватся не хватает библиотек я так думаю

    fatal error: avr/io.h: No such file or directory
     
  6. b707

    b707 Гуру

    я вам советовал брать код для Мега и переписывать на Уно.
    Тот код. что вы пробуете - вообще не для Ардуино ИДЕ, а для Атмел Студио.
    он может быть переделан на Ардуино. но надо неплохо разбираться в железе, там все фукции написаны напрямую.

    проще, повторяю. взять код для Мега - он чисто ардуиновский.
    В коде для мега нет этой строчки
    avr/io.h:
     
  7. parovoZZ

    parovoZZ Гуру

    ну молодец. Совсем всё поломал. Если компилятор не может найти системные заголовочники, то сушим вёсла.
     
  8. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Все просто - нельзя постоянно держать включенным передатчик - он будет мешать приемникам. Но ничто не требует выключать приемник - будете слышать сами себя. Если линии управления приемником (RE) и передатчиком (DE) объединены как REDE - то "эха" не будет.
    Конвертор 485 программно "прозрачен" для протокола Serial. Только надо перед отправкой данных подать на линию REDE единицу, чтоб включить передатчик, или подать ноль, чтоб выключить передатчик и включить приемник. Каких-либо библиотек для конвертора RS485 не требуется. В Ардуине Уно нет свободного сериал-порта, поэтому придется пользоваться SoftSerial-ом на любых свободных пинах, кроме 0-го и 1-го.
     
    Последнее редактирование: 27 июн 2020
  9. blackflash2009

    blackflash2009 Нерд

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

    Код (C++):
        #include <SoftwareSerial.h>     // подключение библиотеки SoftwareSerial


       // создание экземпляра SoftwareSerial
          SoftwareSerial RS485Serial(7, 6);  // на RX-7, TX-6

       const uint8_t     PIN_direction_TX_RX = 10;  // указываем номер вывода arduino, к которому подключены выводы RE и DE конвертирующего модуля


       void setup(){
      pinMode(PIN_direction_TX_RX,   OUTPUT);    // устанавливаем режим работы вывода PIN_direction_TX_RX, как "выход"
      digitalWrite(PIN_direction_TX_RX, HIGH);    // устанавливаем уровень логического «1» на выводе PIN_direction_TX_RX (переводим модуль в режим передачи данных)
      Serial.begin(9600);                        // открываем последовательный порт на скорости 9600 бод
      RS485Serial.begin(9600);                  // запуск SoftwareSerial

    }
    void loop(){
     
        digitalWrite(PIN_direction_TX_RX, HIGH); // переводим модуль в режим передачи данных
        delay(1);
        RS485Serial.println("0x1A5");              // отправляем символ в порт
        delay(1);
        RS485Serial.println("0x1A5");          // отправляем символ в порт повторно
        delay(1);
        digitalWrite(PIN_direction_TX_RX, LOW);  // переводим модуль в режим приёма данных
        delay(1);
        Serial.print(RS485Serial.println()); // выводим данные в монитор порта
      delay(2000); // ждем


     
    }
     
  10. b707

    b707 Гуру

    вот это неправильно
    Код (C++):
    RS485Serial.println("0x1A5");
    0x1A5 - это два байта 0x01 и 0xA5. А вы вместо них посылаете строку "0x1A5", да еще и с переводом строки в конце.
    Надо так:
    Код (C++):
    RS485Serial.write(0x01);
    RS485Serial.write(0xA5);
     
    Только, скорее всего, двух байтов будет явно мало. Надо посылать законченное сообщение с заголовком в начале и контрольной суммой в конце, иначе дисплей не ответит.
    blackflash2009 - что-то я сомневаюсь. что эта задачка вам под силу. Вы слишком далеки от этого, если даже не понимаете разницу между строками и байтами. Закажите лучше работу в разделе Проекты
     
  11. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Я электроник, а не программист. Однако вякну пару соображений -
    1. RS485Serial.println("0x1A5"); // отправляем символ в порт
    Это не символ, а 5 символов. Если надо отправить байт, то "" - не нужны. Если несколько байт, то несколько команд. Но правильно наверно так - как подсказывает Филин.
    3. Распакуйте архив в папку ардуинских проектов. Например у меня это - D:\Documents and Settings\Ariadna\My documents\Arduino\My Projects\
    и редактируйте скетч под себя. Должен компилироваться нормально.
    4. Serial.print(RS485Serial.println()); // выводим данные в монитор порта - это похоже на белиберду.
     

    Вложения:

    • VFD_20x2.zip
      Размер файла:
      285 КБ
      Просмотров:
      22
    Последнее редактирование: 28 июн 2020
  12. b707

    b707 Гуру

    Ариадна, ему лучше взять готовый скетч для Меги и всего навсего поменять аппаратный Serial1 на программный... но ТС почему-то не хочет идти этим путем
     
  13. blackflash2009

    blackflash2009 Нерд

    Может кто нибудь поменять аппаратный Serial1 на программный... А то мне мозга не хватит
    Да дисплей должен ответить на отправление 2 байта
    вот дамп обмена при инициализации:
    >>0x1A5
    >>0x1A5
    <<0x1250x0F0x3B0xAA0x17E
    В документации сказано что дисплей может иметь адрес 24 или 25 ( Похоже что у меня с 25 ).
    При получении 0x1A5 дисплей может ответить двумя вариантами:
    1. 0x15A — End of Poll ( название из документации, )
    2. 0x125 xx cc cc 0x17E — пакет с данными.
    xx — данные
    cc cc — два байта crc16 x25 IBM-SDLC
    Количество передаваемых данных заранее не известно.
     
  14. SergeiL

    SergeiL Оракул Модератор

    А если не секрет, ну подключите, ну выведете на экран что-то, а дальше то что?
     
  15. blackflash2009

    blackflash2009 Нерд

    Часы
    По примеру думаю смогу дописать чтобы выводил то что нужна из таблице кодировки букв в битах В крайнем случаи раз в минуту будит обновляться весь дисплей
     
  16. SergeiL

    SergeiL Оракул Модератор

    А вы начните с часов, возьмите индикатор более популярный, попробуйте разобраться с кодом, сделайте будильник, там знания и для подключения этого индикатора появятся.
     
  17. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Тупо механически переделал скетч под синтаксис Уно. Но не гарантия, что без ошибок. Компилится и выводит в сериалы. Установите нужную скорость обмена с дисплеем софтСериала. Там было что-то вроде 185200 бпс. Может повезет и зафурычит.))))) Не забудьте отписаться. Любопытно все-таки.
     

    Вложения:

    • VFD.zip
      Размер файла:
      2,3 КБ
      Просмотров:
      23
    Последнее редактирование: 28 июн 2020
  18. b707

    b707 Гуру

    blackflash2009, ну как дела, отвечает дисплей?
     
  19. blackflash2009

    blackflash2009 Нерд

    Пока не как помогли прислали этот код https://www.dropbox.com/s/nrcbe2taq7xrasb/attac).zip?dl=0
    По монитору порта постоянно вот это [​IMG]
    но один раз на 100 раз передергивания местами рх и тх вылетело это [​IMG]
    но как это повторить не знаю
    https://www.dropbox.com/s/hymivhspuocxuuq/скриншот 2020-06-29 19.17.03.png?dl=0
    https://www.dropbox.com/s/ynhhpcwidr8wxb2/img_20200629_193403 (1).jpg?dl=0
     
  20. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Да, забыл дописАть. В коде отсутствуют команды управления 485-й. Допишите сами. Раз 30 придется повторять.