Как заставить дисплей 1602 мигать при превышении температуры?

Efim
Offline
Зарегистрирован: 04.05.2018

Notepad ++ Откройте меню Синтаксисы>C>C++ и будет вам подсветка)

valek101
Offline
Зарегистрирован: 06.06.2018

Efim пишет:

Notepad ++ Откройте меню Синтаксисы>C>C++ и будет вам подсветка)

И правда чего это я затупил спасибо:-)

Тут и цвета подсветки как то более удобно читаемо чем в IDE

sadman41
Offline
Зарегистрирован: 19.10.2016

Еще неплохо было бы  гистерезис сюда интегрировать.

И еще непонятно зачем на каждом лупе символ формировать в LCD. Ну и по мелочам еще типа присвоения миллиса в обеих ветках if().

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

valek101 пишет:

Не ну циверки то с 35 на 120 поменять в двух местах ума не надо:-)

Должен Вас огорчить: если нужно одновременно менять в двух местах, значит, код написан неправильно. :(

Efim
Offline
Зарегистрирован: 04.05.2018

andriano пишет:

Должен Вас огорчить: если нужно одновременно менять в двух местах, значит, код написан неправильно. :(

Думаю если осилит все расписать, то переменную для температуры уж сможет сам добавить)

valek101
Offline
Зарегистрирован: 06.06.2018
andriano
Для данной задачи которую мне нужно было сделать до завтра мне все подходит:-)
 
Efim
Не факт что вот прямо в первом домашнем задании, но осюлю точно:-)
Очень меня заинтересовал аруино:-)))

 

Efim
Offline
Зарегистрирован: 04.05.2018

sadman41 пишет:

Еще неплохо было бы  гистерезис сюда интегрировать.

И еще непонятно зачем на каждом лупе символ формировать в LCD. Ну и по мелочам еще типа присвоения миллиса в обеих ветках if().

Гистерезис конечно можно, но зачем? А присвоение миллиса для формирование полупериода) 

sadman41
Offline
Зарегистрирован: 19.10.2016

Присутствие гистерезиса всегда полезней его отсутствия. Тем паче что это дело четырех нажатий на кнопки.

Про присвоение миллиса я понимаю. Я не понимаю, что дает if(..) time = millis(); else time=millis();

Да и температуру можно один раз читать, а не в каждом if()...

Efim
Offline
Зарегистрирован: 04.05.2018

sadman41 пишет:

Присутствие гистерезиса всегда полезней его отсутствия. Тем паче что это дело четырех нажатий на кнопки.

Про присвоение миллиса я понимаю. Я не понимаю, что дает if(..) time = millis(); else time=millis();

Да и температуру можно один раз читать, а не в каждом if()...

Вы наверное не совсем правильно читаете программу, при каждом состоянии подсветки мы обнуляем время полупериода. Хотелось бы взглянуть на вашу реализацию данной задачи и про чтение температуры тоже.

