Широко известна приблуда I2C_LCD конвертера, позволяющая экономить ноги процессора. То бишь вместо 6 ног использовать только две. Вопрос - существует ли приблуда для одной ноги. Ну типа 1-Wire_LCD конвертер. Интересует не столько железо (оно довольно простое), сколько готовая библиотека под него.
сомневаюсь, что у 1-wire хватит скорости и пропускной способности для управления дисплеем. А в чем смысл? Сэкономить одну ногу?
Ну да. Именно так. Умение пролезать сквозь жопу "бутылочное горлышко" с помощью таких трюков - "джентельменский набор" разработчика. Копейка рубль бережет.
Вот код для конвертора с картинки. Вполне успешно работает. Может кто из местных гуру от программирования втиснет его в библиотеку 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 секунду. } ПС. Схему нарисовал сам на основе похожих. Код вообще от балды. Так что прошу не пинать.
хм, так в какой цитате правда - "код работает" или "код от балды"? По-моему этому коду до библиотеки еще как бумажному самолетику до истребителя...
В обеих (цитатах). Код именно "от балды", тк использует библиотеку от других устройств.. Позволяет не опускаться до ногодрыганья. Но - работает. В первом сообщении картинка из Протеуса. Младшие биты там - снизу. #include <OneWire.h> OneWire ds(0); // on pin 0 (a 4.7K resistor is necessary) ds.write(Sdata); // Записываем данные на конвеер ds.reset(); // Перегружаем из конвеера в выходной регистр Эти две строки выполняют главное. Остается выводить нужные байты по очереди.. Библиотек я писать не умею. Мое дело - схемотехника. Но может кто-то напишет. ПС. Хотя, ...не боги горшки засиробжигали...
Есть библиотека LiquidCristall. И есть библиотека LiquidCristal_I2C. Скорее всего - надстройка над LiquidCristal для другого интерфейса. Она же для чего-то существует ?! Почему бы не существовать LiquidCristal_1Wire ? В Протеусе и убавил скорость процессора в 1000 раз по сравнению с заданной при компиляции - как выводил LCD, буквы, так и выводит. Только медленно. Нормально. Это решение - не для графического дисплея.
Как и предполагал - все уже придумано за нас. Нашел нужную библиотеку. Не требуется премудростей и дополнительных МК. Осталось оформить схему в виде приблуды аналогичной I2C конвертору. Тема исчерпана. Всем спасибо.
Всё-таки предыдущее решение слишком медленное. Намного более гибкое и быстрое - решение с использованием микросхемы одновибраторов.
Уважаемые гуру. Как синтаксически правильно передать текстовый аргумент ("Ariadna") в функцию void LCD_print(String) ? А если не затруднит - приведите требуемый код. С уважением.