Menu

PDAIIoT - Teste de I/Os

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.