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

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

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

    b707 Гуру

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

    b707 Гуру

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

    Код (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 КБ
      Просмотров:
      218
    Последнее редактирование: 28 июн 2020
  12. b707

    b707 Гуру

    Ариадна, ему лучше взять готовый скетч для Меги и всего навсего поменять аппаратный Serial1 на программный... но ТС почему-то не хочет идти этим путем
     
  13. Может кто нибудь поменять аппаратный 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. Часы
    По примеру думаю смогу дописать чтобы выводил то что нужна из таблице кодировки букв в битах В крайнем случаи раз в минуту будит обновляться весь дисплей
     
  16. SergeiL

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

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

    Ariadna-on-Line Гуру

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

    Вложения:

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

    b707 Гуру

    blackflash2009, ну как дела, отвечает дисплей?
     
  19. Пока не как помогли прислали этот код 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 придется повторять.