Некорректная работа меню Ардуино Шилд
- Войдите на сайт для отправки комментариев
Пнд, 24/11/2014 - 23:14
Добрый вечер всем !. П
#include <OneWire.h>
#include <DallasTemperature.h>
#include <LiquidCrystal.h>
#include <EEPROM2.h>
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
#define BACKLIGHT_PIN 10//int backLight = 10;
boolean backlightStatus = 1;
int relay1 = 2;
int relay2 = 3;
int relay3 = 11;
int relay4 = 12;
float temp1=0; //переменная для текущего значения температуры
int setTmp1;// переменная для заданного значения температуры
float temp2=0; //переменная для текущего значения температуры
int setTmp2=0; // переменная для заданного значения температуры
float temp3=0; //переменная для текущего значения температуры
int setTmp3=0;
float temp4=0; //переменная для текущего значения температуры
int setTmp4=0;
#define ONE_WIRE_BUS 13
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
DeviceAddress Probe001 = { 0x28, 0xBF, 0x7A, 0x15, 0x06, 0x00, 0x00, 0x85 };
DeviceAddress Probe002 = { 0x28, 0x74, 0x61, 0x15, 0x06, 0x00, 0x00, 0xEE };
DeviceAddress Probe003 = { 0x28, 0x5A, 0x36, 0x15, 0x06, 0x00, 0x00, 0x8F };
DeviceAddress Probe004 = { 0x28, 0xB0, 0x7B, 0x15, 0x06, 0x00, 0x00, 0x6C };
#define KEYPAD_PIN A0
//Определим значения на аналоговом входе для клавиатуры
#define ButtonUp_LOW 120
#define ButtonUp_HIGH 140
#define ButtonDown_LOW 250
#define ButtonDown_HIGH 350
#define ButtonLeft_LOW 450
#define ButtonLeft_HIGH 450
#define ButtonRight_LOW 0
#define ButtonRight_HIGH 80
#define ButtonSelect_LOW 690
#define ButtonSelect_HIGH 780
void setup()
{
sensors.begin();
sensors.setResolution(Probe001, 12);
sensors.setResolution(Probe002, 12);
sensors.setResolution(Probe003, 12);
sensors.setResolution(Probe004, 12);
setTmp1=EEPROM_read_byte(0);
//pinMode(backLight, INPUT); // влк викл підсвідки input output
//digitalWrite(backLight, LOW); // нерухати завжки має бути lo
pinMode(BACKLIGHT_PIN, OUTPUT);
digitalWrite(BACKLIGHT_PIN, backlightStatus);
pinMode(relay1, OUTPUT);
digitalWrite(relay1, HIGH);
pinMode(relay2, OUTPUT);
digitalWrite(relay2, HIGH);
pinMode(relay3, OUTPUT);
digitalWrite(relay3, HIGH);
pinMode(relay4, OUTPUT);
digitalWrite(relay4, HIGH);
lcd.begin(16,2);
lcd.setCursor(2,0);
lcd.print("Solar Heater");
delay(3000);
lcd.setCursor(3,1);
lcd.print("Controller");
delay(3000);
lcd.clear();
lcd.setCursor(1,0);
lcd.print("Andrii PROject");
delay(3000);
lcd.setCursor(2,1);
lcd.print("version 1.8");
delay(2000);
lcd.clear();
lcd.print("Loading data");
delay(500);
lcd.print(".");
delay(500);
lcd.print(".");
delay(500);
lcd.print(".");
delay(2000);
lcd.clear();
}
float printTemperature(DeviceAddress deviceAddress)
{
float tempC = sensors.getTempC(deviceAddress);
}
int ReadKey(int keyPin)
{
int KeyNum=0;
int KeyValue1=0;
int KeyValue2=0;
//Читаем в цикле аналоговый вход, для подавления дребезга и нестабильности читаем по два раза подряд, пока значения не будут равны.
//Если значения равны 1023 – значит не была нажата ни одна клавиша.
do {KeyValue1=analogRead(keyPin);KeyValue2=analogRead(keyPin);}
while(KeyValue1==KeyValue2&&KeyValue2!=1023);
//Интерпретируем полученное значение и определяем код нажатой клавиши
if (KeyValue2<ButtonUp_HIGH&&KeyValue2>ButtonUp_LOW) {KeyNum=1;}//Up
if (KeyValue2<ButtonDown_HIGH&&KeyValue2>ButtonDown_LOW) {KeyNum=2;}//Down
if (KeyValue2<ButtonLeft_HIGH&&KeyValue2>ButtonLeft_LOW) {KeyNum=3;}//Left
if (KeyValue2<ButtonRight_HIGH&&KeyValue2>ButtonRight_LOW) {KeyNum=4;}//Right
if (KeyValue2<ButtonSelect_HIGH&&KeyValue2>ButtonSelect_LOW) {KeyNum=5;}//Select
//Возвращаем код нажатой клавиши
return KeyNum;
}
//Определим процедуру редактирования заданной температуры
//Вызывается по нажатию клавиши Select, отображает на дисплее заданную температуру и позволяет изменять ее клавишами Up и Down
void setTemperature_1() {
int keyCode=0;
//выводим на дисплей заданное значение температуры
lcd.begin(16,2);
lcd.setCursor(0, 0);
lcd.print(">> Set temp 1 <<");
lcd.setCursor(0, 1);
lcd.print("*");
lcd.setCursor(2, 1);
lcd.print(setTmp1);
//Опрашиваем клавиатуру, если нажата клавиша Up увеличиваем значение на 1, если Down – уменьшаем на 1
//Если нажаты клавиши Select или Right – цикл опроса прерывается
//Задержки введены для борьбы с дребезгом, если клавиши срабатывают четко – можно уменьшить время задержек или вообще их убрать
do {
keyCode=ReadKey(KEYPAD_PIN);
if (keyCode==1){setTmp1+=1 && setTmp1<=98;delay(200);lcd.setCursor(6,1);lcd.write((uint8_t)1);lcd.setCursor(7, 1);lcd.print(setTmp1);}
if (keyCode==2){setTmp1-=1 && setTmp1>=2;delay(200);lcd.setCursor(6,1);lcd.write((uint8_t)2);lcd.setCursor(7, 1);lcd.print(setTmp1);}
} while (keyCode!=5 && keyCode!=4);
delay(200);
//По клавише Select – созраняем в EEPROM измененное значение
//По клавише Right – восстанавливаем старое значение
if (keyCode==5) {EEPROM_write_byte(0, setTmp1);lcd.setCursor(12, 1);lcd.print("SAVE");delay(2000);}
if (keyCode==4) {setTmp1 = EEPROM_read_byte(0);lcd.setCursor(12, 1);lcd.print("EXIT");delay(2000);}
}
void setTemperature_2() {
int keyCode=0;
//выводим на дисплей заданное значение температуры
lcd.begin(16,2);
lcd.setCursor(0, 0);
lcd.print(">> Set temp 2 <<");
lcd.setCursor(7, 1);
lcd.print(setTmp2);
//Опрашиваем клавиатуру, если нажата клавиша Up увеличиваем значение на 1, если Down – уменьшаем на 1
//Если нажаты клавиши Select или Right – цикл опроса прерывается
//Задержки введены для борьбы с дребезгом, если клавиши срабатывают четко – можно уменьшить время задержек или вообще их убрать
do {
keyCode=ReadKey(KEYPAD_PIN);
if (keyCode==1){setTmp2++;delay(200);lcd.setCursor(7, 1);lcd.print(setTmp2);}
if (keyCode==2){setTmp2--;delay(200);lcd.setCursor(7, 1);lcd.print(setTmp2);}
} while (keyCode!=5 && keyCode!=4);
delay(200);
//По клавише Select – созраняем в EEPROM измененное значение
//По клавише Right – восстанавливаем старое значение
if (keyCode==5) {delay(200);EEPROM_write_byte(1, setTmp2);}
if (keyCode==4) {delay(200);setTmp1 = EEPROM_read_byte(1);}
}
void setbacklight() {
int keyCode=0;
//выводим на дисплей заданное значение температуры
lcd.begin(16,2);
lcd.setCursor(0, 0);
lcd.print(">Set back_light<");
//Опрашиваем клавиатуру, если нажата клавиша Up увеличиваем значение на 1, если Down – уменьшаем на 1
//Если нажаты клавиши Select или Right – цикл опроса прерывается
//Задержки введены для борьбы с дребезгом, если клавиши срабатывают четко – можно уменьшить время задержек или вообще их убрать
do {
keyCode=ReadKey(KEYPAD_PIN);
if (keyCode==1){backlightStatus=1;digitalWrite(BACKLIGHT_PIN, backlightStatus);lcd.setCursor(0, 1);lcd.print("-> ON ");}
if (keyCode==2){backlightStatus=0;digitalWrite(BACKLIGHT_PIN, backlightStatus);lcd.setCursor(0, 1);lcd.print("-> OFF ");}
} while (keyCode!=4);
delay(200);
//По клавише Select – созраняем в EEPROM измененное значение
//По клавише Right – восстанавливаем старое значение
if (keyCode==4) {setTmp1 = EEPROM_read_byte(1);lcd.setCursor(12, 1);lcd.print("EXIT");}
}
void loop()
{
my_char();
}
void my_char()
{
byte on[8] = {0b00100,0b01110,0b11111,0b00100,0b00100,0b00100,0b00100,0b00100};
byte off[8] = {0b00100,0b00100,0b00100,0b00100,0b00100,0b11111,0b01110,0b00100};
byte one[8] = {0b11111,0b11011,0b10011,0b11011,0b11011,0b11011, 0b10001,0b11111};
byte two[8] = {0b11111,0b10001,0b10101,0b11101,0b11011,0b10111,0b10001,0b11111};
byte three[8] = {0b11111,0b10001,0b11101,0b11011,0b11101,0b11101,0b10001,0b11111};
byte four[8] = {0b11111,0b11101,0b11001,0b10101,0b10001,0b11101,0b11101,0b11111};
byte celsium[8] = {0b01000,0b10100,0b01000,0b00000,0b00110,0b01000,0b01000,0b00110};
lcd.createChar(1,on);
lcd.createChar(2,off);
lcd.createChar(3,one);
lcd.createChar(4,two);
lcd.createChar(5,three);
lcd.createChar(6,four);
lcd.createChar(7,celsium);
//delay(500); // затримка зчитування датчиків
sensors.requestTemperatures();
float temp1 = printTemperature(Probe001);
if (temp1 == -127.00) {
lcd.setCursor(0,0);
lcd.write((uint8_t)3);
lcd.print("FAULT");
lcd.setCursor(6,0);
lcd.write((uint8_t)7);
} else {
lcd.setCursor(0,0);
lcd.write((uint8_t)3);
lcd.print(printTemperature(Probe001));
lcd.setCursor(6,0);
lcd.write((uint8_t)7);
}
float temp2 = printTemperature(Probe002);
if (temp2 == -127.00) {
lcd.setCursor(0,1);
lcd.write((uint8_t)4);
lcd.print("FAULT");
lcd.setCursor(6,1);
lcd.write((uint8_t)7);
}else {
lcd.setCursor(0,1);
lcd.write((uint8_t)4);
lcd.print(printTemperature(Probe002));
lcd.setCursor(6,1);
lcd.write((uint8_t)7);
}
float temp3 = printTemperature(Probe003);
if (temp3 == -127.00) {
lcd.setCursor(8,0);
lcd.write((uint8_t)5);
lcd.print("FAULT");
lcd.setCursor(14,0);
lcd.write((uint8_t)7);
}else {
lcd.setCursor(8,0);
lcd.write((uint8_t)5);
lcd.print(printTemperature(Probe003));
lcd.setCursor(14,0);
lcd.write((uint8_t)7);
}
float temp4 = printTemperature(Probe004);
if (temp4 == -127.00) {
lcd.setCursor(8,1);
lcd.write((uint8_t)6);
lcd.print("FAULT");
lcd.setCursor(14,1);
lcd.write((uint8_t)7);
}else {
lcd.setCursor(8,1);
lcd.write((uint8_t)6);
lcd.print(printTemperature(Probe004 ));
lcd.setCursor(14,1);
lcd.write((uint8_t)7);
}
if (temp1>setTmp1)
{
digitalWrite(2,LOW); // вкл
lcd.setCursor(7,0);
lcd.write((uint8_t)1);
} else if (temp1 <setTmp1)
{
digitalWrite(2,HIGH); //викл
lcd.setCursor(7,0);
lcd.write((uint8_t)2);
}
if (temp2 >32)
{
digitalWrite(3,LOW); // вкл
lcd.setCursor(7,1);
lcd.write((uint8_t)1);
} else if (temp2 <29)
{
digitalWrite(3,HIGH); //викл
lcd.setCursor(7,1);
lcd.write((uint8_t)2);
}
if (temp3 >32)
{
digitalWrite(11,LOW); // вкл
lcd.setCursor(15,0);
lcd.write((uint8_t)1);
} else if (temp3 <29)
{
digitalWrite(11,HIGH); //викл
lcd.setCursor(15,0);
lcd.write((uint8_t)2);
}
if (temp4 >32)
{
digitalWrite(12,LOW); // вкл
lcd.setCursor(15,1);
lcd.write((uint8_t)1);
} else if (temp4 <29)
{
digitalWrite(12,HIGH); //викл
lcd.setCursor(15,1);
lcd.write((uint8_t)2);
}
int Feature = ReadKey(KEYPAD_PIN);
if (Feature==1 ) {delay(200);setTemperature_1();} //Переход к редактированию заданной температуры
if (Feature==2 ) {delay(200);setTemperature_2();}
if (Feature==5 ) {delay(200);setbacklight();}
}
одскажите пожалуйста что я делаю не так!
Я добавлю два скетчи в первом скетчи более менее нормально можно выставит температуру на базе примитивных настроек.
А вот во втором скетчи температура цбррент темп лод корректно отображается но обновляется только после того, если я еКак сделать так, чтобы при включнни ардуино выводилась температура с четырем датчиков а при нажатии кнопки я заходил в меню и мог корректировать настройки заданной температуры четырех датчиков и подсветки и при нажатии еще одной кнопки выйти из меню в просмотр температуры с датчиков.ще раз захожу в меню.И еще как правильно вставить свои символы с первого скетча в другой. Буду благодарен за ответ
#include <OneWire.h> #include <DallasTemperature.h> #include <LiquidCrystal.h> #include <EEPROM2.h> LiquidCrystal lcd(8, 9, 4, 5, 6, 7); #define BACKLIGHT_PIN 10//int backLight = 10; boolean backlightStatus = 1; int relay1 = 2; int relay2 = 3; int relay3 = 11; int relay4 = 12; float temp1=0; //переменная для текущего значения температуры int setTmp1;// переменная для заданного значения температуры float temp2=0; //переменная для текущего значения температуры int setTmp2=0; // переменная для заданного значения температуры float temp3=0; //переменная для текущего значения температуры int setTmp3=0; float temp4=0; //переменная для текущего значения температуры int setTmp4=0; int currentMenuItem = 0; int lastFeature = 0; #define ONE_WIRE_BUS 13 OneWire oneWire(ONE_WIRE_BUS); DallasTemperature sensors(&oneWire); DeviceAddress Probe001 = { 0x28, 0xBF, 0x7A, 0x15, 0x06, 0x00, 0x00, 0x85 }; DeviceAddress Probe002 = { 0x28, 0x74, 0x61, 0x15, 0x06, 0x00, 0x00, 0xEE }; DeviceAddress Probe003 = { 0x28, 0x5A, 0x36, 0x15, 0x06, 0x00, 0x00, 0x8F }; DeviceAddress Probe004 = { 0x28, 0xB0, 0x7B, 0x15, 0x06, 0x00, 0x00, 0x6C }; #define KEYPAD_PIN A0 //Определим значения на аналоговом входе для клавиатуры #define ButtonUp_LOW 120 #define ButtonUp_HIGH 140 #define ButtonDown_LOW 250 #define ButtonDown_HIGH 350 #define ButtonLeft_LOW 450 #define ButtonLeft_HIGH 450 #define ButtonRight_LOW 0 #define ButtonRight_HIGH 80 #define ButtonSelect_LOW 690 #define ButtonSelect_HIGH 780 void setup() { sensors.begin(); sensors.setResolution(Probe001, 12); sensors.setResolution(Probe002, 12); sensors.setResolution(Probe003, 12); sensors.setResolution(Probe004, 12); setTmp1=EEPROM_read_byte(0); //pinMode(backLight, INPUT); // влк викл підсвідки input output //digitalWrite(backLight, LOW); // нерухати завжки має бути lo pinMode(BACKLIGHT_PIN, OUTPUT); digitalWrite(BACKLIGHT_PIN, backlightStatus); pinMode(relay1, OUTPUT); digitalWrite(relay1, HIGH); pinMode(relay2, OUTPUT); digitalWrite(relay2, HIGH); pinMode(relay3, OUTPUT); digitalWrite(relay3, HIGH); pinMode(relay4, OUTPUT); digitalWrite(relay4, HIGH); lcd.begin(16,2); lcd.setCursor(2,0); lcd.print("Solar Heater"); delay(3000); lcd.setCursor(3,1); lcd.print("Controller"); delay(3000); lcd.clear(); lcd.setCursor(1,0); lcd.print("Andrii PROject"); delay(3000); lcd.setCursor(2,1); lcd.print("version 1.8"); delay(2000); lcd.clear(); lcd.print("Loading data"); delay(500); lcd.print("."); delay(500); lcd.print("."); delay(500); lcd.print("."); delay(2000); lcd.clear(); } float printTemperature(DeviceAddress deviceAddress) { float tempC = sensors.getTempC(deviceAddress); } int ReadKey(int keyPin) { int KeyNum=0; int KeyValue1=0; int KeyValue2=0; //Читаем в цикле аналоговый вход, для подавления дребезга и нестабильности читаем по два раза подряд, пока значения не будут равны. //Если значения равны 1023 – значит не была нажата ни одна клавиша. do {KeyValue1=analogRead(keyPin);KeyValue2=analogRead(keyPin);} while(KeyValue1==KeyValue2&&KeyValue2!=1023); //Интерпретируем полученное значение и определяем код нажатой клавиши if (KeyValue2<ButtonUp_HIGH&&KeyValue2>ButtonUp_LOW) {KeyNum=1;}//Up if (KeyValue2<ButtonDown_HIGH&&KeyValue2>ButtonDown_LOW) {KeyNum=2;}//Down if (KeyValue2<ButtonLeft_HIGH&&KeyValue2>ButtonLeft_LOW) {KeyNum=3;}//Left if (KeyValue2<ButtonRight_HIGH&&KeyValue2>ButtonRight_LOW) {KeyNum=4;}//Right if (KeyValue2<ButtonSelect_HIGH&&KeyValue2>ButtonSelect_LOW) {KeyNum=5;}//Select //Возвращаем код нажатой клавиши return KeyNum; } //Определим процедуру редактирования заданной температуры //Вызывается по нажатию клавиши Select, отображает на дисплее заданную температуру и позволяет изменять ее клавишами Up и Down void setTemperature_1() { int keyCode=0; //выводим на дисплей заданное значение температуры lcd.begin(16,2); lcd.setCursor(0, 0); lcd.print(">> Set temp 1 <<"); lcd.setCursor(0, 1); lcd.print("*"); lcd.setCursor(2, 1); lcd.print(setTmp1); //Опрашиваем клавиатуру, если нажата клавиша Up увеличиваем значение на 1, если Down – уменьшаем на 1 //Если нажаты клавиши Select или Right – цикл опроса прерывается //Задержки введены для борьбы с дребезгом, если клавиши срабатывают четко – можно уменьшить время задержек или вообще их убрать do { keyCode=ReadKey(KEYPAD_PIN); if (keyCode==1){setTmp1+=1 && setTmp1<=98;delay(200);lcd.setCursor(6,1);lcd.write((uint8_t)1);lcd.setCursor(7, 1);lcd.print(setTmp1);} if (keyCode==2){setTmp1-=1 && setTmp1>=2;delay(200);lcd.setCursor(6,1);lcd.write((uint8_t)2);lcd.setCursor(7, 1);lcd.print(setTmp1);} } while (keyCode!=5 && keyCode!=4); delay(200); //По клавише Select – созраняем в EEPROM измененное значение //По клавише Right – восстанавливаем старое значение if (keyCode==5) {EEPROM_write_byte(0, setTmp1);lcd.setCursor(12, 1);lcd.print("SAVE");delay(2000);} if (keyCode==4) {setTmp1 = EEPROM_read_byte(0);lcd.setCursor(12, 1);lcd.print("EXIT");delay(2000);} } void setTemperature_2() { int keyCode=0; //выводим на дисплей заданное значение температуры lcd.begin(16,2); lcd.setCursor(0, 0); lcd.print(">> Set temp 2 <<"); lcd.setCursor(7, 1); lcd.print(setTmp2); //Опрашиваем клавиатуру, если нажата клавиша Up увеличиваем значение на 1, если Down – уменьшаем на 1 //Если нажаты клавиши Select или Right – цикл опроса прерывается //Задержки введены для борьбы с дребезгом, если клавиши срабатывают четко – можно уменьшить время задержек или вообще их убрать do { keyCode=ReadKey(KEYPAD_PIN); if (keyCode==1){setTmp2++;delay(200);lcd.setCursor(7, 1);lcd.print(setTmp2);} if (keyCode==2){setTmp2--;delay(200);lcd.setCursor(7, 1);lcd.print(setTmp2);} } while (keyCode!=5 && keyCode!=4); delay(200); //По клавише Select – созраняем в EEPROM измененное значение //По клавише Right – восстанавливаем старое значение if (keyCode==5) {delay(200);EEPROM_write_byte(1, setTmp2);} if (keyCode==4) {delay(200);setTmp1 = EEPROM_read_byte(1);} } void setbacklight() { int keyCode=0; //выводим на дисплей заданное значение температуры lcd.begin(16,2); lcd.setCursor(0, 0); lcd.print(">Set back_light<"); //Опрашиваем клавиатуру, если нажата клавиша Up увеличиваем значение на 1, если Down – уменьшаем на 1 //Если нажаты клавиши Select или Right – цикл опроса прерывается //Задержки введены для борьбы с дребезгом, если клавиши срабатывают четко – можно уменьшить время задержек или вообще их убрать do { keyCode=ReadKey(KEYPAD_PIN); if (keyCode==1){backlightStatus=1;digitalWrite(BACKLIGHT_PIN, backlightStatus);lcd.setCursor(0, 1);lcd.print("-> ON ");} if (keyCode==2){backlightStatus=0;digitalWrite(BACKLIGHT_PIN, backlightStatus);lcd.setCursor(0, 1);lcd.print("-> OFF ");} } while (keyCode!=4); delay(200); //По клавише Select – созраняем в EEPROM измененное значение //По клавише Right – восстанавливаем старое значение if (keyCode==4) {setTmp1 = EEPROM_read_byte(1);lcd.setCursor(12, 1);lcd.print("EXIT");} } void loop() { //Call the main menu. mainMenu(); } void mainMenu() { int Feature = ReadKey(KEYPAD_PIN); //Set the Row 0, Col 0 position. lcd.setCursor(0,0); //If we are out of bounds on th menu then reset it. if (currentMenuItem < 0 || currentMenuItem > 4) { currentMenuItem = 0; } //If we have changed Index, saves re-draws. if (Feature != lastFeature) { if (Feature == 1) { //If Up currentMenuItem = currentMenuItem - 1; displayMenu(currentMenuItem); } else if (Feature == 2) { //If Down currentMenuItem = currentMenuItem + 1; displayMenu(currentMenuItem); } else if (Feature == 5) { //If Selected selectMenu(currentMenuItem); } //Save the last State to compare. lastFeature = Feature; } //Small delay delay(5); } //Display Menu Option based on Index. void displayMenu(int Feature) { switch (Feature) { case 1: clearPrintTitle(); lcd.print ("-> Backlight"); break; case 2: clearPrintTitle(); lcd.print ("-> TEMP 1"); break; case 3: clearPrintTitle(); lcd.print ("-> TEMP 2"); break; case 4: clearPrintTitle(); lcd.print ("-> See current T"); break; } } //Print a basic header on Row 1. void clearPrintTitle() { lcd.clear(); lcd.setCursor(0,0); lcd.print("<>>>> MENU <<<<>"); lcd.setCursor(0,1); } //Show the selection on Screen. void selectMenu(int Feature) { switch (Feature) { case 1: clearPrintTitle(); lcd.print ("-> set Backlight"); delay(500); clearPrintTitle(); delay(200); setbacklight(); //Call the function that belongs to Option 1 break; case 2: clearPrintTitle(); lcd.print ("-> set TEMP 1"); delay(500); clearPrintTitle(); delay(200); setTemperature_1(); //Call the function that belongs to Option 2 break; case 3: clearPrintTitle(); lcd.print ("-> set TEMP 2"); delay(500); clearPrintTitle(); delay(200); setTemperature_2(); //Call the function that belongs to Option 3 break; case 4: clearPrintTitle(); lcd.print ("LOAD CURRENT T:"); delay(1000); clearPrintTitle(); lcd.clear(); delay(800); sensors.requestTemperatures(); if (printTemperature(Probe001) == -127.00) { lcd.setCursor(0,0); lcd.write((uint8_t)3); lcd.print("FAULT"); lcd.setCursor(6,0); lcd.write((uint8_t)7); } else { lcd.setCursor(0,0); lcd.write((uint8_t)3); lcd.print(printTemperature(Probe001)); lcd.setCursor(6,0); lcd.write((uint8_t)7); } //Call the function that belongs to Option 4 break; } }одскажите пожалуйста что я делаю не так!
Я добавлю два скетчи в первом скетчи более менее нормально можно выставит температуру на базе примитивных настроек.
А вот во втором скетчи температура цбррент темп лод корректно отображается но обновляется только после того, если я еКак сделать так, чтобы при включнни ардуино выводилась температура с четырем датчиков а при нажатии кнопки я заходил в меню и мог корректировать настройки заданной температуры четырех датчиков и подсветки и при нажатии еще одной кнопки выйти из меню в просмотр температуры с датчиков.ще раз захожу в меню.И еще как правильно вставить свои символы с первого скетча в другой. Буду благодарен за ответ!!!
Извиняюсь за разбросанный вопрос
Подскажите пожалуйста что я делаю не так!
Я добавлю два скетчи в первом скетчи более менее нормально можно выставит температуру на базе примитивных настроек.
А вот во втором скетчи температура current temp load корректно отображается но обновляется только после того, если я захожу в то меню еще раз.
Как сделать так, чтобы при включнни ардуино выводилась температура с четырем датчиков а при нажатии кнопки я заходил в меню и мог корректировать настройки заданной температуры четырех датчиков и подсветки и при нажатии еще одной кнопки выйти из меню в просмотр температуры с датчиков.
И еще как правильно вставить свои символы с первого скетча в другой.
Буду благодарен за ответ!!!