Sei sulla pagina 1di 3

//Programa : Arduino com m�dulo Rel� 8 canais controlado por teclado de membrana 4

x 4
//Autor : PROFESSOR MARIO PAULO - F�SICA
int rele1 = 31;
int rele2 = 33;
int rele3 = 35;
int rele4 = 37;
int rele5 = 39;
int rele6 = 41;
int rele7 = 43;
int rele8 = 45;
void setup()
{
//Pinos ligados aos pinos 1, 2, 3 e 4 do teclado - Linhas
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);

//Pinos ligados aos pinos 5, 6, 7 e 8 do teclado - Colunas


pinMode(8, INPUT);
pinMode(9, INPUT);
pinMode(10, INPUT);
pinMode(11, INPUT);

//Define pinos para o rele como saida


pinMode(rele1, OUTPUT);
pinMode(rele2, OUTPUT);
pinMode(rele3, OUTPUT);
pinMode(rele4, OUTPUT);
pinMode(rele5, OUTPUT);
pinMode(rele6, OUTPUT);
pinMode(rele7, OUTPUT);
pinMode(rele8, OUTPUT);

//Desliga todos os reles no inicio


digitalWrite(rele1, HIGH);
digitalWrite(rele2, HIGH);
digitalWrite(rele3, HIGH);
digitalWrite(rele4, HIGH);
digitalWrite(rele5, HIGH);
digitalWrite(rele6, HIGH);
digitalWrite(rele7, HIGH);
digitalWrite(rele8, HIGH);

Serial.begin(9600);
Serial.println("Aguardando acionamento das teclas...");
Serial.println();
}

void loop()
{

for (int ti = 3; ti<7; ti++)


{
//Alterna o estado dos pinos das linhas
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(ti, HIGH);
//Verifica se alguma tecla da coluna 1 foi pressionada
if (digitalRead(8) == HIGH)
{
imprime_linha_coluna(ti-2, 1);
while(digitalRead(8) == HIGH){}
}

//Verifica se alguma tecla da coluna 2 foi pressionada


if (digitalRead(9) == HIGH)
{
imprime_linha_coluna(ti-2, 2);
while(digitalRead(9) == HIGH){};
}

//Verifica se alguma tecla da coluna 3 foi pressionada


if (digitalRead(10) == HIGH)
{
imprime_linha_coluna(ti-2, 3);
while(digitalRead(10) == HIGH){}
}

//Verifica se alguma tecla da coluna 4 foi pressionada


if (digitalRead(11) == HIGH)
{
imprime_linha_coluna(ti-2, 4);
while(digitalRead(11) == HIGH){}
}
}
delay(10);
}

void imprime_linha_coluna(int x, int y)


{
if (x==1)
{
if (y==1){Serial.print("RELE 1 LIGADO ");Serial.println();digitalWrite(rele1,
LOW);}
if (y==2){Serial.print("RELE 2 LIGADO ");Serial.println();digitalWrite(rele2,
LOW);}
if (y==3){Serial.print("RELE 3 LIGADO ");Serial.println();digitalWrite(rele3,
LOW);}
if (y==4){Serial.print("RELE 4 LIGADO ");Serial.println();digitalWrite(rele4,
LOW);}
}
if (x==2)
{
if (y==1){Serial.print("RELE 5 LIGADO ");Serial.println();digitalWrite(rele5,
LOW);}
if (y==2){Serial.print("RELE 6 LIGADO ");Serial.println();digitalWrite(rele6,
LOW);}
if (y==3){Serial.print("RELE 7 LIGADO ");Serial.println();digitalWrite(rele7,
LOW);}
if (y==4){Serial.print("RELE 8 LIGADO ");Serial.println();digitalWrite(rele8,
LOW);}
}
if (x==3)
{
if (y==1){Serial.print("RELE 1 DESLIGADO
");Serial.println();digitalWrite(rele1, HIGH);}
if (y==2){Serial.print("RELE 2 DESLIGADO
");Serial.println();digitalWrite(rele2, HIGH);}
if (y==3){Serial.print("RELE 3 DESLIGADO
");Serial.println();digitalWrite(rele3, HIGH);}
if (y==4){Serial.print("RELE 4 DESLIGADO
");Serial.println();digitalWrite(rele4, HIGH);}
}
if (x==4)
{
if (y==1){Serial.print("RELE 5 DESLIGADO
");Serial.println();digitalWrite(rele5, HIGH);}
if (y==2){Serial.print("RELE 6 DESLIGADO
");Serial.println();digitalWrite(rele6, HIGH);}
if (y==3){Serial.print("RELE 7 DESLIGADO
");Serial.println();digitalWrite(rele7, HIGH);}
if (y==4){Serial.print("RELE 8 DESLIGADO
");Serial.println();digitalWrite(rele8, HIGH);}
}

}
void da_um_tempo()
{
delay(10);
Serial.println();
}

Potrebbero piacerti anche