Zdravím.Díky za radu.
Pokoušel jsem se pozměnit můj kód tak jak bylo psáno.Bohužel mi to nefunguje.Myslím si,že budu mít problém zřejmě v knihovně.Pro Uno totiž neexistuje knihovna pro displeje nextion-je pouze pro MEGA a musí se upravit knihovna v souboru config.h .
Vkládám můj kód.Pokud má někdo displej a uno,prosím o vyzkoušení. Třeba někdo zjistí chybu.
Vyzkoušel jsem již mnoho rad a návodů,které jsem našel na internetu,ale nepochodil jsem.
Možná mám ještě někde chybu,kterou přehlížím.
Každou úpravu nahrávám i do arduina a zkouším i s displejem.
zkoušel jsem jak textový řádek,tak číselné pole.Zde v kódu je poslední pokus - číselné pole.
Kód: Vybrat vše
#include <Nextion.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <SoftwareSerial.h>
#include "NexButton.h"
#include "NexText.h"
#include "NexNumber.h"
#include "Arduino.h"
//deklarace komunikace RX TX arduina s displejem - na pinech
#define co1_TX 1
#define co1_RX 0
SoftwareSerial nexSerial (co1_TX, co1_RX);
#define BUS_0 A0
#define BUS_1 A1
#define BUS_2 A2
#define BUS_3 A3
#define BUS_4 A4
OneWire oneWire0(BUS_0);
OneWire oneWire1(BUS_1);
OneWire oneWire2(BUS_2);
OneWire oneWire3(BUS_3);
OneWire oneWire4(BUS_4);
//adresace senzorů dallas DS18b20
DallasTemperature sensors0(&oneWire0);
DallasTemperature sensors1(&oneWire1);
DallasTemperature sensors2(&oneWire2);
DallasTemperature sensors3(&oneWire3);
DallasTemperature sensors4(&oneWire4);
//deklarace objektů v displeji nextion
NexText t0 = NexText (0, 1, "t0");
NexText t1 = NexText (0, 2, "t1");
NexText t2 = NexText (0, 3, "t2");
NexText t3 = NexText(0, 4, "t3");
NexText t4 = NexText(0, 5, "t4");
NexNumber n0 = NexNumber (0, 21, "n0");
NexNumber n1 = NexNumber(0, 22, "n1");
NexNumber n2 = NexNumber(0, 23, "n2");
NexNumber n3 = NexNumber(0, 24, "n3");
NexNumber n4 = NexNumber(0, 25, "n4");
NexButton button0 = NexButton(0, 6, "buton0");
NexButton button1 = NexButton(0, 7, "buton1");
NexButton button2 = NexButton(0, 8, "buton2");
NexButton button3 = NexButton(0, 9, "buton3");
NexButton button4 = NexButton(0, 10, "buton4");
char buffer [100];
NexTouch *nex_listen_list[] =
{
&t0,
&t1,
&t2,
&t3,
&t4,
&n0,
&n1,
&n2,
&n3,
&n4,
&button0,
&button1,
&button2,
&button3,
&button4,
NULL
};
int tx0;
int tx1;
int tx2;
int tx3;
int tx4;
int Rele0 = 6;
int Rele1 = 7;
int Rele2 = 8;
int Rele3 = 9;
int Rele4 = 10;
int Rele5 = 11;
int Rele6 = 12;
int Rele7 = 13;
int teplota0;
int teplota1;
int teplota2;
int teplota3;
int teplota4;
int val0;
int val1;
int val2;
int val3;
int val4;
void setup(void)
{
pinMode(Rele0,OUTPUT);
pinMode(Rele1,OUTPUT);
pinMode(Rele2,OUTPUT);
pinMode(Rele3,OUTPUT);
pinMode(Rele4,OUTPUT);
pinMode(Rele5,OUTPUT);
pinMode(Rele6,OUTPUT);
pinMode(Rele7,OUTPUT);
Serial.begin(9600);
nexSerial.begin(9600);
delay(500);
//connect();
sensors0.begin();
sensors1.begin();
sensors2.begin();
sensors3.begin();
sensors4.begin();
tx0 = 24;
tx1 = 24;
tx2 = 24;
tx3 = 24;
tx4 = 24;
}
void SerialFFF(void)
{
nexSerial.write(255);
nexSerial.write(255);
nexSerial.write(255);
}
void loop(void)
{
sensors0.requestTemperatures();
sensors1.requestTemperatures();
sensors2.requestTemperatures();
sensors3.requestTemperatures();
sensors4.requestTemperatures();
int teplota0 (sensors0.getTempCByIndex(0));
int teplota1 (sensors1.getTempCByIndex(0));
int teplota2 (sensors2.getTempCByIndex(0));
int teplota3 (sensors3.getTempCByIndex(0));
int teplota4 (sensors4.getTempCByIndex(0));
Serial.print(" Teplota 0: ");
Serial.print(teplota0);
Serial.print(" Teplota 1: ");
Serial.print(teplota1);
Serial.print(" Teplota 2: ");
Serial.print(teplota2);
Serial.print(" Teplota 3: ");
Serial.print(teplota3);
Serial.print(" Teplota 4: ");
Serial.println(teplota4);
nexSerial.print("n0.val=");
nexSerial.print(30);
SerialFFF();
//řízení teploty
val0 = (teplota0);
if(teplota0 == -127 ){ //teplota větší než nastavená
Serial.print(" OFF 0"); //zobrazení v seriovém monitoru
digitalWrite(Rele0, HIGH); //výstupní pin relé
digitalWrite(Rele1, HIGH);
}
else if(teplota0 >= tx0 ){ //teplota větší než nastavená
Serial.print(" OFF 0"); //zobrazení v seriovém monitoru
digitalWrite(Rele0, HIGH); //výstupní pin relé
//delay(5000); //prodleva
digitalWrite(Rele1, HIGH); //výstupní pin relé
}
else if(teplota0 <= tx0-1 ){ //teplota menší než nastavená
Serial.print(" ON 0"); //zobrazení v seriovém monitoru
digitalWrite(Rele0, LOW); //výstupní pin relé
//delay(5000); //prodleva
digitalWrite(Rele1, LOW); //výstupní pin relé
}
val1 = (teplota1);
if(teplota1 == -127 ){ //teplota větší než nastavená
Serial.print(" OFF 0"); //zobrazení v seriovém monitoru
digitalWrite(Rele2, HIGH); //výstupní pin relé
digitalWrite(Rele3, HIGH);
}
else if(teplota1 >= tx1 ){ //teplota větší než nastavená
Serial.print(" OFF 0"); //zobrazení v seriovém monitoru
digitalWrite(Rele2, HIGH); //výstupní pin relé
//delay(5000); //prodleva
digitalWrite(Rele3, HIGH); //výstupní pin relé
}
else if(teplota1 <= tx1-1 ){ //teplota menší než nastavená
Serial.print(" ON 0"); //zobrazení v seriovém monitoru
digitalWrite(Rele2, LOW); //výstupní pin relé
//delay(5000); //prodleva
digitalWrite(Rele3, LOW); //výstupní pin relé
}
val2 = (teplota2);
if(teplota2 == -127 ){ //teplota větší než nastavená
Serial.print(" OFF 0"); //zobrazení v seriovém monitoru
digitalWrite(Rele4, HIGH); //výstupní pin relé
digitalWrite(Rele5, HIGH);
}
else if(teplota2 >= tx2 ){ //teplota větší než nastavená
Serial.print(" OFF 0"); //zobrazení v seriovém monitoru
digitalWrite(Rele4, HIGH); //výstupní pin relé
//delay(5000); //prodleva
digitalWrite(Rele5, HIGH); //výstupní pin relé
}
else if(teplota2 <= tx2-1 ){ //teplota menší než nastavená
Serial.print(" ON 0"); //zobrazení v seriovém monitoru
digitalWrite(Rele4, LOW); //výstupní pin relé
//delay(5000); //prodleva
digitalWrite(Rele5, LOW); //výstupní pin relé
}
val3 = (teplota3);
if(teplota3 == -127 ){ //teplota větší než nastavená
Serial.print(" OFF 0"); //zobrazení v seriovém monitoru
digitalWrite(Rele6, HIGH); //výstupní pin relé
}
else if(teplota3 >= tx3 ){ //teplota větší než nastavená
Serial.print(" OFF 0"); //zobrazení v seriovém monitoru
digitalWrite(Rele6, HIGH); //výstupní pin relé
}
else if(teplota3 <= tx3-1 ){ //teplota menší než nastavená
Serial.print(" ON 0"); //zobrazení v seriovém monitoru
digitalWrite(Rele6, LOW); //výstupní pin relé
}
val4 = (teplota4);
if(teplota4 == -127 ){ //teplota větší než nastavená
Serial.print(" OFF 0"); //zobrazení v seriovém monitoru
digitalWrite(Rele7, HIGH); //výstupní pin relé
}
else if(teplota4 >= tx4 ){ //teplota větší než nastavená
Serial.println(" OFF 0"); //zobrazení v seriovém monitoru
digitalWrite(Rele7, HIGH); //výstupní pin relé
}
else if(teplota4 <= tx4-1 ){ //teplota menší než nastavená
Serial.println(" ON 0"); //zobrazení v seriovém monitoru
digitalWrite(Rele7, LOW); //výstupní pin relé
}
}