Помогите!!! Создание 2х страничного LCD меню и управление кнопками
- Войдите на сайт для отправки комментариев
Пнд, 09/04/2018 - 10:45
Всем привет.
Нужна помощь, вот есть код. Нужно сделать так чтобы при нажатии кнопки выводилась только температура а при повторном нажатии выводилось только время работы. Пробовал с помощью flag не выходит. Как это осуществить?
#include <Wire.h> // Подключаем библиотеку Wire
#include <LiquidCrystal_I2C.h> // Подключаем библиотеку LiquidCrystal_I2C
#include <DallasTemperature.h> // Подключаем библиотеку DallasTempature
#define DS18B20 0 // Указываем, к какому выводу подключена DQ
byte simvol[8] = {B11100,B10100,B11100,B00000,B00000,B00000,B00000,B00000,}; // Символ градуса
LiquidCrystal_I2C lcd(0x38,20,4); // Задаем адрес и размер дисплея
OneWire oneWire(DS18B20);
DallasTemperature sensors(&oneWire);
unsigned long TimeLightOffOn = 86397000;
int flag=0;
void setup()
{
sensors.begin(); // Запуск библиотеки, по умолчанию 9 бит, то есть кратность 0.5 градуса
lcd.init(); // Инициализация lcd
lcd.backlight(); // Включаем подсветку
lcd.setCursor(5,0); // Устанавливаем курсор на 1 строку, ячейка 2
lcd.print("Temperature"); // Выводим текст
lcd.setCursor(2,1); // Устанавливаем курсор на 2 строку, ячейка 1
lcd.createChar(1,simvol); // генерируем символ
}
void loop()
{
sensors.requestTemperatures();
int temp1 = sensors.getTempCByIndex(0); // Считываем показания температуры
byte Seconds = ((millis()+TimeLightOffOn)/1000UL)%60;
byte Minutes = (((millis()+TimeLightOffOn)/1000UL)/60UL)%60;
byte Hours = (((millis()+TimeLightOffOn)/1000UL)/3600UL)%24;
lcd.setCursor(5,0);
lcd.print("Temperature");
lcd.setCursor(6,1);
lcd.print(" ");
lcd.print(temp1);
lcd.print("\1"); // Выводим символ градуса
lcd.print("C");
lcd.print(" ");
lcd.setCursor(3, 3); // кусок кода который выводит время работы.
lcd.print("Timer:");
lcd.setCursor(9, 3);
lcd.print(Hours);
lcd.print(':');
lcd.print(Minutes);
lcd.print(':');
lcd.print(Seconds);
lcd.print(" ");
lcd.print(" "); //
delay (1000);
}
Дорогой товарищ(господин,мистер,синьер), а Вы программировать можете? или так только стеб организовать.
Для начала, вставьте код по правилам форума, пожалуйста.
Могу немного, я всего лишь третий день этим занимаюсь. Мне просто нужна помощь вот и всё)
на третий день, абычна, светодиод к вечеру мигать начинает. А тут меню.... Не по Сеньке шапка, увы.
Что конкретно у Вас не получается? Вы пишете про какую-то кнопку. В каких строках кода Вы с нею работаете? Я вот не вижу никакой работы с кнопкой, наверное слишком поверхностно посмотрел.
Вот, нашёл в лесу хворостину. Нужно сделать свирель к завтрему. Ковырял гвоздиком - не выходит. Как это делается? Решил стать свиреледелом три дня назад!
Xak.net. И вот не ясно как Вам помогать, знаний у вас нет. А три дня это не срок разобраться что и как. Думаю вам и месяца не хватит разобраться в таком примитивном скетче.
Ну, вот, оказывается первый код был "для лохов", теперь новый появился?
Ну, так расскажите в чём проблема-то? Что работает не так?
При нажатии на кнопку появляеться время работы а при повторном нажатии оно обновляется а мне нужно вернуться на вывод температуры
Уху, а в каком месте происходит событие, которое позволит выполнится строке №43?
Уху, а в каком месте происходит событие, которое позволит выполнится строке №43?
Торжественное поднятие флага происходит каждое утро на пионерской линейке. И абсолютно в каждом устройстве, на территории бывшего союза, если есть переменная flag, то она будет установлена в 1. Даже если устройство выключено в этот момент.
Торжественное поднятие флага происходит каждое утро на пионерской линейке. И абсолютно в каждом устройстве, на территории бывшего союза, если есть переменная flag, то она будет установлена в 1. Даже если устройство выключено в этот момент.
Хм, не исключено. И хоть я помню эту процедуру, предпочитаю более традиционные способы эрегирования флагов.)))))
P/S Навеяло, когда в год сухого закона занесло меня на теплоходах поработать, там в обязанностях палубного матроса было на закате флаг снимать и убирать, а на восходе снова вывешивать. В пионерлагере ладно, там ритуал. А каков смысл этого действа на гражданской коробке, утреннюю процедуру кроме вахтенного и рулевого вообще никто не наблюдал?????
Это традиция. Когда-то давно, когда армии скорее напоминали толпы. И не понятно кто враг, а кто друг и куда двигаться- спользовался флаг (орел или прочая лабуда). Позже когда, армия начала делится на части-тактические единицы у каждой единицы был свой флаг или прапорщик. и в конце концов все это плавно перешло в военный флот , а затем в гражданский. Разумеется на лодках рыбаков флаги подымать не надо. Но флаг на судне обозначает , что это не что-то плавает, а администативно-территориальная единица со своим статусом. И что бы этот статус у не был, надо флаг подымать и опускать. А иначе просто болтается тряпка. Такой же принцип у пионерских лагерях.
При нажатии на кнопку появляеться время работы а при повторном нажатии оно обновляется а мне нужно вернуться на вывод температуры
ТАк возвращайтесь! В какой строке Вы пытаетесь это сделать?
Поймите, Вы должны сказть НЕ "мне нужно", а "я вот так сделал, вроде должно пахать, а не пашет". Что Вам нужно - это Ваши проблемы.
Здесь Вам могут помочь найти ошибку в ВАШЕМ коде, а писать код под Ваши хотелки - здесь не то место.