Nie potrzebnie wprowadziłem w błąd bo się coś zmieniło
To jest prawidłowy kod
Kod:
#include <Wire.h>;
#include <BH1750.h>;
int TRIGGER = 12;
BH1750 lightMeter;
char buffer[100] = {0};
void setup(){
Serial.begin(9600);
Wire.begin();
lightMeter.begin();
pinMode (TRIGGER,OUTPUT);
}
void loop() {
float lux = lightMeter.readLightLevel();
delay(250);
if (lux < 50)
{
Serial.print("bt0.val=");
Serial.print("1");
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);
digitalWrite(TRIGGER, HIGH);
}
else {
Serial.print("bt0.val=");
Serial.print("0");
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);
digitalWrite(TRIGGER, LOW);
}
}
Ale i tak robisz dużo błędów
po pierwsze jak piszesz już kod to nie wysyłaj coś innego na port bo to zakłóca pracę a one nic nie wnoszą do nextion..
Po drugie drugi błąd w nextion i to poważny nie opieraj się na na dotyku bt0 bo nie wykona się ten kod jak dane przyjdą po rs
Kod:
if(bt0.val==1)
{
b0.val=1
b1.val=1
}else
{
b0.val=0
b1.val=0
}
A tym samym kierunkowskazy nie będą migać z awaryjnym to musisz oprzeć o timer
Mi działa ten kod i twój projekt nextion ale mruga tylko przycisk awaryjny
No i po trzecie temat dotyczył o kontrolkach...
Wiec by zmieniać kontrolki dajmy na to światła włacz/wyłaczone to masz dwa wyjścia albo zmiana obrazka
Serial.print("b5.pic=");
Serial.print("28");
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);
i wyłączenie
Serial.print("b5.pic=");
Serial.print("27");
Serial.write(0xff);
Serial.write(0xff);
Serial.write(0xff);
Ale to zakłuci ci pracę z dotykiem i proponował by zmianę z bution na dual-state-bution ewentualnie wszystko oprzeć o timer i zmienne val.