segunda-feira, 15 de fevereiro de 2021

Aula 11 - Programação Arduino com "Shield Módulo Relé 5V de 4 Canais"

 O Shield Módulo Relé 5V de 4 Canais permite que a partir do Arduino seja possível controlar cargas AC (alternada) de forma simples e prática. Por ter 4 canais, é possível controlar até quatro cargas AC de até 3A e de forma independente. Comumente é utilizado para controle de lâmpadas, ventiladores e outras saídas que possam ser acionadas através de relé.

Para projetos de automação residencial o Shield Módulo Relé 5V de 4 Canais é um componente importante, pois a placa em conjunto com o Arduino conectado à internet, possibilita que lâmpadas sejam acionadas através de uma página web, smartphone ou tablet, por exemplo.
Por ser um shield, mesmo acoplado na parte de cima do Arduino, você ainda poderá utilizar as portas digitais e analógicas da placa. Especificações e características:
  • Tensão de operação: 5VDC
  • Corrente de operação: 15 ~ 20mA (por canal)
  • Capacidade do relé: 24VDC/3A e 120VAC/3A
  • Corrente máxima por canal: 3A
  • 4 canais independentes
  • Tempo de resposta: 5 ~ 10ms
Esquema de ligação da prática
Projetos com Arduino ou outras plataformas microcontroladas em que seja necessário fazer o controle de cargas AC. Caso o shield seja utilizado junto ao Arduino conectado à internet, torna-se possível controlar cargas AC através de uma página web, smartphone ou tablet.
Utilizar o Shield Módulo Relé 5V de 4 Canais em conjunto com o Arduino para controlar quatro lâmpadas através do envio de comandos a partir do monitor serial do ambiente de programação do Arduino.

 Código
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
const int pinoReleCh1 = 7; //PINO DIGITAL UTILIZADO PELO SHIELD RELÉ (CANAL 1)
const int pinoReleCh2 = 6; //PINO DIGITAL UTILIZADO PELO SHIELD RELÉ (CANAL 2)
const int pinoReleCh3 = 5; //PINO DIGITAL UTILIZADO PELO SHIELD RELÉ (CANAL 3)
const int pinoReleCh4 = 4; //PINO DIGITAL UTILIZADO PELO SHIELD RELÉ (CANAL 4)
 
int statusLampCh1 = 0; //VARIÁVEL QUE CONTROLA O ESTADO DO SHIELD RELÉ NO CANAL 1 (LIGADO / DESLIGADO)
int statusLampCh2 = 0; //VARIÁVEL QUE CONTROLA O ESTADO DO SHIELD RELÉ NO CANAL 2 (LIGADO / DESLIGADO)
int statusLampCh3 = 0; //VARIÁVEL QUE CONTROLA O ESTADO DO SHIELD RELÉ NO CANAL 3 (LIGADO / DESLIGADO)
int statusLampCh4 = 0; //VARIÁVEL QUE CONTROLA O ESTADO DO SHIELD RELÉ NO CANAL 4 (LIGADO / DESLIGADO)
 
void setup(){
  Serial.begin(9600); //INICIALIZA A SERIAL
  pinMode(pinoReleCh1, OUTPUT); //DEFINE O PINO COMO SAÍDA
  pinMode(pinoReleCh2, OUTPUT); //DEFINE O PINO COMO SAÍDA
  pinMode(pinoReleCh3, OUTPUT); //DEFINE O PINO COMO SAÍDA
  pinMode(pinoReleCh4, OUTPUT); //DEFINE O PINO COMO SAÍDA
  
  digitalWrite(pinoReleCh1, LOW); //SHIELD RELÉ INICIA DESLIGADO (CANAL 1)
  digitalWrite(pinoReleCh2, LOW); //SHIELD RELÉ INICIA DESLIGADO (CANAL 2)
  digitalWrite(pinoReleCh3, LOW); //SHIELD RELÉ INICIA DESLIGADO (CANAL 3)
  digitalWrite(pinoReleCh4, LOW); //SHIELD RELÉ INICIA DESLIGADO (CANAL 4)
}    
void loop(){
 
char c = Serial.read(); //VARIÁVEL RESPONSÁVEL POR RECEBER O CARACTERE DIGITADO NA JANELA SERIAL
 
if((c == 'a') && (statusLampCh1 == 0)){ //SE A LEITURA DO PINO FOR IGUAL A LOW E
    //VARIÁVEL statusLampCh1 FOR IGUAL A 0, FAZ
        digitalWrite(pinoReleCh1, HIGH); //LIGA O CANAL 1 DO SHIELD RELÉ (LÂMPADA ACENDE)
        Serial.println("Lampada 01 ligada");
        statusLampCh1 = 1; //VARIÁVEL RECEBE O VALOR 1
}else{//SENÃO, FAZ
      if((c == 'a') && (statusLampCh1 == 1)){ //SE A LEITURA DO PINO FOR IGUAL A LOW E
       //VARIÁVEL statusLampCh1 FOR IGUAL A 1, FAZ
            digitalWrite(pinoReleCh1, LOW); //DESLIGA O CANAL 1 DO SHIELD RELÉ (LÂMPADA APAGA)
            Serial.println("Lampada 01 desligada");
            statusLampCh1 = 0; //VARIÁVEL RECEBE O VALOR 0
        }
  }
 
  if((c == 'b') && (statusLampCh2 == 0)){ //SE A LEITURA DO PINO FOR IGUAL A LOW E
    //VARIÁVEL statusLampCh2 FOR IGUAL A 0, FAZ
        digitalWrite(pinoReleCh2, HIGH); //LIGA O CANAL 2 DO SHIELD RELÉ (LÂMPADA ACENDE)
        Serial.println("Lampada 02 ligada");
        statusLampCh2 = 1; //VARIÁVEL RECEBE O VALOR 1
}else{//SENÃO, FAZ
      if((c == 'b') && (statusLampCh2 == 1)){ //SE A LEITURA DO PINO FOR IGUAL A LOW E
       //VARIÁVEL statusLampCh2 FOR IGUAL A 1, FAZ
            digitalWrite(pinoReleCh2, LOW); //DESLIGA O CANAL 2 DO SHIELD RELÉ (LÂMPADA APAGA)
            Serial.println("Lampada 02 desligada");
            statusLampCh2 = 0; //VARIÁVEL RECEBE O VALOR 0
        }
  }  
if((c == 'c') && (statusLampCh3 == 0)){ //SE A LEITURA DO PINO FOR IGUAL A LOW E
    //VARIÁVEL statusLampCh3 FOR IGUAL A 0, FAZ
        digitalWrite(pinoReleCh3, HIGH); //LIGA O CANAL 3 DO SHIELD RELÉ (LÂMPADA ACENDE)
        Serial.println("Lampada 03 ligada");
        statusLampCh3 = 1; //VARIÁVEL RECEBE O VALOR 1
}else{//SENÃO, FAZ
      if((c == 'c') && (statusLampCh3 == 1)){ //SE A LEITURA DO PINO FOR IGUAL A LOW E
       //VARIÁVEL statusLampCh3 FOR IGUAL A 1, FAZ
            digitalWrite(pinoReleCh3, LOW); //DESLIGA O CANAL 3 DO SHIELD RELÉ (LÂMPADA APAGA)
            Serial.println("Lampada 03 desligada");
            statusLampCh3 = 0; //VARIÁVEL RECEBE O VALOR 0
        }
  }
  if((c == 'd') && (statusLampCh4 == 0)){ //SE A LEITURA DO PINO FOR IGUAL A LOW E
    //VARIÁVEL statusLampCh4 FOR IGUAL A 0, FAZ
        digitalWrite(pinoReleCh4, HIGH); //LIGA O CANAL 4 DO SHIELD RELÉ (LÂMPADA ACENDE)
        Serial.println("Lampada 04 ligada");
        statusLampCh4 = 1; //VARIÁVEL RECEBE O VALOR 1
}else{//SENÃO, FAZ
      if((c == 'd') && (statusLampCh4 == 1)){ //SE A LEITURA DO PINO FOR IGUAL A LOW E
       //VARIÁVEL statusLampCh4 FOR IGUAL A 1, FAZ
            digitalWrite(pinoReleCh4, LOW); //DESLIGA O CANAL 4 DO SHIELD RELÉ (LÂMPADA APAGA)
            Serial.println("Lampada 04 desligada");
            statusLampCh4 = 0; //VARIÁVEL RECEBE O VALOR 0
        }
  }
}

Nenhum comentário:

Postar um comentário