#include #include #include #define rxPin 2 #define txPin 3 int ledPin = 13; // LED connected to digital pin 13 int me = 0; //unique identifier set in the setup function based on the status of pins 5 and 6 int reading = 0; int data[50]; char buffer[20]; int bufptr = 0; int datptr = 0; SoftwareSerial mySerial = SoftwareSerial(rxPin, txPin); void setup() { beginSerial(9600); // Sets the baud rate to 9600 pinMode(4, INPUT); pinMode(5, INPUT); pinMode(rxPin, INPUT); pinMode(txPin, OUTPUT); pinMode(6, OUTPUT);pinMode(7, OUTPUT);pinMode(8, OUTPUT);pinMode(9, OUTPUT); pinMode(10, OUTPUT);pinMode(11, OUTPUT);pinMode(12, OUTPUT);pinMode(13, OUTPUT); //pinMode(ledPin, OUTPUT); // sets the digital pin as output mySerial.begin(9600); int p0 = digitalRead(4); int p1 = digitalRead(5); if (!p0 && !p1) {me = 1;};if (p0 && !p1) {me = 2;};if (!p0 && p1) {me = 3;};if (p0 && p1) {me = 4;}; } void loop() { int val; setlights(1); char in; while (1) { if(Serial.available()) { in = Serial.read();}; delay(10); mySerial.print(in); if (in == 88) { break; } } setlights(2); delay(2000); bufptr = 0; setlights(3); while(1) { //if(Serial.available()) { in = Serial.read();}; in = Serial.read(); delay(10); if (in == 92) { break; } if (in < 47 || in > 58) { continue;}; //delay(10); setlights(bufptr); if (bufptr > 8) { setlights(8);}; buffer[bufptr] = in; bufptr++; if (bufptr >= 15) { buffer[bufptr+1]=0; break; } } /* if ((in == (49 + me)) || (in == 48)) { // receive for me setlights(8); while (1) { in = Serial.read(); if (in == 35) {// # break; } } } else { // pass along until an end character setlights(4); while (1) { in = Serial.read(); delay(10); mySerial.print(in); if (in == 35) {// # break; } } } */ /* if (!reading){ setlights(8); } if (reading) { setlights(me); buffer[bufptr] = in; bufptr++; } if (in == (49 + me)) { // 1 reading = 1; bufptr = 0; datptr = 0; } if (in == 48) { // 0 reading = 1; bufptr = 0; datptr = 0; } if (in == 35) { // # reading = 0; } if (reading && (in == 10)) { // newline buffer[bufptr] = 0; bufptr = 0; sscanf(buffer, "%d", &val); data[datptr] = val; datptr++; setlight( val); } */ /* int passon = 0; //if (in == 65) { digitalWrite(ledPin, HIGH);}; //if (in == 66) { digitalWrite(ledPin, LOW);}; if (in == 48) { setlights(0);passon=1;}; if (in == 49) { setlights(1);passon=1;}; if (in == 50) { setlights(2);passon=1;}; if (in == 51) { setlights(3);passon=1;}; if (in == 52) { setlights(4);passon=1;}; if (in == 53) { setlights(5);passon=1;}; if (in == 54) { setlights(6);passon=1;}; if (in == 55) { setlights(7);passon=1;}; if (in == 56) { setlights(8);passon=1;}; if (in == 57) { setlights(9);passon=1;}; if (in == 45) { setlights(me);passon=1;}; */ //Pass whatever is received on to the next part of the chain //delay(20); //mySerial.print(in); // uncomment this one //Serial.print(in); //Serial.print("\r\n"); } // mySerial.print("INIT\r\n"); // char someChar = mySerial.read(); void setlight( int x) { int a; for (int i = 0; i < 8; i++) { if (x && 1) { digitalWrite(13-i, HIGH); } x = x >> 1; } } void setlights( int x) { if (x == 0) { digitalWrite(13, LOW);digitalWrite(12, LOW);digitalWrite(11, LOW);digitalWrite(10, LOW); digitalWrite(9, LOW);digitalWrite(8, LOW);digitalWrite(7, LOW);digitalWrite(6, LOW); } if (x == 1) { digitalWrite(13, HIGH);digitalWrite(12, LOW);digitalWrite(11, LOW);digitalWrite(10, LOW); digitalWrite(9, LOW);digitalWrite(8, LOW);digitalWrite(7, LOW);digitalWrite(6, LOW); } if (x == 2) { digitalWrite(13, HIGH);digitalWrite(12, HIGH);digitalWrite(11, LOW);digitalWrite(10, LOW); digitalWrite(9, LOW);digitalWrite(8, LOW);digitalWrite(7, LOW);digitalWrite(6, LOW); } if (x == 3) { digitalWrite(13, HIGH);digitalWrite(12, HIGH);digitalWrite(11, HIGH);digitalWrite(10, LOW); digitalWrite(9, LOW);digitalWrite(8, LOW);digitalWrite(7, LOW);digitalWrite(6, LOW); } if (x == 4) { digitalWrite(13, HIGH);digitalWrite(12, HIGH);digitalWrite(11, HIGH);digitalWrite(10, HIGH); digitalWrite(9, LOW);digitalWrite(8, LOW);digitalWrite(7, LOW);digitalWrite(6, LOW); } if (x == 5) { digitalWrite(13, HIGH);digitalWrite(12, HIGH);digitalWrite(11, HIGH);digitalWrite(10, HIGH); digitalWrite(9, HIGH);digitalWrite(8, LOW);digitalWrite(7, LOW);digitalWrite(6, LOW); } if (x == 6) { digitalWrite(13, HIGH);digitalWrite(12, HIGH);digitalWrite(11, HIGH);digitalWrite(10, HIGH); digitalWrite(9, HIGH);digitalWrite(8, HIGH);digitalWrite(7, LOW);digitalWrite(6, LOW); } if (x == 7) { digitalWrite(13, HIGH);digitalWrite(12, HIGH);digitalWrite(11, HIGH);digitalWrite(10, HIGH); digitalWrite(9, HIGH);digitalWrite(8, HIGH);digitalWrite(7, HIGH);digitalWrite(6, LOW); } if (x == 8) { digitalWrite(13, HIGH);digitalWrite(12, HIGH);digitalWrite(11, HIGH);digitalWrite(10, HIGH); digitalWrite(9, HIGH);digitalWrite(8, HIGH);digitalWrite(7, HIGH);digitalWrite(6, HIGH); } }