A primeira coisa que fazemos no início do programa é colocar uma pequena observação sobre o nome do programa, sua função e quem o criou:
1 2 3 | // C++ code
//Programa : Liga Motor e Sinaleiros
//Autor : Sinésio Gomes
//Data :04/11/2025 |
Após os comentários, vem é realizado a declaração e estado inicial das variáveis, com isso cada pino será associados á um componente, não sendo mais necessário saber qual pino está o componente.
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | // Definição dos pinos de entrada #define B0 2 // Nome do pino 2 #define RT 3 // Nome do pino 3 #define S0 4 // Nome do pino 4 #define S1 5 // Nome do pino 5 // Definição dos pinos de saída #define K1 6 // Nome do pino 6
#define Led_Vd 7 // Nome do pino 7
#define Led_Vm 8 // Nome do pino 8
#define Led_Am 9 // Nome do pino 9
#define Buzzer 10 // Nome do pino 10
// Declaração do tipo e estado inicial das variáveisbool estado_B0 = 0; // Reset do pino 2
bool estado_RT = 0; // Reset do pino 3
bool estado_S0 = 0; // Reset do pino 4
bool estado_S1 = 0; // Reset do pino 5 |
A terceira parte da programação é a estrutura do setup(). É nela que definimos quais componentes (pino) do Arduino serão utilizados como entradas e saídas e o estado inicial dos pinos de saída.
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | void setup(){//Define a porta das chaves como entradas e dos led,s como saida
pinMode(B0, INPUT); // Pinos como entradas
pinMode(RT, INPUT);
pinMode(S0, INPUT);
pinMode(S1, INPUT);
pinMode(K1, OUTPUT); // Pinos como saídas
pinMode(Led_Vd, OUTPUT);
pinMode(Led_Vm, OUTPUT);
pinMode(Led_Am, OUTPUT);
pinMode(Buzzer, OUTPUT);
digitalWrite (K1, 0); // Reset dos pinos
digitalWrite (Led_Vd, 0);
digitalWrite (Led_Vm, 0);
digitalWrite (Led_Am, 0);
digitalWrite (Buzzer, 0);
} |
Por último, temos o loop(), que contém as instruções para acender e apagar os led's e o rele k1 conforme são acionados as chaves, cada chave terá uma função diferente.
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 | void loop() // Laço principal{
estado_B0 = digitalRead (B0); // Lê entrada B0 - Emergência
estado_RT = digitalRead (RT); // Lê entrada RT - Rele Térmico
estado_S0 = digitalRead (S0); // Lê entrada S0 - Desliga
estado_S1 = digitalRead (S1); // Lê entrada S1 - Liga
if (estado_S1 == 1) {digitalWrite (Led_Vd, 1);
digitalWrite (Led_Vm, 0);}
if (estado_S0 == 0) { digitalWrite (Led_Vd, 0);
digitalWrite (Led_Vm, 1);}
if (estado_RT == 1) {digitalWrite (Led_Am, 0);}
else {digitalWrite (Led_Am,1);
digitalWrite (Led_Vm,0);
digitalWrite (Led_Vd,0);
}
if (estado_B0 == 1) {digitalWrite (Buzzer, 1);}
else {digitalWrite (Buzzer,0);
digitalWrite (Led_Am,0);
digitalWrite (Led_Vm,0);
digitalWrite (Led_Vd,0);
}
} |
Para esta estrutura de programação iremos utilizar o "if". O if é uma das estruturas mais básicas de programação em geral. O "if" significa "se" em inglês, e é exatamente isso que ele faz: ele verifica uma expressão e, apenas se ela for verdadeira, executa um conjunto de comandos. Em linguagem natural, ele executa uma lógica do tipo: "se isso for verdadeiro, então faça aquilo". Quando usamos um "if", ele segue o seguinte formato:
if(condição) { ... }
A lógica é muito simples: sempre que a condição for verdadeira, os comandos entre { e } são executados, caso contrário o programa prossegue sem executá-los. Vamos ver então como fica a função.
Função condicional da primeira chave, que liga 01 led, dentro do "loop()" ...
45 46 47 48 | // Função da primeira chave, se acionada if (estado_S0 == 0) { digitalWrite (Led_Vd, 1);
digitalWrite (Led_Vm, 0); }
|
Função condicional da segunda chave, que pisca dois Led's três vezes, dentro do "loop()" ...
49 50 51 52 53 54 55 65 | // Função da segunda chave, se acionada if (estado_S1 == 0) { digitalWrite (Led_Vd, 0); |
Agora iremos utilizar o "if-else". O if-else, também conhecido como if-then-else, pode ser visto como uma extensão do comando if. Else em inglês significa "caso contrário", e ele faz exatamente o que o nome diz: "se isso for verdadeiro, então faça aquilo, caso contrário, faça outra coisa". Ele segue o seguinte formato:
if(condição) { ... } else { ... }Para a função condicional da terceira chave, que liga o Buzzer por 5 segundos, e apagar os Led's dentro do "loop()" ...
65 66 67 68 69 70 71 72 73 74 75 | // Função da terceira chave, se acionada if (estado_S2 == 1) {digitalWrite (Buzzer, 1); } |
© Direitos de autor. 2023: Gomes; Sinésio Raimundo. Última atualização: 05/11/2025

Nenhum comentário:
Postar um comentário