Pesquisar neste blog

22/01/2020

Programa 17

Função com Arduíno

#define pinLedVm 2
#define pinLedVd 3
#define pinBotao 4

boolean pisca = false;

boolean leBotao(int porta);
void piscaLED(int porta, int tempo);

void setup() {
  pinMode(pinLedVd, OUTPUT);
  pinMode(pinLedVm, OUTPUT);
  pinMode(pinBotao, INPUT_PULLUP);
}

void loop() {

  if (leBotao(pinBotao)) {
     pisca = !pisca;
  }
 

  if (pisca) {
     piscaLED(pinLedVm, 200);
     piscaLED(pinLedVd, 500);
  }
}


boolean leBotao(int porta) {
  static boolean estadoAnterior[14] = {true,true,true,true,true,true,true,true,true,true,true,true,true,true};
   
  boolean estadoBotao = digitalRead(porta);
  boolean ligado = false;
  if (!estadoBotao && estadoAnterior[porta]) {
     ligado = true;
  }
  estadoAnterior[porta] = estadoBotao;

  return ligado;
}


void piscaLED(int porta, int tempo) {
  static unsigned long delay1[14] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0};

  if ((millis() - delay1[porta]) < tempo) {
     digitalWrite(porta, HIGH);
  } else {
     digitalWrite(porta, LOW);
  }

  if ((millis() - delay1[porta]) >= (tempo * 2) ) {
     delay1[porta] = millis();
  }
}

Nenhum comentário: