Hello forum,
I'm trying to finish a simple proyect but my trouble is that i cant interpret the message of the coordinator to the router (with 2 Xbee Pro S2), the problem is that router dont read decimal (read in ASCII) and i dont know how to fix it, i just wanna "mirror" the comunicator inputs to the router, so check out to my code:
Coodinator
#include <SoftwareSerial.h>
SoftwareSerial nss(2,3);
int in1;
int in2;
int in3;
int in4;
int c;
int i,j,k,l;
void setup() {
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(4, INPUT);
pinMode(5, INPUT);
pinMode(6, INPUT);
pinMode(11, INPUT);
lectura();
Serial.begin(9600);
nss.begin(9600);
}
void loop() {
c=lectura();
nss.write(c);
}
int lectura(){
in1 = digitalRead(4);
in2 = digitalRead(5)*10;
in3 = digitalRead(6)*100;
in4 = digitalRead(11)*1000;
c=in1+in2+in3+in4;
return(c);
}
________________________________________________________________________________________________________________________________________
Router :
#include <SoftwareSerial.h>
SoftwareSerial nss(2,3);
void setup() {
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(4, INPUT);
pinMode(5, INPUT);
pinMode(6, INPUT);
pinMode(11, INPUT);
Serial.begin(9600);
nss.begin(9600);
nss.println("starting up...");
delay(500); //give xbee time
}
void loop() {
while (nss.available()) {
int c=nss.read() - '0';
switch(c){
case 0000:
digitalWrite(7,HIGH);digitalWrite(8,HIGH);digitalWrite(9,HIGH);digitalWrite(10,HIGH);
break;
case 0100:
digitalWrite(7,HIGH);digitalWrite(8,LOW);digitalWrite(9,HIGH);digitalWrite(10,HIGH);
break;
case 0010:
digitalWrite(7,HIGH);digitalWrite(8,HIGH);digitalWrite(9,LOW);digitalWrite(10,LOW);
break;
case 0110:
digitalWrite(7,HIGH);digitalWrite(8,LOW);digitalWrite(9,LOW);digitalWrite(10,LOW);
break;
case 0001:
digitalWrite(7,HIGH);digitalWrite(8,HIGH);digitalWrite(9,HIGH);digitalWrite(10,LOW);
break;
case 0101:
digitalWrite(7,HIGH);digitalWrite(8,LOW);digitalWrite(9,HIGH);digitalWrite(10,LOW);
break;
case 0011:
digitalWrite(7,HIGH);digitalWrite(8,HIGH);digitalWrite(9,LOW);digitalWrite(10,LOW);
break;
case 0111:
digitalWrite(7,HIGH);digitalWrite(8,LOW);digitalWrite(9,LOW);digitalWrite(10,LOW);
break;
case 1000:
digitalWrite(7,LOW);digitalWrite(8,HIGH);digitalWrite(9,HIGH);digitalWrite(10,HIGH);
break;
case 1100:
digitalWrite(7,LOW);digitalWrite(8,LOW);digitalWrite(9,HIGH);digitalWrite(10,HIGH);
break;
case 1010:
digitalWrite(7,LOW);digitalWrite(8,HIGH);digitalWrite(9,LOW);digitalWrite(10,HIGH);
break;
case 1110:
digitalWrite(7,LOW);digitalWrite(8,LOW);digitalWrite(9,LOW);digitalWrite(10,HIGH);
break;
case 1001:
digitalWrite(7,LOW);digitalWrite(8,HIGH);digitalWrite(9,HIGH);digitalWrite(10,LOW);
break;
case 1101:
digitalWrite(7,LOW);digitalWrite(8,LOW);digitalWrite(9,HIGH);digitalWrite(10,LOW);
break;
case 1011:
digitalWrite(7,LOW);digitalWrite(8,HIGH);digitalWrite(9,LOW);digitalWrite(10,LOW);
break;
case 1111:
digitalWrite(7,LOW);digitalWrite(8,LOW);digitalWrite(9,LOW);digitalWrite(10,LOW);
break;
}
}