Ну и возможность установить гистерезис в коде тоже присутствует если посмотрите внимательно)

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016
/**/
//-------------датчик температуры-----------------------------
#include <DallasTemperature.h>  // Подключаем библиотеку DallasTempature
OneWire oneWire(/*пин*/2);// Указываем, к какому выводу подключена DQ
DallasTemperature sensors(&oneWire);
int Temp;
bool alarm;/*превышение*/
void TempInit() {
  sensors.begin();                           // Запуск библиотеки, по умолчанию 9 бит, то есть кратность 0.5 градуса

}
void TempRun() {
  sensors.requestTemperatures();              // Считываем показания температуры
  Temp = sensors.getTempCByIndex(0);
  if (Temp >= 35) alarm = true;
  else alarm = false;
}
//---------------Дисплей----------------------------
#include <Wire.h>                           // Подключаем библиотеку Wire
//#include <LiquidCrystal_I2C.h>              // Подключаем библиотеку LiquidCrystal_I2C
#include "LCD_1602_RUS.h"
byte simvol[8]   = {B11100, B10100, B11100, B00000, B00000, B00000, B00000, B00000,}; // Символ градуса
LCD_1602_RUS lcd(0x27, 16, 2);         // Задаем адрес и размер дисплея
bool flag;
unsigned long past;
void DisplayInit() {
  lcd.init();                               // Инициализация lcd
  lcd.backlight();                          // Включаем подсветку
  lcd.createChar(1, simvol);                // Создаем символ под номером 1
  lcd.setCursor(1, 0);                      // Устанавливаем курсор на 1 строку, ячейка 2
  lcd.print("МАСЛО");                       // Выводим текст
  lcd.setCursor(4, 1);                      // Устанавливаем курсор на 2 строку, ячейка 2
  lcd.print("TEMP OIL");                    // Выводим текст
  flag = true;
  past = millis();
}
void YesViev() {
  lcd.setCursor(7, 0);                        // Устанавливаем курсор на 1 строку, ячейка 7
  lcd.print(Temp);      // Выводим показания температуры
  lcd.setCursor(12, 0);                       // Устанавливаем курсор на 1 строку, ячейка 12
  lcd.print("\1");                            // Выводим символ градуса
  lcd.setCursor(13, 0);                       // Устанавливаем курсор на 1 строку, ячейка 13
  lcd.print("C");                             // Выводим текст
}
void NoViev() {
  lcd.setCursor(7, 0);           // Устанавливаем курсор на 1 строку, ячейка 7
  lcd.print("                      "); //стираем строку
}
void DisplayRun() {
  if (alarm == false)YesViev();
  else {
    if (millis() - past >= 250) {
      past = millis();
      if (flag == true) {
        flag = false;
        YesViev();
      }
      else {
        flag = true;
        NoViev();
      }
    }
  }
}
//---------main--------------------
void setup() {
  TempInit();
  DisplayInit();
}
void loop() {
  TempRun();
  DisplayRun();
}
/**/

 

Efim
Offline
Зарегистрирован: 04.05.2018

qwone

А где моргающая подсветка при привышении температуты? :)

b707
Offline
Зарегистрирован: 26.05.2017

Efim пишет:

Вы наверное не совсем правильно читаете программу

Да все он правильно читает, а вы, вместо того чтоб спорить - лучше б слушали. Речь идет об элементарных вещах.

-строчку 34 вынести в Сетап

-температуру читать один раз

-строчки 48 и 52 дублируются

Вы, конечно, молодец, что человеку помогли, но код ваш откровенно новичковый... есть куда расти.

 

valek101
Offline
Зарегистрирован: 06.06.2018

b707 пишет:

Efim пишет:

Вы наверное не совсем правильно читаете программу

Да все он правильно читает, а вы, вместо того чтоб спорить - лучше б слушали. Речь идет об элементарных вещах.

-строчку 34 вынести в Сетап

-температуру читать один раз

-строчки 48 и 52 дублируются

Вы, конечно, молодец, что человеку помогли, но код ваш откровенно новичковый... есть куда расти.

 

Ну не ругайтесь блин. Вот тут ключевое слово человеку помогли:-) И огромное на этом спасибо что помогли:-))))

А то человек мог бы без этого скечта и на поршневую попасть если двигатель перегреет, и как выглядит скетч до лампочки в данной ситуации главное что все работает:-))))

А так конечно дальше обсуждайте варианты а я поучусь:-) 

Efim
Offline
Зарегистрирован: 04.05.2018

b707

Про строчку 34 и температуру это не мое и в задачу это не входило. Я обсуждал свою часть кода!

А вот теперь барабанная дробь:) что будет если убрать  строку 48 или 52 :) Правильно! Код будет работать не правильно! 

Вы бы сначала сами изучили все внимательно, а потом умничали. Если вы уберете одну из этих строк то диплей либо вообще не будет гаснут, либо не будет загоратся. Вот теперь и подумайте кому куда расти)

