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);
}