Boa tarde pessoal
mais uma vez pedindo a ajuda de vcs
vamos la
pessoal estou com um relay para acender e apagar a lampada por um botao
ate ai tudo tranquilo
ai vai o codigo
int rele = 4; //define a porta a ser utilizada para o acionamento do rele
int botao = 2; //Porta utilizada para o botão de acionamento
int leiturabotao; //Armazena informações sobre a leitura do botão
int estadorele = 0; //Armazena o estado do relé (ligado/desligado)
void setup()
{
Serial.begin(9600);
pinMode(rele, OUTPUT); //Define o pino como saida (sinal para o rele)
pinMode(botao, INPUT); //Define o pino como entrada (Pino do botao)
}
void loop()
{
Serial.print("teste");
Serial.println(estadorele);
delay(100);
leiturabotao = digitalRead(botao);
if (leiturabotao != 1)
{
while(digitalRead(botao) != 1)
{
delay(300);
}
estadorele = !estadorele;
digitalWrite(rele, estadorele);
}
}
ai para ligar e desligar via bluetooth
estou usando esse codigo
void setup()
{
Serial.begin(9600);
//Abaixo, as portas quer serão ativadas pelo celular, via Bluetooth
pinMode(4,OUTPUT);
}
void loop()
{
if(Serial.available()>=2)
{
int key=Serial.read();
int val=Serial.read();
digitalWrite(key,val);
}
}
O que eu querro e ligar e desligar a lampada tanto pelo celular ( bluetooth ) e pelo botao
desde ja agradeço a todos pela ajuda
Tags:
olá Jeferson, nunca utilizei um arduino bluetooth mas sei que é uma comunicação serial transparente...sua dúvida é simples mas muito interessante para projetos inclusive estou usando em um protótipo meu... vai ai a dica:
int x=0;
void setup()
{
pinMode(2,INPUT); //Define pino 2 como entrada...botao
pinMode(4,OUTPUT); //Define pino 4 como saida...relé
digitalWrite(2,1); //Ativa resistor de pull-up
Serial.begin(9600); //Iniciando a serial com velocidade de 9600 baud
Serial.println("Programa iniciado!");
}
void loop()
{
digitalWrite(4,x);
if(digitalRead(2)==0) //Se botao for pressionado...
{
x!=x; //Invertendo estado do relé
delay(500);
}
if(Serial.available())
{
char comando=Serial.read();
if(comando=='w') //Se comando for igual ao caracter 'w'
{
x!=x; //Invertendo estado do relé
delay(500);
}
}
}
Cara não sei se essa é a melhor forma de fazer isso mas acho que deve funcionar, qualquer duvida é só nos acionar, valeu
Mil perdões, fazia tempo que não usava esse comando agora que eu vi que está invertido, tenta esse programa
int x=0;
void setup()
{
pinMode(2,INPUT); //Define pino 2 como entrada...botao
pinMode(4,OUTPUT); //Define pino 4 como saida...relé
digitalWrite(2,1); //Ativa resistor de pull-up
Serial.begin(9600); //Iniciando a serial com velocidade de 9600 baud
Serial.println("Programa iniciado!");
}
void loop()
{
digitalWrite(4,x);
if(digitalRead(2)==0) //Se botao for pressionado...
{
x=!x; //Invertendo estado do relé
delay(500);
}
if(Serial.available())
{
char comando=Serial.read();
if(comando=='w') //Se comando for igual ao caracter 'w'
{
x=!x; //Invertendo estado do relé
delay(500);
}
}
}
ai mano rhaicmer braulio da costa vlw mesmo
agora funcionou o codigo ficou assim depois eu melhor
// Programa utilizado para controlar as portas do Arduino via celular
// usando o programa Microcontroller BT (Android)
// O Arduino deve estar desconectado do computador, já que o módulo Bluetooth também usa
// a comunicação serial, o que pode gerar conflito de dados.
int x=0;
void setup()
{
Serial.begin(9600);
//Abaixo, as portas quer serão ativadas pelo celular, via Bluetooth
pinMode(4,OUTPUT);
}
void loop()
{
digitalWrite(4,x);
if(Serial.available()>=2 )
{
int key=Serial.read();
int val=Serial.read();
if (key == 4 & val == 1)
{
// digitalWrite(key,val);
x = HIGH;
//x=!x; //Invertendo estado do relé
}
if (key == 4 & val == 0)
{
// digitalWrite(key,val);
x = LOW;;
//x=!x; //Invertendo estado do relé
}
}
if(digitalRead(2)==1) //Se botao for pressionado...
{
x=!x; //Invertendo estado do relé
delay(500);
}
}
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por