Efim
Offline
Зарегистрирован: 04.05.2018

valek101 пишет:

Ну не ругайтесь блин.

Знаешь недавно я так же как и ты попросил помощи на данном форуме, угдай что получил в ответ?

Кучу оскорблений и негатива, да были ребята давшие дельные советы но большенство просто глумилось.

Кстати с задачей справился без дополнительных библиотек за 20 минут)) но тему заблокировали и решение я не выложил. 

b707
Offline
Зарегистрирован: 26.05.2017

о блин, он еще и поучать вздумал.

Смотри, чайник:

твой код:

if ((millis()-time>=250)&&(sensors.getTempCByIndex(0)>=120))
  {
      x=!x;
      if (x)
      {
        lcd.backlight();
        time = millis();
       } else
      {
       lcd.noBacklight();
       time = millis();
       }
  }

правильно

if ((millis()-time>=250)&&(sensors.getTempCByIndex(0)>=120))
  {
      x=!x;
      if (x)
      {
        lcd.backlight();
       
       } else
      {
       lcd.noBacklight();
     
       }
 time = millis();
  }

 

Efim
Offline
Зарегистрирован: 04.05.2018

b707

Молодец! Этот вариант тоже самое по количеству выполненных операций, так что смыла в такой записи не много. А вот если посмотриш на страницу назад то увидешь что я предлогал еще один варин реализации, который занимает еще меньше кода)) 

if ((millis()-time>=250)&&(sensors.getTempCByIndex(0)>=35))
  {
    x=!x;
    lcd.backlight(x);
    time = millis();
  }
else if (sensors.getTempCByIndex(0)<35)
{
lcd.backlight();
x=true;
}

Ну как?

b707
Offline
Зарегистрирован: 26.05.2017

valek101 пишет:

Ну не ругайтесь блин. Вот тут ключевое слово человеку помогли:-)

да мы не ругаемся, просто у Ефима головокружение :)

На самом деле код довольно сомнительный. И неизвестно, как он будет работать. Дело в  том, что библиотека Даллас измеряет  температуру примерно 750мс, а тут вы ее дергаете при каждом проходе цикла, да еще по три раза. По уму измерение температуры тоже по миллис надо делать, не чаще раза в секунду. Или просто переписывать работу с сенсором без библиотек.

Но тут точно не уверен, что вернет библиотека при слишком частом обращении - может старое значение температуры, а может какую-нибудь ерунду.

b707
Offline
Зарегистрирован: 26.05.2017

Efim пишет:

Молодец! Этот вариант тоже самое по количеству выполненных операций, так что смыла в такой записи не много.

Ты бы сразу так ответил - никто и не возражал бы. Но ты ж спорить начал, что мол, sadman41 не понял твоей программы, сказал, что строчку с миллис убрать нельзя...

так что теперь нечего хвостом вилять :)

 

b707
Offline
Зарегистрирован: 26.05.2017

Efim пишет:

Знаешь недавно я так же как и ты попросил помощи на данном форуме, угдай что получил в ответ?

когда этобыло, интересно - нику всего 2 дня? Или ты потом регистрацию сменил?

Интересно было бы почитать - небось требовал , чтобы все бросились тебе срочно помогать... вот и результат.

Efim
Offline
Зарегистрирован: 04.05.2018

b707 пишет:

Ты бы сразу так ответил - никто и не возражал бы. Но ты ж спорить начал, что мол, sadman41 не понял твоей программы, сказал, что строчку с миллис убрать нельзя...

так что теперь нечего хвостом вилять :)

Да это придирки не по теме, обьяснил выше. 

Я вообще хотел первый варинт использовать, так что тут не принципиально. 

Efim
Offline
Зарегистрирован: 04.05.2018

b707

А что забыли тему 2ХSPI на Arduino, вы там тоже участвовали:).  Ладно заблокировали мою темку из за флуда ну и бог с ней.

b707
Offline
Зарегистрирован: 26.05.2017

Efim пишет:

b707

А что забыли тему 2ХSPI на Arduino, вы там тоже участвовали:).  Ладно заблокировали мою темку из за флуда ну и бог с ней.

да вас всех не упомнишь... 

сегодня целый на амперке новичков душили-душили... душили-душили... душили-душили... душили-душили... душили-душили...

Efim
Offline
Зарегистрирован: 04.05.2018

b707

Ну вот перечитайте как будет время и может поймете в чем ваша ошибка. Алчность грех!

b707
Offline
Зарегистрирован: 26.05.2017

Efim пишет:

b707

Ну вот перечитайте как будет время и может поймете в чем ваша ошибка. Алчность грех!

ссылка есть? а то просто искать по форуму лениво, тем более что я даж примерно не помню, что там было.

а то так помру и не узнаю, в чем моя ошибка была - грех на тебя перейдет.

Efim
Offline
Зарегистрирован: 04.05.2018

 

Примерно там было что я полный ноль, халявщик, послали меня на три буквы, короче ужас. Хотя просто спросил про библиотеки и возможную реализацию с их помощью. http://arduino.ru/forum/programmirovanie/2xspi-na-arduino

b707
Offline
Зарегистрирован: 26.05.2017

ну как я и думал - обманутые ожидания.

ты всегда всем помогаешь, проект для общества какой-то там создал - а мы, говнюки, что-то не торопимся давать подробные готовые советы и нужную библиотеку не потрудились написать, да?

Стандартный сценарий. Сколько вас тут таких было. Не умеете правильно вживатся в социум.Второй раз не делай так.

Да, чуть не забыл... в чем моя алчность-то проявилась? что-то не нашел. Оскорблять - оскорблял, признаю... а алчность? - неведаю, отче

Efim
Offline
Зарегистрирован: 04.05.2018

b707

Суть всех этих ребят и вас сводилась к одому что бесплатно ни кто помогать не будет. Все жаждут какой то наживы, выгоды. Знаете уже много раз видел на данном форуме как людей отправляют в платный раздел напрямую. Но вы поймите что можете одной фразой отбить все желание у человека вообще изучать данное направление. Народ посмотрите какие вы злые, лишь бы както задеть, обидеть человека. Задумайтесь для чего вы это делаете.

valek101
Offline
Зарегистрирован: 06.06.2018

Efim пишет:

b707

Суть всех этих ребят и вас сводилась к одому что бесплатно ни кто помогать не будет. Все жаждут какой то наживы, выгоды. Знаете уже много раз видел на данном форуме как людей отправляют в платный раздел напрямую. Но вы поймите что можете одной фразой отбить все желание у человека вообще изучать данное направление. Народ посмотрите какие вы злые, лишь бы както задеть, обидеть человека. Задумайтесь для чего вы это делаете.

Вот тут вы к сожалению попали в точку:-(

bwn
Offline
Зарегистрирован: 25.08.2014

b707 пишет:

На самом деле код довольно сомнительный. И неизвестно, как он будет работать. Дело в  том, что библиотека Даллас измеряет  температуру примерно 750мс, а тут вы ее дергаете при каждом проходе цикла, да еще по три раза. По уму измерение температуры тоже по миллис надо делать, не чаще раза в секунду. Или просто переписывать работу с сенсором без библиотек.

Но тут точно не уверен, что вернет библиотека при слишком частом обращении - может старое значение температуры, а может какую-нибудь ерунду.

На самом деле возвращает предыдущее значение. Он, зараза, вумный и перезапись регистров производит по окончании преобразования. Меня больше смущает, что верхнее паспортное значение у него +125гр., а в данной конструкции, так понимаю, это не предел. Вот как он долго проживет и что будет показывать? 
Заставлять "измерительное оборудование" работать в крайних допустимых пределах, есть внушение себе ложной уверенности и создание потенциальных проблем. ИМХО.

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

Efim пишет:

Примерно там было что я полный ноль, халявщик, послали меня на три буквы, короче ужас. Хотя просто спросил про библиотеки и возможную реализацию с их помощью. http://arduino.ru/forum/programmirovanie/2xspi-na-arduino

Помню такую тему. Человеку всё рассказали как делать, даже в нескольких вариантах, но минет готовый код не сделали. Ох и вони поднялось. Сопляк начал b707, дракулу, деда, евгения и прочих учить жизни и объяснять им, тупым, что такое SPI. В итоге был, совершенно заслуженно, послан, но, похоже, так нихрена и не понял.

sadman41
Offline
Зарегистрирован: 19.10.2016

Efim пишет:

Вы наверное не совсем правильно читаете программу, при каждом состоянии подсветки мы обнуляем время полупериода. Хотелось бы взглянуть на вашу реализацию данной задачи и про чтение температуры тоже.

Хотя мне это и не нужно особо, но извольте:

void loop()
{
  static uint8_t currentTemperature, flashing = false, backlight = true;
  static uint32_t lastFlashTime, lastTempUpdateTime, nowTime;

  nowTime = millis();

  if (TEMP_UPDATE_INTERVAL < nowTime - lastTempUpdateTime) {
    lastTempUpdateTime = nowTime;
    sensors.requestTemperatures();
    currentTemperature = (uint8_t) sensors.getTempCByIndex(0); //  0...255C
    lcd.setCursor(7, 0);
    lcd.print(currentTemperature);
    lcd.print("\1 C   ");
  }

  if (START_FLASHING_TEMP < currentTemperature) {
    flashing = true;
  }

  if (STOP_FLASHING_TEMP > currentTemperature) {
    flashing = false;
    backlight = true;
    lcd.backlight();
  }

  if (flashing && (FLASH_INTERVAL < nowTime - lastFlashTime)) {
    lastFlashTime = nowTime;
    backlight = !backlight;
    backlight ? lcd.backlight() : lcd.noBacklight();
  }
}

 

Efim
Offline
Зарегистрирован: 04.05.2018

sadman41

Хороший вариант, только дописать его он сможет к концу года. Но есть варианты куда проще, весь код в 30 строк)

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Efim пишет:
Хороший вариант, только дописать его он сможет к концу года. Но есть варианты куда проще, весь код в 30 строк)
Может Вы ему и приплатите, что бы он сам себе написал. А если напишет , то и путевочку на Майами бесплатно дать. Человек же старался. 

valek101
Offline
Зарегистрирован: 06.06.2018

bwn пишет:

b707 пишет:

На самом деле код довольно сомнительный. И неизвестно, как он будет работать. Дело в  том, что библиотека Даллас измеряет  температуру примерно 750мс, а тут вы ее дергаете при каждом проходе цикла, да еще по три раза. По уму измерение температуры тоже по миллис надо делать, не чаще раза в секунду. Или просто переписывать работу с сенсором без библиотек.

Но тут точно не уверен, что вернет библиотека при слишком частом обращении - может старое значение температуры, а может какую-нибудь ерунду.

На самом деле возвращает предыдущее значение. Он, зараза, вумный и перезапись регистров производит по окончании преобразования. Меня больше смущает, что верхнее паспортное значение у него +125гр., а в данной конструкции, так понимаю, это не предел. Вот как он долго проживет и что будет показывать? 
Заставлять "измерительное оборудование" работать в крайних допустимых пределах, есть внушение себе ложной уверенности и создание потенциальных проблем. ИМХО.

Проверил датчик почти на 100 процентов соответствует паспортным значениям повис на 127 градусах:-)

