// *****************************************************************
/*
eingabe im seriellen terminal:
stop: slave geht in standby
run: slave prozessiert master1/2 input
*/
// *****************************************************************
//int LINKS = A0; // vibrator Grove an analog pin A0
int LINKS = 2; // vibrator Grove an digital pin 2
int RECHTS= 4; // vibrator Grove an digital pin 4
int cycle = 2; // zyklen, dann stop
bool RUN = HIGH;
int dly =50;
int master_1 = 6; // DAtenleitung LINKS vom MASTER zu SLAVE
int master_2 = 7; // DAtenleitung RECHTS vom MASTER zu SLAVE
bool m_li; // flag links
bool m_re; // flag rechts
bool flg_stdby = true; // flag standby
void setup() {
pinMode(LINKS, OUTPUT);
pinMode(RECHTS, OUTPUT);
pinMode(master_1, INPUT);
pinMode(master_2, INPUT);
Serial.begin(9600);
Serial.print("SLAVE");
}
// *****************************************************************
String input()
{
String s="";
while (Serial.available() > 0) {
// read incoming serial data:
char inChar = Serial.read();
s=s+inChar;
delay(10);
} int len= s.length();
s=s.substring(0,len-1);
return s;
}
// *****************************************************************
void loop() {
String s = input();Serial.println(s);
// if (s!="") {delay(5000);}
if (s == "stop") {flg_stdby = true;}
if (s == "run") {flg_stdby = false;}
if (flg_stdby)
{
digitalWrite(LINKS, LOW);
digitalWrite(RECHTS, LOW);
} else {
m_li = digitalRead(master_1);
m_re = digitalRead(master_2);
Serial.println("MASTER:"+String(m_li)+"-"+String(m_re));
//RUN = (master_1 || master_2);
RUN = LOW;
if(master_1 == 1) { RUN = HIGH;}
if(master_2 == 1) { RUN = HIGH;}
RUN = (m_li || m_re);
Serial.println("RUN="+String(RUN));
if (RUN == HIGH) {
Serial.println("RUN");
if (m_li == HIGH) {
digitalWrite(LINKS, HIGH);
digitalWrite(RECHTS, LOW);
Serial.println("LINKS");
}
if (m_re == HIGH) {
digitalWrite(LINKS, LOW);
digitalWrite(RECHTS, HIGH);
Serial.println("RECHTS");
}
} else {
RUN = LOW;
digitalWrite(LINKS,LOW);
digitalWrite(RECHTS,LOW);
Serial.println("STDBY");
}
}
}
/*
digitalWrite(LINKS, HIGH);
digitalWrite(RECHTS, LOW);
delay(1000);
digitalWrite(LINKS, LOW);
digitalWrite(RECHTS, HIGH);
delay(1000);
*/