Komunikace Arduino-Nextion
Napsal: 18 říj 2019, 20:45
				
				Ahoj,
potřeboval bych prosím poradit proč mi jde vždy jen odeslat data do displeje.
Pokud chci ovládat vstupy v arduinu z displeje,tak mi to jde jen pokud vymažu(odkomentuju) tu část kodu
kde ovládám to odesílání dat z arduina.viz kod.
Omlouvám v tomto začínám,takže dělám někde nějakou blbost,ale nikde jsem na netu nenašel radu,která by mi pomohla....
Nebo snad obousměrná komunikace je problém????
Děkuji
			potřeboval bych prosím poradit proč mi jde vždy jen odeslat data do displeje.
Pokud chci ovládat vstupy v arduinu z displeje,tak mi to jde jen pokud vymažu(odkomentuju) tu část kodu
kde ovládám to odesílání dat z arduina.viz kod.
Omlouvám v tomto začínám,takže dělám někde nějakou blbost,ale nikde jsem na netu nenašel radu,která by mi pomohla....
Nebo snad obousměrná komunikace je problém????
Děkuji
Kód: Vybrat vše
// připojení potřebné knihovny
#include <SoftwareSerial.h>
// nastavení čísel propojovacích pinů
#define RX 7
#define TX 8
#define LEDka 13
int Pin_pohyb = 9;
 String zprava ="";
// vytvoření objektu swSerial z knihovny s nastavenými piny
SoftwareSerial swSerial(RX, TX);
// proměnná pro uložení času přepisu textu
unsigned long casPrepisu = 0;
void setup() {
  // zahájení komunikace po softwarové sériové lince
  swSerial.begin(9600);
   //swSerial.setTimeout(100);
  // nastavení LED diody jako výstupu
  // a zapsání základního stavu
  pinMode(LEDka, OUTPUT);
  digitalWrite(LEDka, LOW);
  pinMode(Pin_pohyb, INPUT);
   digitalWrite(Pin_pohyb, LOW);
   
    // nastaví objekty do základního stavu
   swSerial.print("A.b0.picc=39");SerialFFF();swSerial.print("A.b1.picc=39");SerialFFF();
   swSerial.print("A.b2.picc=39");SerialFFF();swSerial.print("A.b3.picc=39");SerialFFF();
   swSerial.print("A.bt0.val=0");SerialFFF();swSerial.print("A.bt1.val=0");SerialFFF();
   swSerial.print("A.bt2.val=0");SerialFFF();swSerial.print("A.bt3.val=0");SerialFFF();
}
void loop() {
// kontrola příchozí zprávy
  if (swSerial.available()) {
    // vytvoření proměnné pro uložení zprávy
   String zprava;
    // načtení všech znaků zprávy s převodem
    // (char) na znaky
    while (swSerial.available()) {
      zprava += swSerial.readString();
        }
    // pokud najdeme ve zprávě znak b,
    // LED diodu zapneme
    if (zprava.substring(1) == "b") {
      digitalWrite(LEDka, HIGH);
       }
    // pokud najdeme ve zprávě znak a,
    // LED diodu vypneme
    else if (zprava.substring(1) == "a") {
      digitalWrite(LEDka, LOW);
        }
  }
  
  
if(digitalRead(Pin_pohyb) == HIGH){
     digitalWrite(LEDka, HIGH);
     swSerial.print("A.b0.picc=96");        // do b0 nahraje obrazek 
     SerialFFF();
     swSerial.print("A.n1.val=");
     swSerial.print(digitalRead(Pin_pohyb)); 
     SerialFFF();
    }else if(digitalRead(Pin_pohyb) == LOW)
     {
      digitalWrite(LEDka, LOW);
     swSerial.print("A.b0.picc=39");        // do b0 nahraje obrazek 
     SerialFFF();
     swSerial.print("A.n1.val=");
     swSerial.print(digitalRead(Pin_pohyb)); 
     SerialFFF();
      }
}
void SerialFFF(void)
  {
    swSerial.write(0xFF);
    swSerial.write(0xFF);
    swSerial.write(0xFF);
    delay(100);
  }
 .
 . 
  