Будет он эксплуатироваться в температурном режиме 90-105 градусов ( я на это очень надеюсь) так скажем 120 температура это когда уже надо тормозить срочно и остужать двигатель (немного подумав поставил порог срабатывания 115 вместо 120) суть в том что после температуры 130 залегают кольца и как говорится привет кольцам или даже скорее всего привет поршневая. 

В общем датчик как раз укладываеться в нужные мне режимы с запасом.

И вот еще раз скажу большое спасибо Efim за помошь что мой двигатель теперь не перегрееться и не помрет не начав даже толком жить:-)

Безусловно граждане вы правильно пишете что нужно учиться (ебаться) и еще раз учиться, через пол года возможно и я с вами смогу поспорить у кого код правильный у кого не правильный но не сейчас. 

 

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

valek101, вот почему сейчас Вы на все согласны:

1- что нужно учиться (ебаться) и еще раз учиться, а у Вас не очень.

2- Применили хитрый финт всех новичков- обратились на форум за шарой или за толкачем. А Вам объяснили , что вы не первый и не последний и надо смотри пункт 1.

3-И когда Efim дал кривой код, вы к нему уже без притензий так как имеете опыт смотри пунк 1 и 2.

4-зачем нужна "дерьмотерапия" новичкам. Для того что бы их хотелки не превышали то чего они стоят. Может на других форумах иначе, но результат такой же. Без труда не получишь отличный код и даже нормальный. 

ПС: Мигать подсветкой это жесть. но смотри пункт 3.

valek101
Offline
Зарегистрирован: 06.06.2018

qwone пишет:

valek101, вот почему сейчас Вы на все согласны:

1- что нужно учиться (ебаться) и еще раз учиться, а у Вас не очень.

2- Применили хитрый финт всех новичков- обратились на форум за шарой или за толкачем. А Вам объяснили , что вы не первый и не последний и надо смотри пункт 1.

3-И когда Efim дал кривой код, вы к нему уже без притензий так как имеете опыт смотри пунк 1 и 2.

4-зачем нужна "дерьмотерапия" новичкам. Для того что бы их хотелки не превышали то чего они стоят. Может на других форумах иначе, но результат такой же. Без труда не получишь отличный код и даже нормальный. 

ПС: Мигать подсветкой это жесть. но смотри пункт 3.

1- В чем жесть мигать подсветкой?

2- Дерьмотерапия только отбивает желание дальше что то изучать

3- Может и кривой но то что от него надо он делает

4- Я вроде как пояснил что что я совсем не против учиться (и буду это делать) и не просил написать код для системы управления космическим кораблем, а попросил то что для вас обладающих знаниями (которых нет в данный момент у меня) совсем не сложно:-)   

p.s. Это примерно тоже самое как подошел к вам человек на улице: ну допустим на улице Ленина.

Спрашивает у вас где находиться улица Ленина, а вы вместо того чтоб ответить ему так вот же она начинаете ему расказывать что есть дом, на доме есть табличка, на табличке есть название улицы и вообще у нас 21 век и есть такая штука как навигатор. И всем известно что посмотрев на табличку (в навигатор) тот кто спрашивал узнает название улицы, но никто не учитывает что человек может плохо видеть не иметь навигатора, да может он просто умственно отсталый и забыл где его дом но помнит только название улицы. 

sadman41
Offline
Зарегистрирован: 19.10.2016

Только этот человек подошел не затем, чтобы спросить где купить сигарет, а просто стрельнуть парочку.

И, как показывает практика: как только текущая задача решена - все клятвы "учить денно и нощно" будут немедленно забыты. 

valek101
Offline
Зарегистрирован: 06.06.2018

