Pessoal,

Preciso de uma ajudo que pode ser simples, mas estou me complicando...
Estou implementando pulsadores da BTicino na minha casa http://www.bticino.com.br/mecanismos-eletricos/iluminacao-e-control...;
Eu vou comandar as portas do arduino com ele, ou seja, ele será meu btn_central no codigo.

Até ai tudo bem.... consegui fazer uma porta (btn_central) funcionar perfeitamente, mas quando ligo o segundo (btn_pia) me perdi.
Tentei fazer da forma que esta no code abaixo, mas o btn_pia nã funcionou.

Como fica a função loop com mais de 1 botão?


Abraços a todos..

obs: Logo terei novidade sobre a comunicação com ANDROID+EthernetShield que já estou finalizando !

segue o codigo que estou testando

Leandro T

byte central=2;      // central no pino 2
byte btn_central=10;  // botão no pino 10
byte var_i_btn_central=0;       // valor instantaneo enviado pelo botão
byte var_i_btn_central2=0;     // valor guardado
byte status_central=0;  // guarda o valor 0 ou 1

byte pia=3;      // pia no pino 3
byte btn_pia=9;  // botão no pino 9
byte var_i_btn_pia=0;       // valor instantaneo enviado pelo botão
byte var_i_btn_pia2=0;     // valor guardado
byte status_pia=0;  // guarda o valor 0 ou 1


void setup()
{
  pinMode(central,OUTPUT);
  pinMode(btn_central,INPUT);
  pinMode(pia,OUTPUT);
  pinMode(btn_pia,INPUT);
}
void loop()
{
  var_i_btn_central=digitalRead(btn_central); // ler o valor enviado pelo botão: "HIGH" ou "LOW"
  if ((var_i_btn_central == HIGH) && (var_i_btn_central2 == LOW)) {
    status_central = 1 - status_central;
    delay(20); // de-bouncing
  }
  var_i_btn_central2=var_i_btn_central;
  if (status_central == 1) {
    digitalWrite(central, HIGH); // liga o central
  } else {
    digitalWrite(central, LOW);  // desliga o central
  }
  var_i_btn_pia=digitalRead(btn_pia); // ler o valor enviado pelo botão: "HIGH" ou "LOW"
  if ((var_i_btn_pia == HIGH) && (var_i_btn_pia2 == LOW)) {
    status_pia = 1 - status_pia;
    delay(20); // de-bouncing
  }
  var_i_btn_pia2=var_i_btn_pia;
  if (status_pia == 1) {
    digitalWrite(pia, HIGH); // liga o pia
  } else {
    digitalWrite(pia, LOW);  // desliga o pia
  }
}

Exibições: 443

Responder esta

Respostas a este tópico

Tenta isso, Leandro T

int pinBtnCentral = 10, pinOutCentral = 2;
int centralNow, centralOld = LOW;
int pinBtnPia = 9, pinOutPia = 3;
int piaNow, piaOld = LOW;
void setup()
{
pinMode(pinBtnCentral, INPUT);
pinMode(pinBtnPia, INPUT);
pinMode(pinOutCentral, OUTPUT);
pinMode(pinOutPia, OUTPUT);
}
void loop()
{
piaNow = digitalRead(pinBtnPia);
centralNow = digitalRead(pinBtnCentral);

// Read Pia Btn
if(piaNow != piaOld)
{
digitalWrite(pinOutPia, piaNow);
piaOld = piaNow;
}

// Read Central Btn
if(centralNow != centralOld)
{
digitalWrite(pinOutCentral, centralNow);
centralOld = centralNow;
}

// avoid bouncing;
delay(30);
}

Esse funcionou.... só incrementar botões

const byte bIn0=10;
const byte bIn1=11;
const byte bIn2=12;

const byte LED0=2;
const byte LED1=3;
const byte LED2=4;

void setup()
{
pinMode(bIn0,INPUT);
pinMode(bIn1,INPUT);
pinMode(bIn2,INPUT);
digitalWrite(bIn0, HIGH);
digitalWrite(bIn1, HIGH);
digitalWrite(bIn2, HIGH);

pinMode(LED0,OUTPUT);
pinMode(LED1,OUTPUT);
pinMode(LED2,OUTPUT);
}

void loop()
{
if (!digitalRead(bIn0))
{
delay(150);
digitalWrite(LED0, !digitalRead(LED0));
}
if (!digitalRead(bIn1))
{
delay(150);
digitalWrite(LED1, !digitalRead(LED1));
}
if (!digitalRead(bIn2))
{
delay(150);
digitalWrite(LED2, !digitalRead(LED2));
}
delay(200);
}

Pessoal, consegui !!!

segue:

const byte bIn0=10;
const byte bIn1=11;
const byte bIn2=12;

const byte LED0=2;
const byte LED1=3;
const byte LED2=4;

void setup()
{
pinMode(bIn0,INPUT);
pinMode(bIn1,INPUT);
pinMode(bIn2,INPUT);
digitalWrite(bIn0, HIGH);
digitalWrite(bIn1, HIGH);
digitalWrite(bIn2, HIGH);

pinMode(LED0,OUTPUT);
pinMode(LED1,OUTPUT);
pinMode(LED2,OUTPUT);
}

void loop()
{
if (!digitalRead(bIn0))
{
delay(150);
digitalWrite(LED0, !digitalRead(LED0));
}
if (!digitalRead(bIn1))
{
delay(150);
digitalWrite(LED1, !digitalRead(LED1));
}
if (!digitalRead(bIn2))
{
delay(150);
digitalWrite(LED2, !digitalRead(LED2));
}
delay(200);
}

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço