Hi all.
i am trying to connect two arduinos using serial wired communication.
Arduino1 will be interfaced with a 4 x 3 keypad and Arduino2 will be interfaced with a seven segment display.
the key pressed on keypad must be displayed on seven segment display.
but i am unable to work it out please see what's wrong.
code for arduino1
//connected the pin of keypad as follows
int row_1=6;
int row_2=7;
int row_3=8;
int row_4=9;
int col_1=10;
int col_2=11;
int col_3=12;
void setup()
{
Serial.begin(9600);
// set row as a output and coloum as a input
pinMode(row_1,OUTPUT);
pinMode(row_2,OUTPUT);
pinMode(row_3,OUTPUT);
pinMode(row_4,OUTPUT);
pinMode(col_1,INPUT);
pinMode(col_2,INPUT);
pinMode(col_3,INPUT);
}
void loop()
{
int val;
//setting the columns as high initially
digitalWrite(col_1,HIGH);
digitalWrite(col_2,HIGH);
digitalWrite(col_3,HIGH);
//checking everycondition one by one
digitalWrite(row_1,LOW);
digitalWrite(row_2,HIGH);
digitalWrite(row_3,HIGH);
digitalWrite(row_4,HIGH);
//checking each column for row1
if(digitalRead(col_1)==0)
{
Serial.print(1);
}
else if(digitalRead(col_2)==0)
{
Serial.print(2);
}
else if(digitalRead(col_3)==0)
{
Serial.print(3);
}
//case 2:
digitalWrite(row_1,HIGH);
digitalWrite(row_2,LOW);
digitalWrite(row_3,HIGH);
digitalWrite(row_4,HIGH);
//checking each column for row2
if(digitalRead(col_1)==0)
{
Serial.print(4);
}
else if(digitalRead(col_2)==0)
{
Serial.print(5);
}
else if(digitalRead(col_3)==0)
{
Serial.print(6);
}
//case 3:
digitalWrite(row_1,HIGH);
digitalWrite(row_2,HIGH);
digitalWrite(row_3,LOW);
digitalWrite(row_4,HIGH);
//checking each column for row3
if(digitalRead(col_1)==0)
{
Serial.print(7);
}
else if(digitalRead(col_2)==0)
{
Serial.print(8);
}
else if(digitalRead(col_3)==0)
{
Serial.print(9);
}
//case 4:
digitalWrite(row_1,HIGH);
digitalWrite(row_2,HIGH);
digitalWrite(row_3,HIGH);
digitalWrite(row_4,LOW);
//checking each column for row4
if(digitalRead(col_1)==0)
{
Serial.print(10);
}
else if(digitalRead(col_2)==0)
{
Serial.print(0);
}
else if(digitalRead(col_3)==0)
{
Serial.print(11);
}
delay(100);
}
code for arduino 2
int a=2;
int b=3;
int c=4;
int d=5;
int e=6;
int f=7;
int g=8;
int h=9;
void setup()
{
pinMode(a, OUTPUT);
pinMode(b, OUTPUT);
pinMode(c, OUTPUT);
pinMode(d, OUTPUT);
pinMode(e, OUTPUT);
pinMode(f, OUTPUT);
pinMode(g, OUTPUT);
pinMode(h, OUTPUT);
digitalWrite(h, 0); // start with the "dot" off
}
void loop()
{
if(Serial.available())
{
int letter = Serial.read();
if(letter==9)
{
digitalWrite(a, 1);
digitalWrite(b, 1);
digitalWrite(c, 1);
digitalWrite(d, 0);
digitalWrite(e, 0);
digitalWrite(f, 1);
digitalWrite(g, 1);
}
else if(letter==8)
{
// write '8'
digitalWrite(a, 1);
digitalWrite(b, 1);
digitalWrite(c, 1);
digitalWrite(d, 1);
digitalWrite(e, 1);
digitalWrite(f, 1);
digitalWrite(g, 1);
}
else if(letter == 7)
{
// write '7'
digitalWrite(a, 1);
digitalWrite(b, 1);
digitalWrite(c, 1);
digitalWrite(d, 0);
digitalWrite(e, 0);
digitalWrite(f, 0);
digitalWrite(g, 0);
}
else if(letter == 6)
{
// write '6'
digitalWrite(a, 1);
digitalWrite(b, 0);
digitalWrite(c, 1);
digitalWrite(d, 1);
digitalWrite(e, 1);
digitalWrite(f, 1);
digitalWrite(g, 1);
} else if(letter == 5)
{ // write '5'
digitalWrite(a, 1);
digitalWrite(b, 0);
digitalWrite(c, 1);
digitalWrite(d, 1);
digitalWrite(e, 0);
digitalWrite(f, 1);
digitalWrite(g, 1);
}else if(letter == 4)
{ // write '4'
digitalWrite(a, 0);
digitalWrite(b, 1);
digitalWrite(c, 1);
digitalWrite(d, 0);
digitalWrite(e, 0);
digitalWrite(f, 1);
digitalWrite(g, 1);
}else if(letter == 3)
{ // write '3'
digitalWrite(a, 1);
digitalWrite(b, 1);
digitalWrite(c, 1);
digitalWrite(d, 1);
digitalWrite(e, 0);
digitalWrite(f, 0);
digitalWrite(g, 1);
}else if(letter == 2)
{ // write '2'
digitalWrite(a, 1);
digitalWrite(b, 1);
digitalWrite(c, 0);
digitalWrite(d, 1);
digitalWrite(e, 1);
digitalWrite(f, 0);
digitalWrite(g, 1);
}else if(letter == 1)
{ // write '1'
digitalWrite(a, 0);
digitalWrite(b, 1);
digitalWrite(c, 1);
digitalWrite(d, 0);
digitalWrite(e, 0);
digitalWrite(f, 0);
digitalWrite(g, 0);
}else if(letter == 0)
{ // write '0'
digitalWrite(a, 1);
digitalWrite(b, 1);
digitalWrite(c, 1);
digitalWrite(d, 1);
digitalWrite(e, 1);
digitalWrite(f, 1);
digitalWrite(g, 0);
}
}
}
attached is the proteus simulation diagram
i am trying to connect two arduinos using serial wired communication.
Arduino1 will be interfaced with a 4 x 3 keypad and Arduino2 will be interfaced with a seven segment display.
the key pressed on keypad must be displayed on seven segment display.
but i am unable to work it out please see what's wrong.
code for arduino1
//connected the pin of keypad as follows
int row_1=6;
int row_2=7;
int row_3=8;
int row_4=9;
int col_1=10;
int col_2=11;
int col_3=12;
void setup()
{
Serial.begin(9600);
// set row as a output and coloum as a input
pinMode(row_1,OUTPUT);
pinMode(row_2,OUTPUT);
pinMode(row_3,OUTPUT);
pinMode(row_4,OUTPUT);
pinMode(col_1,INPUT);
pinMode(col_2,INPUT);
pinMode(col_3,INPUT);
}
void loop()
{
int val;
//setting the columns as high initially
digitalWrite(col_1,HIGH);
digitalWrite(col_2,HIGH);
digitalWrite(col_3,HIGH);
//checking everycondition one by one
digitalWrite(row_1,LOW);
digitalWrite(row_2,HIGH);
digitalWrite(row_3,HIGH);
digitalWrite(row_4,HIGH);
//checking each column for row1
if(digitalRead(col_1)==0)
{
Serial.print(1);
}
else if(digitalRead(col_2)==0)
{
Serial.print(2);
}
else if(digitalRead(col_3)==0)
{
Serial.print(3);
}
//case 2:
digitalWrite(row_1,HIGH);
digitalWrite(row_2,LOW);
digitalWrite(row_3,HIGH);
digitalWrite(row_4,HIGH);
//checking each column for row2
if(digitalRead(col_1)==0)
{
Serial.print(4);
}
else if(digitalRead(col_2)==0)
{
Serial.print(5);
}
else if(digitalRead(col_3)==0)
{
Serial.print(6);
}
//case 3:
digitalWrite(row_1,HIGH);
digitalWrite(row_2,HIGH);
digitalWrite(row_3,LOW);
digitalWrite(row_4,HIGH);
//checking each column for row3
if(digitalRead(col_1)==0)
{
Serial.print(7);
}
else if(digitalRead(col_2)==0)
{
Serial.print(8);
}
else if(digitalRead(col_3)==0)
{
Serial.print(9);
}
//case 4:
digitalWrite(row_1,HIGH);
digitalWrite(row_2,HIGH);
digitalWrite(row_3,HIGH);
digitalWrite(row_4,LOW);
//checking each column for row4
if(digitalRead(col_1)==0)
{
Serial.print(10);
}
else if(digitalRead(col_2)==0)
{
Serial.print(0);
}
else if(digitalRead(col_3)==0)
{
Serial.print(11);
}
delay(100);
}
code for arduino 2
int a=2;
int b=3;
int c=4;
int d=5;
int e=6;
int f=7;
int g=8;
int h=9;
void setup()
{
pinMode(a, OUTPUT);
pinMode(b, OUTPUT);
pinMode(c, OUTPUT);
pinMode(d, OUTPUT);
pinMode(e, OUTPUT);
pinMode(f, OUTPUT);
pinMode(g, OUTPUT);
pinMode(h, OUTPUT);
digitalWrite(h, 0); // start with the "dot" off
}
void loop()
{
if(Serial.available())
{
int letter = Serial.read();
if(letter==9)
{
digitalWrite(a, 1);
digitalWrite(b, 1);
digitalWrite(c, 1);
digitalWrite(d, 0);
digitalWrite(e, 0);
digitalWrite(f, 1);
digitalWrite(g, 1);
}
else if(letter==8)
{
// write '8'
digitalWrite(a, 1);
digitalWrite(b, 1);
digitalWrite(c, 1);
digitalWrite(d, 1);
digitalWrite(e, 1);
digitalWrite(f, 1);
digitalWrite(g, 1);
}
else if(letter == 7)
{
// write '7'
digitalWrite(a, 1);
digitalWrite(b, 1);
digitalWrite(c, 1);
digitalWrite(d, 0);
digitalWrite(e, 0);
digitalWrite(f, 0);
digitalWrite(g, 0);
}
else if(letter == 6)
{
// write '6'
digitalWrite(a, 1);
digitalWrite(b, 0);
digitalWrite(c, 1);
digitalWrite(d, 1);
digitalWrite(e, 1);
digitalWrite(f, 1);
digitalWrite(g, 1);
} else if(letter == 5)
{ // write '5'
digitalWrite(a, 1);
digitalWrite(b, 0);
digitalWrite(c, 1);
digitalWrite(d, 1);
digitalWrite(e, 0);
digitalWrite(f, 1);
digitalWrite(g, 1);
}else if(letter == 4)
{ // write '4'
digitalWrite(a, 0);
digitalWrite(b, 1);
digitalWrite(c, 1);
digitalWrite(d, 0);
digitalWrite(e, 0);
digitalWrite(f, 1);
digitalWrite(g, 1);
}else if(letter == 3)
{ // write '3'
digitalWrite(a, 1);
digitalWrite(b, 1);
digitalWrite(c, 1);
digitalWrite(d, 1);
digitalWrite(e, 0);
digitalWrite(f, 0);
digitalWrite(g, 1);
}else if(letter == 2)
{ // write '2'
digitalWrite(a, 1);
digitalWrite(b, 1);
digitalWrite(c, 0);
digitalWrite(d, 1);
digitalWrite(e, 1);
digitalWrite(f, 0);
digitalWrite(g, 1);
}else if(letter == 1)
{ // write '1'
digitalWrite(a, 0);
digitalWrite(b, 1);
digitalWrite(c, 1);
digitalWrite(d, 0);
digitalWrite(e, 0);
digitalWrite(f, 0);
digitalWrite(g, 0);
}else if(letter == 0)
{ // write '0'
digitalWrite(a, 1);
digitalWrite(b, 1);
digitalWrite(c, 1);
digitalWrite(d, 1);
digitalWrite(e, 1);
digitalWrite(f, 1);
digitalWrite(g, 0);
}
}
}
attached is the proteus simulation diagram
Attachments
-
105.9 KB Views: 1