Расскажу одну историю:-) Я сам из Питера и как то приехал Посмотреть на Москву и просто погулять. Так почти все люди кто явно долго живут в Москве (коренные жители эммм...) когда я их о чем либо спрашивал все в один голос отвечали ничего не знаем, и в плоть до того что я не дошел до Арбата буквально сто метров идя в правильном направлении и спрашивая людей которые идут мне на встречу, а они шли именно с Арбата (но я об этом конечно же не знал) мне все говорили что не знают где Арбат хотя они не как не могли этого не знать и смотрели на меня как на полное чмо. И только лишь один человек который недавно приехал жить в Москву ответил мне так вот же он в ста метрах впереди ты правильно идешь, мы с ним немного разговорились и он мне поведал что у Москвичей можно ничего не спрашивать хрен что подскажут и он столкнулся с той же проблемой когда приехал в столицу:-(

Так вот к чему я это все: Как вы думаете какое впечатление у меня осталось о столице? И как вы думаете где я себя почуствовал снова как в Москве?  Даю подсказку гражданин  Efim в данной ситуации приезжий но помог мне (своим кривым кодом) но помог.

Тогда сорян ребята и я правда не на тот форум зашел, у нас в Питере все не так, у нас просто помогут без нравоучений и еще в догонку дадут полезный совет куда можно сходить и на что еще посмотреть:-) 

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

valek101 пишет:
1- В чем жесть мигать подсветкой?

Глаза устанут, да и мигалка она всегда отвлекает

Цитата:
2- Дерьмотерапия только отбивает желание дальше что то изучать

Если вы боитесь в дерьме запачкаться, то зачем Вам это. Программирование это тоже дерьмо, особенно если не работает. Так что из-за всяких мелочей бегать на форум плакаться.  А когда там еще больше нальют уже и больше на себя надешься.

Цитата:
p.s. Это примерно тоже самое как подошел к вам человек на улице: ну допустим на улице Ленина
Вот вот с Ленина и надо начинать. У нас проспект Ленина стал Центральным. И начать спрашивать где находится проспект Ленина, да ну на хер. Нарвешься на чела висящего на зомбоящике и нервы попортишь. А так лучше Инете посмотреть где что находится и прийти без нервов. Даже если шанс 1%.

valek101
Offline
Зарегистрирован: 06.06.2018

sadman41 пишет:

Только этот человек подошел не затем, чтобы спросить где купить сигарет, а просто стрельнуть парочку.

И, как показывает практика: как только текущая задача решена - все клятвы "учить денно и нощно" будут немедленно забыты. 

А если он попросит у вас огонька? вы будете учить его добывать огонь трением? Вам реально жалко газа в зажигалке или спички? Или вы считаете что он не знает что их можно купить в магазине?

Efim
Offline
Зарегистрирован: 04.05.2018

valek101

А дисплей поддерживает русский?

valek101
Offline
Зарегистрирован: 06.06.2018

qwone пишет:

valek101 пишет:
1- В чем жесть мигать подсветкой?

Глаза устанут, да и мигалка она всегда отвлекает

Это и нужно чтоб отвлекала напрягала и бесила, так как если мигает это уже не рабочий режим и надо остановиться и заставить ее перестать мигать ( тоесть подождать чтоб двигатель остыл)

valek101
Offline
Зарегистрирован: 06.06.2018

Efim пишет:

valek101

А дисплей поддерживает русский?

Нет, но через библиотеку LCD_1602_RUS.h можно получить 8 руских символов одновременно на экране (короче костыль но можно применять)

Efim
Offline
Зарегистрирован: 04.05.2018

lcd.print ((char) 223); символ градуса тогда так выводится.

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

valek101 пишет:
Это и нужно чтоб отвлекала напрягала и бесила, так как если мигает это уже не рабочий режим и надо остановиться и заставить ее перестать мигать ( тоесть подождать чтоб двигатель остыл)
И как остальные участники движения это поймут. Чувак с мигалками на мопеде смотрит на экран и ждет когда мотор остынет. И остальные ждут когда у чувака мотор остынет и начать движение.

valek101
Offline
Зарегистрирован: 06.06.2018

qwone пишет:

valek101 пишет:
Это и нужно чтоб отвлекала напрягала и бесила, так как если мигает это уже не рабочий режим и надо остановиться и заставить ее перестать мигать ( тоесть подождать чтоб двигатель остыл)
И как остальные участники движения это поймут. Чувак с мигалками на мопеде смотрит на экран и ждет когда мотор остынет. И остальные ждут когда у чувака мотор остынет и начать движение.

Да вы что не так конечно, остановился припарковался курим ждем пока остынет. И это вообще в теории не должно произойти рабочая темпераура 95-105 градусов. Но поршневая стоит увеличенного объема и возможно пойдет больший нагрев. Вот только этот момент и надо отловить 

valek101
Offline
Зарегистрирован: 06.06.2018

Efim пишет:

lcd.print ((char) 223); символ градуса тогда так выводится.

Вот кстати символ градуса походу гадит в нижней строчке если там писать кирилицей текст то вместо одной буквы будет символ градуса:-)

sadman41
Offline
Зарегистрирован: 19.10.2016

valek101 пишет:

sadman41 пишет:

Только этот человек подошел не затем, чтобы спросить где купить сигарет, а просто стрельнуть парочку.

А если он попросит у вас огонька? вы будете учить его добывать огонь трением? Вам реально жалко газа в зажигалке или спички? Или вы считаете что он не знает что их можно купить в магазине?

Ну и зачем вы начинаете "если", "то"? Так повелось, что в данном разделе форума помогают научиться программировать, а не делают вместо просящего.

Вы, поди, в автосервисе работаете? Ну вот, представьте, что все подряд начнут свои машины к вам загонять, чтобы вы починили их. Бесплатно. А они потом, когда-нибудь, поучаться автоделу. 

Efim
Offline
Зарегистрирован: 04.05.2018

Попробуй так:

#include <Wire.h>                           // Подключаем библиотеку Wire
#include <LiquidCrystal_I2C.h>              // Подключаем библиотеку LiquidCrystal_I2C 
#include <DallasTemperature.h>              // Подключаем библиотеку DallasTempature
#include "LCD_1602_RUS.h"

LCD_1602_RUS lcd(0x27,16,2);           // Задаем адрес и размер дисплея
OneWire oneWire(2);                    // Указываем, к какому выводу подключена DQ
DallasTemperature sensors(&oneWire);   
boolean x=true;
unsigned long time;
byte TempMax = 36;				       //Температура срабатывания индикации о перегреве
 
void setup()
{
  sensors.begin();                           // Запуск библиотеки, по умолчанию 9 бит, то есть кратность 0.5 градуса 
  lcd.init();                                // Инициализация lcd    
  lcd.backlight();                           // Включаем подсветку
  lcd.setCursor(1,0);                        // Устанавливаем курсор на 1 строку, ячейка 2
  lcd.print("МАСЛО");                        // Выводим текст
  lcd.setCursor(4,1);                        // Устанавливаем курсор на 2 строку, ячейка 2 
  lcd.print("TEMP OIL");                     // Выводим текст
  time = millis();
}
void loop()
{  
  if (millis()-time>=250)
    {
	  sensors.requestTemperatures();              // Считываем показания температуры 
	  lcd.setCursor(7,0);                         // Устанавливаем курсор на 1 строку, ячейка 7 
	  lcd.print(sensors.getTempCByIndex(0));      // Выводим показания температуры
	  lcd.setCursor(12,0);                        // Устанавливаем курсор на 1 строку, ячейка 12  
	  lcd.print ((char) 223);                     // Выводим символ градуса
	  lcd.setCursor(13,0);                        // Устанавливаем курсор на 1 строку, ячейка 13 
	  lcd.print("C");                        	  // Выводим текст
      if (sensors.getTempCByIndex(0)>=TempMax)
		{
		 x=!x;
		 lcd.setBacklight(x);		  
		} 
		else
        {
         lcd.backlight();
         x=true;
        }
      time = millis();	  
    }  
}