LOJA FÍSICA
Praça Mauá, 4541 - Sala 22
09580-050 - São Caetano do Sul / SP
CENTRAL DE ATENDIMENTO
(11) 3522-7626
info@robocore.net
HORÁRIO DE FUNCIONAMENTO
De segunda à sexta das 9:00 às 18:30
Retornar
ao topo

Classifique este tópicoPéssimoRuimMedianoBomÓtimo
Autor
Mensagem
3
reinerczanotelli

Level 0
0 xp

Registrado em:
27/01/2019





Mensagens:
1
3
reinerczanotelli

Responder com citações
Mensagem Dom Jan 27, 2019 7:46 pm
Arduino: Duplo config pinMode, possivel?
Estou com uma situacao onde inicialmente, eh feito um teste, e a partir deste teste inicial, se faz o segundo teste no cabos. Porem neste segundo teste preciso reconfigurar os pinModes, pois alguns irao mudar de output > input ou vice versa.

Teste fazer conforme abaixo porem ele so pega e fixa a primeira config do pinmode, alguem tem id[eia de como fazer?

Nota-se que para cada case no switch case eh preciso fazer uma config diferente do pinmode:

#include <SPI.h>
#include <stdint.h>

//CONFIGURANDO OS PINOS DE ENTRADA DE CADA FIO
int BL = 6;
int LA = 7;
int BV = 8;
int VD = 9;
int BA = 10;
int AZ = 11;
int BM = 12;
int MA = 13;
char PADCAB;

int botao = 5;
int botao_estado = 0; //Estado inicial do botao 0 / 0 = desliga - 1 = liga
int botao_estado1 = 0; //valor instantaneo
int botao_estado2 = 0; //valor guardado

void setup() {
  Serial.begin(9600);
  pinMode(botao, OUTPUT);
}

void loop() {

  //INICIO BOTAO
  botao_estado1 = digitalRead(botao); // ler o valor enviado pelo botão: "HIGH" ou "LOW"
  if ((botao_estado1 == HIGH) && (botao_estado2 == LOW)) {
    botao_estado = 1 - botao_estado;
  }
  botao_estado2 = botao_estado1;
  if (botao_estado == 1) {
    //LIGADO 1
    Serial.println("LIGADO");
  } else {
    //DESLIGADO 0
    Serial.println("DESLIGADO");
  }
  //FIM BOTAO
  pinMode(MA, OUTPUT);
  pinMode(BM, INPUT_PULLUP);
  pinMode(LA, INPUT_PULLUP);
  pinMode(BL, INPUT_PULLUP);
  pinMode(BA, INPUT_PULLUP);
  pinMode(VD, INPUT_PULLUP);
  pinMode(BV, INPUT_PULLUP);

  int stat_BM = digitalRead(BM);
  int stat_BL = digitalRead(BL);
  int stat_BA = digitalRead(BA);
  int stat_BV = digitalRead(BV);
  int stat_LA = digitalRead(LA);
  int stat_VD = digitalRead(VD);
  Serial.println(botao_estado);

  if (botao_estado == 1) {

    if (stat_BM <= 0) {
      PADCAB = '1';
    }
    else if (stat_BL <= 0) {
      PADCAB = '2';
    }
    else if (stat_BA <= 0) {
      PADCAB = '3';
    }
    else if (stat_BV <= 0) {
      PADCAB = '4';
    }
    else if (stat_LA <= 0) {
      PADCAB = '5';
    }
    else if (stat_VD <= 0) {
      PADCAB = '6';
    }
    else {
      PADCAB = 'X';
      Serial.println("ERRO: Cabo nao conectado, verifique!");
    }
  }

  //PAC+CAB Padrao do cabo A ou B / CAB 1, 2, 3, 4, 5 ou 6
  switch (PADCAB) {
    case '1':
      Serial.println("Testando Cabo 1");
      pinMode(MA, OUTPUT);
      digitalWrite(MA, LOW);
      pinMode(BM, INPUT_PULLUP);
      pinMode(LA, OUTPUT);
      digitalWrite(LA, LOW);
      pinMode(BL, INPUT_PULLUP);
      pinMode(AZ, OUTPUT);
      digitalWrite(AZ, LOW);
      pinMode(BA, INPUT_PULLUP);
      pinMode(VD, OUTPUT);
      digitalWrite(VD, LOW);
      pinMode(BV, INPUT_PULLUP);

      int stat_BM = digitalRead(BM);//0
      int stat_BL = digitalRead(BL);//1
      int stat_BA = digitalRead(BA);//0
      int stat_BV = digitalRead(BV);//1

      Serial.println(stat_BM);
      Serial.println(stat_BL);
      Serial.println(stat_BA);
      Serial.println(stat_BV);

      if (stat_BM == 0 && stat_BL == 0 && stat_BA == 0 && stat_BV == 0) {
        Serial.println("Cabo 1 - OK!");
      }
      else {
        Serial.println("Cabo 1 - ERRO!");
      }
      break;
    case '2':
      Serial.println("Testando Cabo 2");
      pinMode(MA, OUTPUT);
      digitalWrite(MA, LOW);
      pinMode(BM, INPUT_PULLUP);
      pinMode(LA, OUTPUT);
      digitalWrite(LA, LOW);
      pinMode(BL, INPUT_PULLUP);
      pinMode(AZ, OUTPUT);
      digitalWrite(AZ, LOW);
      pinMode(BA, INPUT_PULLUP);
      pinMode(VD, OUTPUT);
      digitalWrite(VD, LOW);
      pinMode(BV, INPUT_PULLUP);
//
//      int stat_BM = digitalRead(BM);
//      int stat_BL = digitalRead(BL);
//      int stat_BA = digitalRead(BA);
//      int stat_BV = digitalRead(BV);

      Serial.println(stat_BM);
      Serial.println(stat_BL);
      Serial.println(stat_BA);
      Serial.println(stat_BV);

      if (stat_BM == 0 && stat_BL == 0 && stat_BA == 0 && stat_BV == 0) {
        Serial.println("Cabo 2 - OK!");
      }
      else {
        Serial.println("Cabo 2 - ERRO!");
      }
      break;
    case '3':
      Serial.println("Testando Cabo 3");
      break;
    case '4':
      Serial.println("Testando Cabo 4");
      break;
    case '5':
      Serial.println("Testando Cabo 5");
      break;
    case '6':
      Serial.println("Testando Cabo 6");
      break;
    default:
      // MOSTRAR MENSAGEM DE ERRO, NENHUM CABO IDENTIFICADO
      Serial.println("ERRO!");
      break;
  }
Mostrar mensagens desde a última:




Ir para:  
Todos os horários são GMT - 3 HorasVocê não tem permissão para escrever novas mensagens
v não tem permissão para responder às mensagens
Você não tem permissão para editar suas mensagens
Você não tem permissão para deletar suas mensagens
Você não tem permissão para classificar tópicos
Você não tem permissão para classificar mensagens
Você não tem permissão para votar em enquetes
Anexar downloads : Proibido
Fazer Download de Arquivos: Permitido
Powered by phpBB © 2001 phpBB Group