Символы для дисплея 1602
- Войдите на сайт для отправки комментариев
Чт, 06/09/2018 - 13:41
Добрый день, помогите актуализировать символы для дисплея 1602. Хочу создать две шкалы, которые будут уменьшаться или заполняться в зависимости от потенциометра. С одной шкалой проблем нет, а вот как на экран вывести две шкалы от двух потенциометров? с моим кодом они не контактируют .. Помогите советами.
byte black[8] = { 0B11111, 0B11111, 0B11111, 0B11111, 0B11111, 0B11111, 0B11111, 0B11111 }; byte white[8] = { 0B11111, 0B10001, 0B10001, 0B10001, 0B10001, 0B10001, 0B10001, 0B11111 };
lcd.createChar(8,black); lcd.createChar(9,white);
вызываю символы
lcd.write();
if (benzun_ico >= 90){ lcd.clear(); lcd.setCursor(0, 1); lcd.write(8); lcd.setCursor(1, 1); lcd.write(8); lcd.setCursor(2, 1); lcd.write(8); lcd.setCursor(3, 1); lcd.write(8); lcd.setCursor(4, 1); lcd.write(8); lcd.setCursor(5, 1); lcd.write(8); lcd.setCursor(6, 1); lcd.write(8); } if (benzun_ico >= 75 && benzun_ico <= 89){ lcd.clear(); lcd.setCursor(0, 1); lcd.write(8); lcd.setCursor(1, 1); lcd.write(8); lcd.setCursor(2, 1); lcd.write(8); lcd.setCursor(3, 1); lcd.write(8); lcd.setCursor(4, 1); lcd.write(8); lcd.setCursor(5, 1); lcd.write(8); lcd.setCursor(6, 1); lcd.write(9); } if (benzun_ico >= 60 && benzun_ico <= 74){ lcd.clear(); lcd.setCursor(0, 1); lcd.write(8); lcd.setCursor(1, 1); lcd.write(8); lcd.setCursor(2, 1); lcd.write(8); lcd.setCursor(3, 1); lcd.write(8); lcd.setCursor(4, 1); lcd.write(8); lcd.setCursor(5, 1); lcd.write(9); lcd.setCursor(6, 1); lcd.write(9); } if (benzun_ico >= 45 && benzun_ico <= 59){ lcd.clear(); lcd.setCursor(0, 1); lcd.write(8); lcd.setCursor(1, 1); lcd.write(8); lcd.setCursor(2, 1); lcd.write(8); lcd.setCursor(3, 1); lcd.write(8); lcd.setCursor(4, 1); lcd.write(9); lcd.setCursor(5, 1); lcd.write(9); lcd.setCursor(6, 1); lcd.write(9); } if (benzun_ico >= 30 && benzun_ico <= 44){ lcd.clear(); lcd.setCursor(0, 1); lcd.write(8); lcd.setCursor(1, 1); lcd.write(8); lcd.setCursor(2, 1); lcd.write(8); lcd.setCursor(3, 1); lcd.write(9); lcd.setCursor(4, 1); lcd.write(9); lcd.setCursor(5, 1); lcd.write(9); lcd.setCursor(6, 1); lcd.write(9); } if ( benzun_ico >= 15 && benzun_ico <= 29 ){ lcd.clear(); lcd.setCursor(0, 1); lcd.write(8); lcd.setCursor(1, 1); lcd.write(8); lcd.setCursor(2, 1); lcd.write(9); lcd.setCursor(3, 1); lcd.write(9); lcd.setCursor(4, 1); lcd.write(9); lcd.setCursor(5, 1); lcd.write(9); lcd.setCursor(6, 1); lcd.write(9); } if ( benzun_ico >= 0 && benzun_ico <= 14 ){ lcd.clear(); lcd.setCursor(4, 0); lcd.print("LOW"); lcd.setCursor(0, 1); lcd.write(8); lcd.setCursor(1, 1); lcd.write(9); lcd.setCursor(2, 1); lcd.write(9); lcd.setCursor(3, 1); lcd.write(9); lcd.setCursor(4, 1); lcd.write(9); lcd.setCursor(5, 1); lcd.write(9); lcd.setCursor(6, 1); lcd.write(9); }
То есть, если дублировать просто в вправо, он перезаписывает левую шкалу (
а попонятнее?
помогите актуализировать символы для дисплея 1602.
Чего сделать?
Хочу создать две шкалы, которые будут уменьшаться или заполняться в зависимости от потенциометра.
А поподробее? Где они будут располагаться, в разных строках В разных концах одной строки? Какого они размера? Каковы правила их рисования?
С одной шкалой проблем нет
Судя по приведённому коду - есть и очень серьёзные. Кстати, именно эти проблемы и не дают сделать две шкалы.
как на экран вывести две шкалы от двух потенциометров?
По очереди. Сначала одну, потому другую. Можно и параллельно, заполняя обе, напмриер слева направо. Как Вам удобнее, так и выводите.
с моим кодом они не контактируют ..
Не знаю кто с кем контактирует, но в том огрызке без начала и без конца, который Вы называете кодом, не содержится никаких попыток сделать две шкалы. Вы просто не пробовали.
То есть, если дублировать просто в вправо, он перезаписывает левую шкалу (
Это я совсем не понял. Кто "он"? Куда перезаписывает? Вы вообще понимаете, кто главный на компьютере? Вы или "он"? Делайте как Вам надо и не позволяйте "ему" лезть не в своё дело.
Помогаю.
Сначала сделайте одну шкалу. Нормально, а не так, как у Вас. Рисование одной шкалы должно выглядеть как вызов функции с параметрами: "начало шкалы", "длина шкалы", "отображаемое значение".
А когда Вы это сделаете, просто вызовите эту функцию два раза с разными параметрами "начало" и "значение". Вот они у Вас две и нарисуются.
И ещё, по секрету, вместо вызова write для каждого симовла с последующей установкой курсора, можно воспользоваться методом print - он печатает сразу столько символов, сколько надо. Ну, или циклом, на худой конец.
Хочу создать две шкалы, которые будут уменьшаться или заполняться в зависимости от потенциометра.
Например так:
Давно где-то видел и сам включал дэмку с двумя аналоговыми шкалами.
Там загружалось 5 символов так как шрифт дисплея 5x8.
Одна вертикаль, две, три , четыре и чёрный квадрат.
Поэтому максимум штрихов в линейках было 16х5 = 80 .
Красиво работало....
Хочу создать две шкалы, которые будут уменьшаться или заполняться в зависимости от потенциометра.
Например так:
Спасибо) Подробно все разобрал и почерпнул для себя на будущее полезную вещь. Еще раз спасибо за помощь.