Проблемы с дисплеями 128х64
- Войдите на сайт для отправки комментариев
Втр, 22/12/2015 - 15:00
Ребята!
Подскажите, в чем может быть проблема. Имеется два дисплея, синий 12864В V2.0 и зеленый 12864ZW.
Подключаю их поочередно к ардуине мини. Залил простой скетч, с датчиком давления ВМР180, и на обоих дисплеях, периодический, вижу кривые цифры переменных. Пробовал менять библиотеки, шрифты, бесполезно. Подключал и по последовательному, и паралельному, все также. Может кто-то сталкивался с такой проблемой?
Что-то фото всавить не могу.
#include <U8glib.h> #include <Wire.h> #include <BMP085.h> U8GLIB_ST7920_128X64 u8g(10, 11, 12, U8G_PIN_NONE); // Инициализируем объект-экран, определяем пины для работы с экраном BMP085 dps = BMP085(); long Temperature085 = 0, Pressure085 = 0, Altitude085 = 0; void setup() { dps.init(); } void loop (){ u8g.firstPage(); do { dps.getTemperature(&Temperature085); dps.getPressure (&Pressure085); u8g.setFont(u8g_font_fub17); u8g.setPrintPos(4, 20); u8g.print("mm:"); u8g.print(Pressure085/133.3); u8g.setFont(u8g_font_fub14); u8g.setPrintPos(4, 40); u8g.print("t="); u8g.print(Temperature085*0.1); delay(1000); } while(u8g.nextPage()); }
Мне кажется нужно дробные цифры предварительно преобразовать в строку или хотябы приведение типов данных использовать.
Дело в том что язык С не определяет автоматически тип данных. В строках 23 и 27 у вас ерунда полнейшая.
А можно поподробней, что в них не правильно? С дисплеем 1602 это все работает. А тут при обновлении может показать правильно, а может показать половина 4 ки, и половина 5 ки, или вллбще не понятно что.
Я использую аппаратный SPI и увеличенный буффер для увеличения скорости
Спасибо большое за подсказку!
Заработала!
Всего лишь поменял 1 на 4. Я пробовал с еденицей, не работало.
U8GLIB_ST7920_128X64_1X u8g(10,11,12, U8G_PIN_NONE);
U8GLIB_ST7920_128X64_4X u8g(10,11,12, U8G_PIN_NONE);
Ребята!
Помогите, кто в курсе, с проблемой. Заливаю простой скетч тахометра, с дисплеем 1602, и датчиком холла, все работает. Меняю дисплей, на 12864, не получается. Что-то с прерыванием. Хотя смена дисплея с барометром, все получилось. Подскажите, где ошибка в скетче?
Работает
Не работает