Testando as entradas
Agora, nós iremos testar as entradas da placa utilizando os botões..
Uma vez que este projeto tem o objetivo de desenvolver projetos para IoT, foi colocado seis push buttons para simulação, assim podemos testá-las antes de aplica-la. As entradas foram conectadas aos seguintes GPIO.
Push button SW01 = GPIO 25
Push button SW02 = GPIO 26
Push button SW03 = GPIO 27
Push button SW04 = GPIO 14
Push button SW05 = GPIO 12 - Deve ser pressionada para habilitar as saídas
Push button SW06 = GPIO 13
O programa de testes..
//*********************************************************************************** // Projeto IIoT - Desenvolvimento com ESP32/IDE Arduino // Testes da Placa PDAIIoT V1 // Programa/hardware: 002 - Teste de entradas da PDA IIoT // Autor:Clodoaldo Silva // Revisão: 01mai2019 //DEFINE ENTRADAS E SAÍDAS DA PLACA DE DESENVOLVIMENTO #define RELE_01 15 //define a saída GPIO 15 como Rele_01 #define RELE_02 2 //define a saída GPIO 15 como Rele_01 #define RELE_03 4 //define a saída GPIO 15 como Rele_01 #define RELE_04 16 //define a saída GPIO 15 como Rele_01 #define RELE_05 17 //define a saída GPIO 15 como Rele_01 #define RELE_06 5 //define a saída GPIO 15 como Rele_01 #define RELE_07 18 //define a saída GPIO 15 como Rele_01 #define RELE_08 19 //define a saída GPIO 15 como Rele_01 #define SW1 25 //define o pino GPIO 25 como botão #define SW2 26 //define o pino GPIO 26 como botão #define SW3 27 //define o pino GPIO 27 como botão #define SW4 14 //define o pino GPIO 14 como botão #define SW5 12 //define o pino GPIO 12 como botão #define SW6 13 //define o pino GPIO 13 como botão void setup() //Responsável pela configuração inicial do hardware. { //Coloca os pinos como entrada ou saída. pinMode(RELE_01, OUTPUT); // Pino será saída pinMode(RELE_02, OUTPUT); // Pino será saída pinMode(RELE_03, OUTPUT); // Pino será saída pinMode(RELE_04, OUTPUT); // Pino será saída pinMode(RELE_05, OUTPUT); // Pino será saída pinMode(RELE_06, OUTPUT); // Pino será saída pinMode(RELE_07, OUTPUT); // Pino será saída pinMode(RELE_08, OUTPUT); // Pino será saída pinMode(SW1, INPUT); // Pino será entrada com pullup interno habilitado pinMode(SW2, INPUT); // Pino será entrada com pullup interno habilitado } void loop() //Função principal, responsável por rodar o programa repetidamente. { if (digitalRead(SW1) == LOW) // Se a chave estiver pressionada o pino receberá 0. { digitalWrite(RELE_01, HIGH); // RELE_01 em nível alto digitalWrite(RELE_03, HIGH); // RELE_03 em nível alto digitalWrite(RELE_05, HIGH); // RELE_05 em nível alto digitalWrite(RELE_07, HIGH); // RELE_07 em nível alto } else { digitalWrite(RELE_01, LOW); // RELE_01 em nível baixo digitalWrite(RELE_03, LOW); // RELE_03 em nível baixo digitalWrite(RELE_05, LOW); // RELE_05 em nível baixo digitalWrite(RELE_07, LOW); // RELE_07 em nível baixo } if (digitalRead(SW2) == LOW) // Se a chave estiver pressionada o pino receberá 0.// else // Senão { digitalWrite(RELE_02, HIGH); // RELE_01 em nível alto digitalWrite(RELE_04, HIGH); // RELE_03 em nível alto digitalWrite(RELE_06, HIGH); // RELE_05 em nível alto digitalWrite(RELE_08, HIGH); // RELE_07 em nível alto } else { digitalWrite(RELE_02, LOW); // RELE_01 em nível baixo digitalWrite(RELE_04, LOW); // RELE_03 em nível baixo digitalWrite(RELE_06, LOW); // RELE_05 em nível baixo digitalWrite(RELE_08, LOW); // RELE_07 em nível baixo } }
Vejamos o teste usando somente SW1 e SW2
Observações:
O GPIO 12 que dá o start na saída funciona normalmente com entrada.