1-wire для lcd конвертор.

Тема в разделе "Схемотехника, компоненты, модули", создана пользователем Ariadna-on-Line, 7 авг 2023.

  1. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Широко известна приблуда I2C_LCD конвертера, позволяющая экономить ноги процессора. То бишь вместо 6 ног использовать только две.
    Вопрос - существует ли приблуда для одной ноги. Ну типа 1-Wire_LCD конвертер. Интересует не столько железо (оно довольно простое), сколько готовая библиотека под него.
     

    Вложения:

    • 1Wire_LCD.png
      1Wire_LCD.png
      Размер файла:
      34,6 КБ
      Просмотров:
      79
    Последнее редактирование: 7 авг 2023
  2. b707

    b707 Гуру

    сомневаюсь, что у 1-wire хватит скорости и пропускной способности для управления дисплеем.

    А в чем смысл? Сэкономить одну ногу?
     
  3. ИгорьК

    ИгорьК Гуру

    Дешево и сердито:

    upload_2023-8-7_10-32-10.png

    Без модуля i2c не обойтись, но одну ногу экономит.
     
  4. b707

    b707 Гуру

    Не получится.
    Это преобразователь I2c -> OneWire, а ТС нужен наоборот
     
  5. ИгорьК

    ИгорьК Гуру

    Точно.
     
  6. parovoZZ

    parovoZZ Гуру

    это сарказм такой?
     
  7. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Ну да. Именно так. Умение пролезать сквозь жопу "бутылочное горлышко" с помощью таких трюков - "джентельменский набор" разработчика. Копейка рубль бережет.
     
    Последнее редактирование: 7 авг 2023
  8. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Вот код для конвертора с картинки. Вполне успешно работает. Может кто из местных гуру от программирования втиснет его в библиотеку LiquidCristal вместо I2C.
    Код (C++):
    //1-Wire to Parallel converter

    #include <OneWire.h>
    OneWire  ds(0);  // on pin 0 (a 4.7K resistor is necessary)
    int Sdata = 0;

    void setup() {
       Serial.begin(9600);
    }
    void loop()  {
       Serial.print("Sdata= ");
       Serial.println(Sdata);

      ds.write(Sdata);  // Записываем данные на конвеер
      ds.reset();          //  Работает как команда записи из конвеера в выходной регистр

      Sdata = Sdata + 1;
    if (Sdata >= 256)
        Sdata = 0;

      delay(64000);  // Странно, но это значение дает 1 секунду.
    }
    ПС. Схему нарисовал сам на основе похожих. Код вообще от балды. Так что прошу не пинать.
     
    Последнее редактирование: 7 авг 2023
  9. b707

    b707 Гуру

    хм, так в какой цитате правда - "код работает" или "код от балды"?
    По-моему этому коду до библиотеки еще как бумажному самолетику до истребителя...
     
  10. Ariadna-on-Line

    Ariadna-on-Line Гуру

    В обеих (цитатах). Код именно "от балды", тк использует библиотеку от других устройств.. Позволяет не опускаться до ногодрыганья. Но - работает. В первом сообщении картинка из Протеуса. Младшие биты там - снизу.

    #include <OneWire.h>
    OneWire ds(0); // on pin 0 (a 4.7K resistor is necessary)

    ds.write(Sdata); // Записываем данные на конвеер
    ds.reset(); // Перегружаем из конвеера в выходной регистр

    Эти две строки выполняют главное. Остается выводить нужные байты по очереди..
    Библиотек я писать не умею. Мое дело - схемотехника. Но может кто-то напишет.
    ПС. Хотя, ...не боги горшки засиробжигали...
     
    Последнее редактирование: 8 авг 2023
  11. parovoZZ

    parovoZZ Гуру

    а зачем из двух строчек кода делать библиотеку?
     
  12. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Есть библиотека LiquidCristall. И есть библиотека LiquidCristal_I2C. Скорее всего - надстройка над LiquidCristal для другого интерфейса. Она же для чего-то существует ?! Почему бы не существовать LiquidCristal_1Wire ?
    В Протеусе и убавил скорость процессора в 1000 раз по сравнению с заданной при компиляции - как выводил LCD, буквы, так и выводит. Только медленно. Нормально. Это решение - не для графического дисплея.
     
    Последнее редактирование: 8 авг 2023
  13. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Как и предполагал - все уже придумано за нас. Нашел нужную библиотеку. Не требуется премудростей и дополнительных МК. Осталось оформить схему в виде приблуды аналогичной I2C конвертору. Тема исчерпана. Всем спасибо.
     

    Вложения:

    Последнее редактирование: 14 авг 2023
    ИгорьК нравится это.
  14. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Дальнейшее расширение решения. Если кому интересно - спрашивайте. Выложу подробно.
     

    Вложения:

    ИгорьК нравится это.
  15. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Всё-таки предыдущее решение слишком медленное. Намного более гибкое и быстрое - решение с использованием микросхемы одновибраторов.
     

    Вложения:

    • Triggered.png
      Triggered.png
      Размер файла:
      82,1 КБ
      Просмотров:
      64
    Последнее редактирование: 24 сен 2023
    ИгорьК нравится это.
  16. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Уважаемые гуру. Как синтаксически правильно передать текстовый аргумент ("Ariadna") в функцию void LCD_print(String) ? А если не затруднит - приведите требуемый код. С уважением.
     
    Последнее редактирование: 25 сен 2023