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
}
}
Tags:
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);
}
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por