Estou com um projeto de automação aqui de casa, e tudo é controlado perfeitamente pela serial, mas gostaria de que ao pressionar um botão (NA) a mesma porta que responde a serial respondesse ao botão, ja tentei alterar varias coisas no codigo, e ambos funcionam bem separados, mas quando coloco junto um não consegue trabalhar com  outro.

O codigo é basicamente abaixo, aumentando somente a quantidade de variaveis, o completo segue em anexo.

#define RELAY_PIN1 22

//Botões
#define BOTAO_PIN1 40


int triac = 0;
int BOTAOPIN1;
void setup()
{

//Declaração pinos saida reles
pinMode(RELAY_PIN1, OUTPUT);

////Declaração pinos entrada botoes


pinMode(BOTAO_PIN1, INPUT);

Serial.begin(9600); // open serial
Serial.println(" Digite um dos valores ");
}

void loop()
{
static int relayVal1 = 0;

var=digitalRead(BOTAO_PIN1); // ler o valor enviado pelo botão: "HIGH" ou "LOW"
if (var == HIGH) {
relayVal1 ^= 1;
Serial.println('a');
delay(20); // de-bouncing
}



int cmd;
Serial.println(triac);
while (Serial.available() > 0)
{
cmd = Serial.read();


switch (cmd)
{
case 'a':
{
relayVal1 ^= 1; // xor current value with 1 (causes value to toggle)
if (relayVal1)
Serial.println("Relay1 on");
else
Serial.println("Relay1 off");
break;
}

}

if (relayVal1)
digitalWrite(RELAY_PIN1, HIGH);
else
digitalWrite(RELAY_PIN1, LOW);

}
}

Exibições: 199

Anexos

Responder esta

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço