Имеется все что описано в заголовке, и все работает, НО по отдельности, запускаю экран-работает через U8glib, подключаю к нано кнопки через gyverbutt и пытаюсь установить обычный счетчик нажатий, каждое нажатие +1 или -1 с выводом на экран и кнопки не работают. думал беда в кнопках, проверка мультиметром показала норм, подключил отдельно кнопки и вывел в порт и все считается все плюсуется и минусуется, перевожу все снова на экран и никаких результатов, при этом подключен датчик температуры DS18B20 и он норм выводит показания на экран. Не могу понять где идет отсечение по кнопкам
Код:
Код:
st7920 и кнопки:
#include <U8glib.h> // Подключаем библиотеку U8glib
U8GLIB_ST7920_128X64_1X u8g(13, 11, 12); // Создаём объект u8g для работы с дисплеем, указывая номер вывода CS для аппаратной шины SPI
uint32_t timeStart; // Объявляем переменную для подсчёта количества секунд прошедших с момента старта скетча
uint8_t timeHours; // Объявляем переменную для вывода часов прошедших с момента старта скетча
uint8_t timeMinutes; // Объявляем переменную для вывода минут прошедших с момента старта скетча
uint8_t timeSeconds; // Объявляем переменную для вывода секунд прошедших с момента старта скетча
int pip;
#include <OneWire.h>
#include <DallasTemperature.h>
OneWire oneWire(4); // вход датчиков 18b20,
DallasTemperature ds(&oneWire);
#include <GyverButton.h>
GButton butt2(7); //указать пин к которому подключены ваши кнопки (1-13)
GButton butt1(6);
GButton butt3(5);
GButton butt4(8);
void setup() {
ds.begin();
Serial.begin(9600);
u8g.firstPage(); // Всё что выводится на дисплей указывается в цикле: u8g.firstPage(); do{ ... команды ... }while(u8g.nextPage());
do {
u8g.setFont(u8g_font_10x20); // Выбираем шрифт u8g_font_6x10
u8g.drawStr(20, 30, "Valerich"); // Выводим текст "iarduino" в позиции 39х9
} while (u8g.nextPage());
}
void loop () {
butt1.tick(); //обязательная команда опрос кнопки
butt2.tick();
butt3.tick();
butt4.tick();
if (butt1.isClick() || butt3.isClick()) pip++; //если нажата кноп1 то увеличивать значение
if (butt2.isClick() || butt4.isClick()) pip--;
Serial.print("zna4enie:");
Serial.println(pip);
timeStart = millis() / 945; // Получаем количество секунд прошедших с момента старта скетча
timeSeconds = timeStart % 60; timeStart /= 60; // Получаем количество секунд для вывода на дисплей
timeMinutes = timeStart % 60; timeStart /= 60; // Получаем количество минут для вывода на дисплей
timeHours = timeStart % 24; timeStart /= 24; // Получаем количество часов для вывода на дисплей
ds.requestTemperatures(); // считываем температуру с датчиков, на это требуется 750мс
u8g.firstPage(); // Всё что выводится на дисплей указывается в цикле: u8g.firstPage(); do{ ... команды ... }while(u8g.nextPage());
do {
u8g.setColorIndex(1); // Выбираем белый цвет
u8g.drawBox(0, 0, 128, 11); // Выводим прямоугольник с координатами левого верхнего угла 0,0 и размерами 128x11 пикселей
u8g.setFont(u8g_font_6x10); // Выбираем шрифт u8g_font_6x10
u8g.setColorIndex(0); // Выбираем цвет фона
u8g.setPrintPos(45, 9); u8g.print(ds.getTempCByIndex(0)); u8g.print("C"); // Вывод показаний датчика на экран
u8g.setColorIndex(1); // Выбираем белый цвет
u8g.setPrintPos(56, 20); u8g.print(pip);
u8g.drawStr(5, 20, "zna4enie");
u8g.drawStr(18, 62, "maniyavseznaniya"); // Выводим текст "www.iarduino.ru" в позиции 20х62
u8g.setFont(u8g_font_courB24n); // Выбираем шрифт u8g_font_courB24n
u8g.setPrintPos( 3, 55); u8g.print(timeHours / 10); // Выводим старший разряд часов в позиции 3х43
u8g.setPrintPos( 20, 55); u8g.print(timeHours % 10); // Выводим младший разряд часов в позиции 20х43
u8g.drawStr ( 33, 55, ":"); // Выводим двоеточие в позиции 33х43
u8g.setPrintPos( 46, 55); u8g.print(timeMinutes / 10); // Выводим старший разряд минут в позиции 46х43
u8g.setPrintPos( 63, 55); u8g.print(timeMinutes % 10); // Выводим младший разряд минут в позиции 63х43
u8g.drawStr ( 76, 55, ":"); // Выводим двоеточие в позиции 76х43
u8g.setPrintPos( 89, 55); u8g.print(timeSeconds / 10); // Выводим старший разряд секунд в позиции 89х43
u8g.setPrintPos(106, 55); u8g.print(timeSeconds % 10); // Выводим младший разряд секунд в позиции 106х43
} while (u8g.nextPage());
}
Изменено: