Here is my code:
//Reciever
#include <Wire.h>
int num;
void setup()
{
Wire.begin(); // join i2c bus (address optional for master)
Serial.begin(9600); // start serial for output
pinMode(A0, OUTPUT);
pinMode(A1, OUTPUT);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(A2, OUTPUT);
digitalWrite(A0, LOW);
digitalWrite(A1, LOW);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(A2, LOW);
}
void loop()
/*{
Wire.requestFrom(2, 1); // request _ bytes from slave device #2
while(Wire.available()) // slave may send less than requested
{
char c = Wire.read(); // receive a byte as character
Serial.print(c); // print the character
num = c;
}
if(num == '5'){
digitalWrite(9, HIGH);
digitalWrite(8, HIGH);
digitalWrite(10, HIGH);
digitalWrite(A2, HIGH);
digitalWrite(11, HIGH);
delay(1000);
}
*/
{
Wire.requestFrom(2, 2); // request _ bytes from slave device #2
while(Wire.available()) // slave may send less than requested
{
char c = Wire.read(); // receive a byte as character
// Serial.print(c); // print the character
num = c;
Serial.print(num);
}
if(num == '10'){
// Serial.print(num);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(9, HIGH);
digitalWrite(7, HIGH);
digitalWrite(A3, HIGH);
digitalWrite(11, HIGH);
digitalWrite(12, HIGH);
digitalWrite(8, HIGH);
}
/*
if(num == '44'){
digitalWrite(3, LOW);
}
*/
delay(500);
}
When I serial print the variable "num", I get 4948. The number that I am actually trying to send is 10. When I serial print c, I get 10. What should I do to make the variable num be equal to char c?